gsxdsm
4fee2c1324
FN-5671: add branch-strategy selection to new task creation
Add branch-strategy based task branch handling from modal through task creation routes.
- add branch strategy dropdown + validation in New Task modal and TaskForm, including required branch-name handling for existing/custom-new modes
- send structured branchSelection payload from dashboard API client and cover UI/API behavior with new tests
- add server-side branch selection mode parsing, auto-new branch derivation (fusion/<task-id>-<slug>), and response updates when auto branch is generated
- update engine/worktree and dashboard route tests plus dashboard guide documentation
- add a changeset for @runfusion/fusion patch release
Files changed:
.changeset/fn-5671-branch-strategy-dropdown.md | 7 ++
docs/dashboard-guide.md | 16 +++++
packages/dashboard/app/__tests__/api-tasks.test.ts | 21 ++++++
packages/dashboard/app/api/legacy.ts | 9 +++
packages/dashboard/app/components/NewTaskModal.css | 8 +++
packages/dashboard/app/components/NewTaskModal.tsx | 41 +++++++++---
packages/dashboard/app/components/TaskForm.tsx | 30 ++++++++-
.../app/components/__tests__/NewTaskModal.test.tsx | 77 +++++++++++++++++++---
.../src/__tests__/branch-selection.test.ts | 13 ++++
.../dashboard/src/__tests__/routes-tasks.test.ts | 72 ++++++++++++++++++++
packages/dashboard/src/routes/branch-selection.ts | 45 ++++++++-----
.../src/routes/register-task-workflow-routes.ts | 22 +++++--
.../engine/src/__tests__/worktree-pool.test.ts | 41 ++++++++++++
packages/engine/src/worktree-pool.ts | 2 +-
14 files changed, 361 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-5671
Fusion-Task-Lineage: 7f2e7b68-050d-4a2c-af0b-cb895de35576
2026-05-29 09:44:17 -07:00
..
2026-05-21 00:17:33 -07:00
2026-05-16 23:31:56 -07:00
2026-05-21 12:04:58 -07:00
2026-05-29 06:54:45 -07:00
2026-05-23 13:37:41 -07:00
2026-05-16 20:54:39 -07:00
2026-05-06 17:25:19 -07:00
2026-05-21 09:06:23 -07:00
2026-05-15 07:55:22 -07:00
2026-05-11 06:47:42 -07:00
2026-05-13 06:29:34 -07:00
2026-05-01 00:33:17 -07:00
2026-05-14 13:59:10 -07:00
2026-05-14 03:23:42 -07:00
2026-05-13 06:29:34 -07:00
2026-05-13 23:41:35 -07:00
2026-05-11 21:48:26 -07:00
2026-05-13 23:41:35 -07:00
2026-04-24 19:39:20 -07:00
2026-05-10 16:03:32 -04:00
2026-05-05 06:32:33 -07:00
2026-05-20 02:48:39 -07:00
2026-05-22 00:15:14 -07:00
2026-05-23 12:14:07 -07:00
2026-04-25 13:21:02 -07:00
2026-05-18 23:50:00 -07:00
2026-05-08 19:15:10 -07:00
2026-05-18 19:44:33 -07:00
2026-05-18 23:50:00 -07:00
2026-05-18 23:50:00 -07:00
2026-05-10 23:36:10 -07:00
2026-05-08 18:59:08 -07:00
2026-05-23 03:05:46 -07:00
2026-05-05 20:51:44 -07:00
2026-05-20 02:47:34 -07:00
2026-05-14 01:10:47 -07:00
2026-05-23 02:29:38 -07:00
2026-05-17 17:07:01 -07:00
2026-05-14 22:16:44 -07:00
2026-05-15 16:19:42 -07:00
2026-05-18 12:31:21 -07:00
2026-05-20 08:23:40 -07:00
2026-05-23 00:03:12 -07:00
2026-05-18 23:14:27 -07:00
2026-05-16 22:36:57 -07:00
2026-05-17 17:29:29 -07:00
2026-05-23 02:29:38 -07:00
2026-05-14 11:23:43 -07:00
2026-05-16 22:36:57 -07:00
2026-05-23 02:59:23 -07:00
2026-05-12 07:47:10 -07:00
2026-05-03 11:06:27 -07:00
2026-05-20 20:05:08 -07:00
2026-05-16 20:48:00 -07:00
2026-05-28 21:23:48 -07:00
2026-05-07 17:26:51 +02:00
2026-05-19 03:21:17 -07:00
2026-05-06 18:04:19 -07:00
2026-04-30 10:19:54 -07:00
2026-05-16 17:31:09 -07:00
2026-05-07 23:21:05 -07:00
2026-04-30 19:11:38 -07:00
2026-05-12 20:39:01 -07:00
2026-05-19 22:50:39 -07:00
2026-05-13 12:30:45 -07:00
2026-05-19 19:28:05 -07:00
2026-05-13 20:03:02 -07:00
2026-05-06 19:55:55 -07:00
2026-05-22 23:12:49 -07:00
2026-05-18 15:51:01 -07:00
2026-05-13 18:44:41 -07:00
2026-05-18 18:26:52 -07:00
2026-05-18 08:07:06 -07:00
2026-05-23 02:41:08 -07:00
2026-05-28 21:23:48 -07:00
2026-05-18 05:29:10 -07:00
2026-05-18 00:27:44 -07:00
2026-05-18 00:27:44 -07:00
2026-05-28 12:10:03 -07:00
2026-05-28 21:23:48 -07:00
2026-05-18 05:29:10 -07:00
2026-05-28 21:23:48 -07:00
2026-05-28 21:23:48 -07:00
2026-05-18 02:43:32 -07:00
2026-05-14 15:25:08 -07:00
2026-05-18 02:43:33 -07:00
2026-05-28 21:23:48 -07:00
2026-05-10 23:36:09 -07:00
2026-05-21 10:14:38 -07:00
2026-05-20 02:47:34 -07:00
2026-05-29 06:54:45 -07:00
2026-05-17 00:38:07 -07:00
2026-05-18 18:26:52 -07:00
2026-05-17 00:38:07 -07:00
2026-05-20 01:01:08 -07:00
2026-05-22 22:34:32 -07:00
2026-05-18 02:43:33 -07:00
2026-05-18 00:27:44 -07:00
2026-05-18 05:29:10 -07:00
2026-05-28 21:23:48 -07:00
2026-05-13 22:03:38 -07:00
2026-05-21 10:14:38 -07:00
2026-05-12 07:47:10 -07:00
2026-05-18 08:07:06 -07:00
2026-05-21 09:06:23 -07:00
2026-05-17 15:02:35 -07:00
2026-05-28 21:23:48 -07:00
2026-05-14 00:58:44 -07:00
2026-05-14 04:25:06 -07:00
2026-05-14 04:01:49 -07:00
2026-05-14 04:01:49 -07:00
2026-05-14 04:25:06 -07:00
2026-05-14 00:58:44 -07:00
2026-05-20 15:54:44 -07:00
2026-05-20 15:54:44 -07:00
2026-05-03 23:08:05 -07:00
2026-05-14 04:01:49 -07:00
2026-05-11 06:47:42 -07:00
2026-05-29 07:13:23 -07:00
2026-05-29 08:06:46 -07:00
2026-05-29 07:11:00 -07:00
2026-04-30 00:20:51 -07:00
2026-05-23 03:50:05 -07:00
2026-05-20 20:15:43 -07:00
2026-05-16 09:36:39 -07:00
2026-05-14 04:32:42 -07:00
2026-05-14 04:32:43 -07:00
2026-05-21 00:17:33 -07:00
2026-05-13 16:38:00 -07:00
2026-05-18 21:08:04 -07:00
2026-05-13 06:29:34 -07:00
2026-05-04 17:22:21 -07:00
2026-05-28 21:23:48 -07:00
2026-05-06 13:38:23 -07:00
2026-05-26 21:57:31 -07:00
2026-05-26 21:57:31 -07:00
2026-05-26 21:57:31 -07:00
2026-05-16 17:31:09 -07:00
2026-05-16 14:23:14 -07:00
2026-05-28 22:07:54 -07:00
2026-05-22 10:37:21 -07:00
2026-05-21 12:04:58 -07:00
2026-05-13 06:29:36 -07:00
2026-05-19 10:07:44 -07:00
2026-05-17 15:02:35 -07:00
2026-04-26 12:45:05 -07:00
2026-05-21 18:29:03 -07:00
2026-05-28 18:50:23 -07:00
2026-05-29 00:55:17 -07:00
2026-05-28 23:45:40 -07:00
2026-05-29 00:55:17 -07:00
2026-05-22 22:42:57 -07:00
2026-05-28 15:04:41 -07:00
2026-05-23 15:13:17 -07:00
2026-05-12 17:04:33 -07:00
2026-05-16 17:08:09 -07:00
2026-05-18 21:44:35 -07:00
2026-05-20 09:42:40 -07:00
2026-05-20 09:42:40 -07:00
2026-05-22 14:38:29 -07:00
2026-05-20 09:42:40 -07:00
2026-05-29 00:55:17 -07:00
2026-05-20 09:42:40 -07:00
2026-05-20 09:42:40 -07:00
2026-05-29 00:55:17 -07:00
2026-05-23 17:42:21 -07:00
2026-05-29 00:55:17 -07:00
2026-05-23 03:50:05 -07:00
2026-05-20 09:42:40 -07:00
2026-05-18 01:30:15 -07:00
2026-05-17 00:53:02 -07:00
2026-05-28 22:23:55 -07:00
2026-05-23 11:08:08 -07:00
2026-05-29 00:55:17 -07:00
2026-05-23 09:59:50 -07:00
2026-05-23 07:51:08 -07:00
2026-05-22 22:42:57 -07:00
2026-05-20 09:42:40 -07:00
2026-05-20 09:42:40 -07:00
2026-05-29 00:55:17 -07:00
2026-05-20 09:42:40 -07:00
2026-05-28 13:02:30 -07:00
2026-05-21 16:30:31 -07:00
2026-05-20 09:42:40 -07:00
2026-05-20 09:42:40 -07:00
2026-05-20 09:42:40 -07:00
2026-05-17 18:45:50 -07:00
2026-05-29 00:55:17 -07:00
2026-05-12 21:52:58 -07:00
2026-05-29 00:55:17 -07:00
2026-05-23 18:39:36 -07:00
2026-05-16 23:45:17 -07:00
2026-05-12 09:41:24 -07:00
2026-05-12 09:41:24 -07:00
2026-05-28 23:58:47 -07:00
2026-04-24 19:39:20 -07:00
2026-05-28 23:58:47 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-05-28 21:23:48 -07:00
2026-05-07 23:21:05 -07:00
2026-05-10 19:13:05 -07:00
2026-04-29 17:30:39 -07:00
2026-05-17 09:51:49 -07:00
2026-05-28 21:17:02 -07:00
2026-05-16 13:46:42 -07:00
2026-05-07 23:21:05 -07:00
2026-05-07 18:00:18 -07:00
2026-05-16 17:31:10 -07:00
2026-05-16 23:45:17 -07:00
2026-05-07 23:21:05 -07:00
2026-04-27 11:58:31 -07:00
2026-05-06 18:04:19 -07:00
2026-05-10 19:13:05 -07:00
2026-05-15 20:24:58 -07:00
2026-05-13 06:29:36 -07:00
2026-05-28 21:23:48 -07:00
2026-05-28 21:23:48 -07:00
2026-05-12 07:47:10 -07:00
2026-05-17 16:33:19 -07:00
2026-05-17 09:07:28 -07:00
2026-05-09 13:55:05 -07:00
2026-05-28 21:23:48 -07:00
2026-05-13 06:29:35 -07:00
2026-05-23 18:39:36 -07:00
2026-05-28 21:23:48 -07:00
2026-05-13 10:45:52 -07:00
2026-05-13 23:59:19 -07:00
2026-05-17 11:39:19 -07:00
2026-05-19 19:28:05 -07:00
2026-04-24 19:39:20 -07:00
2026-05-23 00:22:19 -07:00
2026-05-20 01:16:06 -07:00
2026-05-28 18:50:23 -07:00
2026-04-24 19:39:20 -07:00
2026-05-28 21:23:48 -07:00
2026-05-10 16:03:32 -04:00
2026-05-10 16:03:32 -04:00
2026-05-10 16:03:32 -04:00
2026-04-26 02:20:28 -07:00
2026-04-24 19:39:20 -07:00
2026-04-30 10:19:54 -07:00
2026-04-24 19:39:20 -07:00
2026-05-13 21:52:40 -07:00
2026-05-04 13:17:57 -07:00
2026-05-04 13:17:57 -07:00
2026-05-15 12:51:41 -07:00
2026-05-28 21:23:48 -07:00
2026-05-14 15:25:08 -07:00
2026-05-10 16:03:32 -04:00
2026-05-21 08:43:57 -07:00
2026-05-17 02:08:01 -07:00
2026-05-21 00:17:33 -07:00
2026-05-15 16:38:45 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-05-17 13:54:32 -07:00
2026-05-23 12:14:07 -07:00
2026-05-20 07:44:57 -07:00
2026-04-24 19:39:20 -07:00
2026-05-15 16:19:42 -07:00
2026-05-23 13:37:41 -07:00
2026-04-30 10:19:54 -07:00
2026-04-26 16:14:35 -07:00
2026-05-20 02:48:39 -07:00
2026-05-15 16:38:45 -07:00
2026-05-23 18:39:36 -07:00
2026-05-20 23:48:57 -07:00
2026-05-13 06:29:34 -07:00
2026-05-16 23:45:17 -07:00
2026-05-16 23:45:17 -07:00
2026-05-13 06:29:33 -07:00
2026-05-28 19:48:41 -07:00
2026-05-16 21:15:10 -07:00
2026-05-17 23:29:21 -07:00
2026-05-14 05:35:35 -07:00
2026-05-21 09:06:23 -07:00
2026-05-20 16:43:27 -07:00
2026-05-17 06:23:00 -07:00
2026-05-20 16:43:27 -07:00
2026-05-22 11:32:17 -07:00
2026-05-17 17:07:01 -07:00
2026-05-20 16:43:27 -07:00
2026-05-20 16:43:27 -07:00
2026-05-20 16:43:27 -07:00
2026-05-18 12:46:23 -07:00
2026-05-13 14:22:23 -07:00
2026-05-15 11:41:35 -07:00
2026-05-21 19:15:27 -07:00
2026-05-18 18:26:52 -07:00
2026-05-14 12:44:10 -07:00
2026-05-20 01:01:08 -07:00
2026-05-13 06:29:34 -07:00
2026-05-15 16:50:00 -07:00
2026-05-18 21:54:39 -07:00
2026-05-15 21:57:57 -07:00
2026-05-21 09:06:23 -07:00
2026-05-28 13:53:15 -07:00
2026-05-02 00:04:29 -07:00
2026-05-13 22:41:29 -07:00
2026-05-06 09:43:51 -07:00
2026-04-27 08:33:03 -07:00
2026-05-17 10:45:41 -07:00
2026-05-23 14:26:57 -07:00
2026-04-26 12:45:05 -07:00
2026-05-20 15:54:44 -07:00
2026-05-23 19:36:04 -07:00
2026-05-14 05:55:16 -07:00
2026-05-22 22:43:26 -07:00
2026-05-19 16:15:24 -07:00
2026-05-14 05:35:35 -07:00
2026-05-12 17:24:44 -07:00
2026-05-11 11:41:19 -07:00
2026-05-14 08:24:01 -07:00
2026-04-24 19:39:20 -07:00
2026-05-10 16:03:32 -04:00
2026-05-11 12:04:20 -07:00
2026-05-17 02:46:46 -07:00
2026-05-20 14:28:45 -07:00
2026-05-20 02:46:49 -07:00
2026-05-18 00:53:24 -07:00
2026-05-15 14:45:17 -07:00
2026-05-19 01:02:38 -07:00
2026-05-20 15:54:44 -07:00
2026-05-20 01:16:06 -07:00
2026-05-19 19:23:47 -07:00
2026-05-20 02:46:49 -07:00
2026-05-20 02:46:49 -07:00
2026-04-30 05:43:13 -07:00
2026-04-24 19:39:20 -07:00
2026-05-19 19:28:05 -07:00
2026-05-10 23:36:10 -07:00
2026-05-21 02:54:02 +00:00
2026-05-09 10:31:04 -07:00
2026-05-08 18:59:08 -07:00
2026-05-12 17:04:33 -07:00
2026-05-15 09:31:00 -07:00
2026-05-14 12:30:19 -07:00
2026-05-14 11:15:47 -07:00
2026-05-22 08:31:12 -07:00
2026-05-17 23:29:21 -07:00
2026-05-22 08:31:12 -07:00
2026-05-23 03:06:11 -07:00
2026-05-18 11:01:32 -07:00
2026-05-15 19:37:48 -07:00
2026-05-22 22:43:26 -07:00
2026-05-19 05:57:57 -07:00
2026-05-18 01:50:24 -07:00
2026-05-22 22:43:26 -07:00
2026-05-22 08:31:12 -07:00
2026-04-24 19:39:20 -07:00
2026-05-16 00:19:18 -07:00
2026-05-17 22:11:42 -07:00
2026-05-17 15:02:35 -07:00
2026-05-17 23:29:21 -07:00
2026-05-29 09:44:17 -07:00
2026-05-16 20:54:33 -07:00
2026-05-23 19:36:04 -07:00
2026-05-15 20:53:54 -07:00
2026-05-20 07:44:57 -07:00