gsxdsm
eb425d17d9
FN-5825: add dedicated grouped-task modal popup
...
Introduce a dedicated modal flow for grouped shared-branch tasks in the dashboard.
- Add GroupTaskModal component and styles for grouped task details and actions.
- Wire grouped-task modal state through App, modal manager hooks, and modal container components.
- Update board/column/task-card interactions to open grouped tasks in the new modal.
- Adjust subtask breakdown behavior and add focused tests for grouped task modal/task-card flows.
- Document the grouped-task modal behavior and add a changeset for @runfusion/fusion.
Files changed:
.changeset/fn-5825-group-task-modal.md | 5 +
docs/dashboard-guide.md | 5 +-
packages/dashboard/app/App.tsx | 6 +
packages/dashboard/app/components/AppModals.tsx | 24 ++++
packages/dashboard/app/components/Board.tsx | 4 +-
packages/dashboard/app/components/Column.tsx | 4 +-
.../dashboard/app/components/GroupTaskModal.css | 79 ++++++++++
.../dashboard/app/components/GroupTaskModal.tsx | 159 +++++++++++++++++++++
.../app/components/SubtaskBreakdownModal.tsx | 16 ++-
packages/dashboard/app/components/TaskCard.tsx | 8 ++
.../components/__tests__/GroupTaskModal.test.tsx | 105 ++++++++++++++
.../app/components/__tests__/TaskCard.test.tsx | 18 +++
packages/dashboard/app/hooks/useModalManager.ts | 16 +++
packages/dashboard/vitest.config.ts | 2 +-
14 files changed, 445 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-5825
Fusion-Task-Lineage: d9317a58-05ce-4437-8311-b7e2a186537b
2026-06-01 05:15:14 -07:00
gsxdsm
e9de195ef5
FN-5822: wire shared branch-group visibility and merge controls
...
Add dashboard and API support for viewing shared branch groups and triggering group merge actions.
- add branch-group API routes and register them in integrated routers
- extend dashboard legacy API client with branch-group fetch and merge-control actions
- add BranchGroupCard UI + styles and surface it in task/detail/subtask views
- add dashboard/API test coverage for branch-group routes and UI integration points
- document branch-group behavior and add a changeset for @runfusion/fusion
Files changed:
.changeset/fn-5822-branch-group-dashboard.md | 5 +
docs/dashboard-guide.md | 31 ++++++
packages/dashboard/app/api/legacy.ts | 54 +++++++++
.../dashboard/app/components/BranchGroupCard.css | 83 ++++++++++++++
.../dashboard/app/components/BranchGroupCard.tsx | 123 +++++++++++++++++++++
.../app/components/SubtaskBreakdownModal.tsx | 3 +
packages/dashboard/app/components/TaskCard.tsx | 19 ++++
.../dashboard/app/components/TaskDetailModal.tsx | 4 +
.../components/__tests__/BranchGroupCard.test.tsx | 96 ++++++++++++++++
.../__tests__/SubtaskBreakdownModal.test.tsx | 1 +
.../app/components/__tests__/TaskCard.test.tsx | 16 ++++
.../components/__tests__/TaskDetailModal.test.tsx | 22 ++++
.../src/__tests__/routes-branch-groups.test.ts | 119 ++++++++++++++++++++
.../src/routes/register-branch-groups-routes.ts | 118 ++++++++++++++++++++
.../src/routes/register-integrated-routers.ts | 13 +++
packages/dashboard/vitest.config.ts | 4 +-
16 files changed, 709 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-5822
Fusion-Task-Lineage: 199c25b8-f6ec-43b4-8fab-509f23fb5ac7
2026-06-01 04:47:19 -07:00
gsxdsm
24e0c44b4a
FN-5731: require confirmation before archiving near-duplicate tasks
...
Stop silent near-duplicate auto-archive by routing duplicates through explicit user confirmation in API, engine, and dashboard flows.
- add new near-duplicate confirmation metadata/types and preserve duplicate task rows until confirmation
- update workflow routes and triage logic to return confirmation-required outcomes instead of immediate archive
- add TaskCard and TaskDetailModal UI/actions plus styling and hook updates for confirming or rejecting duplicate handling
- expand dashboard and engine tests and task-management docs to cover the new confirmation path
Files changed:
docs/task-management.md | 14 ++++-
packages/core/src/types.ts | 4 ++
packages/dashboard/app/api/legacy.ts | 1 +
packages/dashboard/app/components/TaskCard.css | 59 ++++++++++++++++++
packages/dashboard/app/components/TaskCard.tsx | 46 +++++++++++++-
packages/dashboard/app/components/TaskDetailModal.css | 34 +++++++++++
packages/dashboard/app/components/TaskDetailModal.tsx | 71 +++++++++++++++++++++-
packages/dashboard/app/components/__tests__/TaskCard.test.tsx | 71 ++++++++++++++++++++++
packages/dashboard/app/components/__tests__/TaskDetailModal.rendering.test.tsx | 68 +++++++++++++++++++++
packages/dashboard/app/hooks/useTasks.ts | 2 +-
packages/dashboard/src/__tests__/routes-tasks-near-duplicate.test.ts | 45 ++++++++++++++
packages/dashboard/src/routes/register-task-workflow-routes.ts | 9 ++-
packages/engine/src/__tests__/reliability-interactions/near-duplicate-intake.test.ts | 16 +++--
packages/engine/src/triage.ts | 19 +++---
14 files changed, 433 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-5731
Fusion-Task-Lineage: fa004129-7bce-4457-b8c3-ceb9fb953319
2026-05-30 15:52:46 -07:00
gsxdsm
4a60c2ac41
FN-5708: backfill files changed chip on done task cards
...
Ensure freshly done task cards show the "N files changed" chip once mergeDetails diff stats arrive.
- backfill TaskCard diff stat display logic so completed cards update when mergeDetails enrichment lands after initial render
- update useTaskDiffStats to derive files-changed counts from merge details with fallback-safe behavior
- add TaskCard and useTaskDiffStats test coverage for late-arriving mergeDetails and chip rendering
- add a changeset for @runfusion/fusion documenting the patch release
Files changed:
.changeset/fn-5708-files-changed-chip.md | 5 ++
packages/dashboard/app/components/TaskCard.tsx | 10 +++
.../app/components/__tests__/TaskCard.test.tsx | 64 +++++++++++++++
.../app/hooks/__tests__/useTaskDiffStats.test.ts | 92 ++++++++++++++++++++++
packages/dashboard/app/hooks/useTaskDiffStats.ts | 17 +++-
5 files changed, 185 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-5708
Fusion-Task-Lineage: 3f961f3f-045b-473e-9636-ca33fd84282c
2026-05-29 21:32:09 -07:00
gsxdsm
200dda95dc
feat(FN-5624): suppress transient task.json ENOENT with guard, logging, and
...
Implements graceful suppression of transient `task.json` ENOENT errors in the executor, logging a suppression signal and surfacing a banner in the UI, with test coverage for both the executor behavior and notification service. Documentation in `docs/architecture.md` and a changeset for `@runfusion/f
Fusion-Task-Id: FN-5624
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
Fusion-Task-Id: FN-5624
2026-05-28 12:10:03 -07:00
gsxdsm
e84673c632
feat(FN-5618): handle deleted source issues in TaskCard
...
Implements source issue delete handling in the task dashboard, including prompt-based user interaction for source-linked issues, new GitHub tracking state logic in `packages/dashboard/src/github-tracking-state.ts`, and corresponding test coverage, with documentation added to `docs/task-management.md
Fusion-Task-Id: FN-5618
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
Fusion-Task-Id: FN-5618
2026-05-28 08:57:59 -07:00
gsxdsm
b22112af89
feat(FN-5482): suppress touch-synthesized mouse events on overlay dismiss
...
Adds a `useOverlayDismiss` hook that suppresses touch-synthesized mouse events on modal/dropdown overlays to prevent unintended close behavior on touch devices, with tests covering TaskCard dismissal and overlay interaction edge cases. Documentation updates in AGENTS.md and docs/architecture.md capt
Fusion-Task-Id: FN-5482
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
Fusion-Task-Id: FN-5482
2026-05-23 02:06:11 -07:00
gsxdsm
f58fb8955a
fix(engine-tests): eliminate temp-dir leak and raise subprocess guard for concurrent workspace runs
...
Two engine merger tests created mkdtempSync workspaces directly in tmpdir()
under the tracked `fusion-test-` prefix; under full-suite concurrent load
the post-run check-test-isolation flagged them as leaks. Route both
(`merger-no-op-fix-finalize.test.ts`, `merger-verification-fix-already-on-main.test.ts`)
through FUSION_TEST_WORKER_ROOT like sibling merger tests so they nest
inside the already-tracked worker root.
Bump engine vitest subprocess guard from 60s to 120s and testTimeout to
30s — plain git commands (branch -d, worktree remove) queued behind
system contention during `pnpm -r --workspace-concurrency=2` runs were
timing out. The guard only fires on hangs, so healthy tests pay nothing.
Also bundles in-progress dashboard mobile-breakpoint regex/CSS test
updates and docs index additions.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-22 20:20:42 -07:00
Fusion (runfusion.ai)
c9ff2078b5
feat(FN-5314): add broad-scope advisory chip to TaskCard and banner to Task
...
Adds broad-scope advisory chips to TaskCard and banner to TaskDetailModal with comprehensive test coverage and a dashboard guide entry. TaskCard gains an inline advisory chip (with styles), TaskDetailModal gets a matching banner, and both components have dedicated test suites covering the new UI ele
Fusion-Task-Id: FN-5314
Fusion-Task-Lineage: cbc88f36-d029-4e4b-ac9c-32a77560b8b9
2026-05-20 09:42:40 -07:00
Fusion (runfusion.ai)
61dd439e20
feat(FN-5252): update done-card files chip display logic
...
Adds a new files chip on done-state TaskCards showing insertion/deletion counts, backed by new types (`filesChanged`, `insertions`, `deletions`) in core; architecture docs updated to reflect the change. The component implementation is a net reduction of 20 lines, with corresponding test coverage add
Fusion-Task-Id: FN-5252
2026-05-19 21:33:08 -07:00
Fusion (runfusion.ai)
e6c7dcdd64
feat(FN-5139): wire lineage unlink delete and archive flows
...
Fusion-Task-Id: FN-5139
Fusion-Task-Lineage: c16f4245-bfda-4b9a-bd98-ffc44b45f5a0
2026-05-19 18:56:24 -07:00
Fusion (runfusion.ai)
817cbfb260
test(FN-5154): complete Step 4 — cover TaskCard restricted clamp
...
Fusion-Task-Id: FN-5154
Fusion-Task-Lineage: 1ca8d162-343b-4d55-bcba-c34efa331ac4
2026-05-19 09:24:51 -07:00
gsxdsm
b6623c6001
feat(FN-5123): merge fusion/fn-5123
2026-05-19 06:16:06 -07:00
Fusion (runfusion.ai)
d8a04ff5a7
feat(FN-5099): complete Step 4 — pass verification gates
...
Fusion-Task-Id: FN-5099
Fusion-Task-Lineage: 26353f25-da61-4b61-8fd2-69915a984cc4
2026-05-18 22:34:21 -07:00
gsxdsm
f11695311a
feat(FN-5088): merge fusion/fn-5088
2026-05-18 18:38:00 -07:00
gsxdsm
ceafb0ee9f
feat(FN-5080): merge fusion/fn-5080
2026-05-18 16:23:24 -07:00
gsxdsm
aad1219037
feat(FN-4967): merge fusion/fn-4967
2026-05-18 15:50:48 -07:00
gsxdsm
57eaac42bf
feat(FN-5061): merge fusion/fn-5061
2026-05-18 13:16:35 -07:00
gsxdsm
ead2ed89aa
feat(FN-5055): merge fusion/fn-5055
2026-05-18 09:02:00 -07:00
Fusion (runfusion.ai)
b92266a38a
test(FN-4909): align far-right chip assertions with new DOM order
...
Fusion-Task-Id: FN-4909
Fusion-Task-Lineage: b317a89c-7dfe-4e95-8901-c98ed61aba7d
2026-05-18 08:03:23 -07:00
Fusion (runfusion.ai)
28b93da710
test(FN-4909): complete Step 3 — update footer order assertion
...
Fusion-Task-Id: FN-4909
Fusion-Task-Lineage: b317a89c-7dfe-4e95-8901-c98ed61aba7d
2026-05-18 08:03:23 -07:00
Fusion (runfusion.ai)
68c63954ce
test(FN-5045): complete Step 3 — update Create PR chip styling assertions
...
Fusion-Task-Id: FN-5045
Fusion-Task-Lineage: d4b967ed-64b6-4a51-9f33-bb7a19e7739d
2026-05-18 07:04:43 -07:00
Fusion (runfusion.ai)
4b5c7475f4
feat(FN-4996): complete Step 2 — add done-task archive-instead flow in TaskCard
...
Fusion-Task-Id: FN-4996
Fusion-Task-Lineage: 650bb5e4-18f2-41a0-ae46-b9112c4a0d74
2026-05-18 05:51:14 -07:00
Fusion (runfusion.ai)
02065e43d5
test(FN-5017): complete Step 4 — cover create PR quick action behavior
...
Fusion-Task-Id: FN-5017
Fusion-Task-Lineage: aeedc3f2-7df8-4467-94b1-77b13b6554e3
2026-05-18 00:47:08 -07:00
Fusion (runfusion.ai)
53e0372bc9
test(FN-4986): complete Step 3 — update footer cluster alignment assertions
...
Fusion-Task-Id: FN-4986
Fusion-Task-Lineage: d7a2c969-f3ea-4f93-bcdb-f86521845fce
2026-05-17 21:34:06 -07:00
Fusion (runfusion.ai)
b60f359088
test(FN-4937): complete Step 2 — cover matching import and linked issue permutations
...
Fusion-Task-Id: FN-4937
Fusion-Task-Lineage: 1eceb69d-b6b2-4256-9629-3841a03b68e9
2026-05-17 15:10:00 -07:00
Fusion (runfusion.ai)
b99298d559
test(FN-4923): complete Step 2 — add tracking chip alignment regressions
...
Fusion-Task-Id: FN-4923
Fusion-Task-Lineage: 2ea94680-edd7-40a9-92a6-9774b97a75f4
2026-05-17 13:07:54 -07:00
gsxdsm
724f8bf908
feat(FN-4906): merge fusion/fn-4906
2026-05-17 09:56:03 -07:00
Fusion (runfusion.ai)
a9fd0ef2e7
test(FN-4713): complete Step 2 — cover in-review far-right chip behavior
...
Fusion-Task-Id: FN-4713
Fusion-Task-Lineage: 16b63893-dcb5-4cf3-baae-c7353db54d38
2026-05-15 22:35:07 -07:00
Fusion
67c2fbc182
feat(FN-4646): complete Step 4 — prefer landed file metadata in dashboard
...
Fusion-Task-Id: FN-4646
Fusion-Task-Lineage: f921098e-3407-40fa-984d-720e0c3248c7
2026-05-15 13:22:19 -07:00
Fusion
92721f41f5
test(FN-4647): complete Step 5 — add done-task diff labeling regressions
...
Fusion-Task-Id: FN-4647
Fusion-Task-Lineage: c86304d4-ff28-478a-a254-8ddaeca53447
2026-05-15 12:07:52 -07:00
Fusion
0c38c17923
test(FN-4634): complete Step 3 — cover in-progress github chip far-right modifier
...
Fusion-Task-Id: FN-4634
Fusion-Task-Lineage: 87cc75e7-ba50-4cb5-bb9f-6d86f49268e0
2026-05-15 10:05:46 -07:00
Fusion
0c139a455f
feat(FN-4618): add inline in-review move control with meta row
...
Adds an inline move-control button to the TaskCard meta row for in-review tasks, letting users move tasks directly from the board without opening the detail panel. Tests and a workflow-step allowlist entry were added alongside the CSS and component changes.
Fusion-Task-Id: FN-4618
2026-05-15 09:31:00 -07:00
Fusion
1ffa0b7a0f
test(FN-4607): complete Step 3 — add github badge alignment regressions
...
Fusion-Task-Id: FN-4607
Fusion-Task-Lineage: efd8db24-f734-49c8-8eb4-a96ae78c0afd
2026-05-15 08:16:50 -07:00
Fusion
d1d2b439b7
test(FN-4595): cover legacy backfill and wall-clock timing display
...
Fusion-Task-Id: FN-4595
Fusion-Task-Lineage: 73a3d0ad-5c10-4560-aec5-f9d138deeefd
2026-05-15 07:50:34 -07:00
Fusion
3648d1e1df
feat(FN-4595): implement cumulative execution timing semantics
...
Fusion-Task-Id: FN-4595
Fusion-Task-Lineage: 73a3d0ad-5c10-4560-aec5-f9d138deeefd
2026-05-15 07:50:34 -07:00
Fusion
7ca0e10b11
feat(FN-4592): complete Step 3 — treat userPaused as paused in TaskCard
...
Fusion-Task-Id: FN-4592
Fusion-Task-Lineage: b013a15e-7cd9-4ba4-b380-22627cefb394
2026-05-15 06:32:37 -07:00
Fusion
2d74b5db18
test(FN-4573): complete Step 3 — update move control placement regression
...
Fusion-Task-Id: FN-4573
Fusion-Task-Lineage: 874cd700-dc35-4568-b4ba-c27719168521
2026-05-15 01:12:04 -07:00
Fusion
9b7d63b6e8
test(FN-4570): complete Step 4 — add TaskCard merge-blocker regression
...
Fusion-Task-Id: FN-4570
Fusion-Task-Lineage: 08deec6d-a54a-4296-9443-3101662314f2
2026-05-15 01:02:57 -07:00
Fusion
8e59e9600d
feat(FN-4566): unify task card tracking retry timing chips
...
Unified the task card tracking retry timing chips in the dashboard, refactoring the display logic and styling for consistency across task states. The CSS was significantly simplified while tests were expanded to cover the new chip behavior.
Fusion-Task-Id: FN-4566
2026-05-15 00:48:45 -07:00
Fusion
4ea7aa1f8e
feat(FN-4525): enforce shared chip heights across TaskCard columns
...
Completes Step 5 of FN-4525 by enforcing consistent chip heights in TaskCard components, adding CSS rules in both the component and global stylesheets with corresponding test coverage.
Fusion-Task-Id: FN-4525
2026-05-14 23:48:28 -07:00
Fusion
5dc02d2337
feat(FN-4462): complete Step 2 — render retry-exhausted badge text
...
Fusion-Task-Id: FN-4462
Fusion-Task-Lineage: 15fc09f5-1363-429e-b131-9c9fdabee532
2026-05-14 22:57:47 -07:00
Fusion
935d9bae25
feat(FN-4538): complete Step 5 — show overlap blockers in dashboard
...
Fusion-Task-Id: FN-4538
Fusion-Task-Lineage: 332b4c78-b67f-45d0-9181-0bb539b662c1
2026-05-14 22:24:51 -07:00
Fusion
273fc7018a
feat(FN-4452): complete Step 4 — surface stale paused review in dashboard
...
Fusion-Task-Id: FN-4452
Fusion-Task-Lineage: 7d8b1c13-883b-4815-94ee-fdf18ad24e5f
2026-05-14 18:35:30 -07:00
Fusion
34328aad92
feat(FN-4527): complete Step 2 — enforce done-task diffStats precedence in TaskCard
...
Fusion-Task-Id: FN-4527
Fusion-Task-Lineage: de75c453-dc86-43d2-9cc5-50b20ee7014d
2026-05-14 18:07:05 -07:00
Fusion
87ca698e3c
feat(FN-4540): relocate in-review move control to TaskCard
...
Relocated the in-review move control within TaskCard, refactoring both the component layout and styling with accompanying tests — the CSS and TSX changes indicate a significant repositioning of controls while the new test file validates the updated behavior.
Fusion-Task-Id: FN-4540
2026-05-14 16:11:56 -07:00
Fusion
ff2b7607a9
feat(FN-3977): complete Step 3 — overlap bottleneck dashboard copy
...
Fusion-Task-Id: FN-3977
Fusion-Task-Lineage: c84f2ce0-3726-49b2-ad84-6703edbfecf1
2026-05-14 15:49:55 -07:00
Fusion
b8e387a004
test(FN-4511): complete Step 3 — assert badge icon and geometry parity
...
Fusion-Task-Id: FN-4511
Fusion-Task-Lineage: 9bc31d0c-643c-4f31-82b7-ecfc76d05731
2026-05-14 12:38:59 -07:00
Fusion
a673718b50
feat(FN-4371): complete remaining decision-only task handling
...
Fusion-Task-Id: FN-4371
Fusion-Task-Lineage: 4175ba4c-b7cb-4f3a-87c5-75e51f06c0ff
2026-05-14 09:59:15 -07:00
Fusion
0ec2163fdb
feat(FN-4481): complete Step 4 — align github badge size and coverage
...
Fusion-Task-Id: FN-4481
Fusion-Task-Lineage: 8b52379c-60b7-4cae-b655-7ed780c5c523
2026-05-14 09:19:14 -07:00