Commit Graph

4373 Commits

Author SHA1 Message Date
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
9c29e2e776 FN-5829: add shared feature branch option for new tasks
Allow new tasks to target a shared branch-group feature branch during creation.

- Add branch-group aware branch selection handling in task workflow routes.
- Update store/types/db wiring to support and persist shared feature-branch targeting.
- Extend dashboard task creation UI/tests and route tests to cover the new option.
- Add a changeset for @runfusion/fusion documenting the new CLI/task behavior.

Files changed:
 .changeset/fn-5829-shared-feature-branch-option.md |   7 ++
 .../src/commands/__tests__/task-lifecycle.test.ts  |   2 +-
 .../core/src/__tests__/branch-group-store.test.ts  |  26 ++++++
 packages/core/src/db.ts                            |   4 +-
 packages/core/src/store.ts                         |   9 +-
 packages/core/src/types.ts                         |   2 +-
 packages/dashboard/app/components/NewTaskModal.tsx |   2 +-
 packages/dashboard/app/components/TaskForm.tsx     |   9 +-
 .../app/components/__tests__/NewTaskModal.test.tsx |  37 ++++++++
 .../src/__tests__/branch-selection.test.ts         |  12 +++
 .../dashboard/src/__tests__/mission-e2e.test.ts    |   8 +-
 .../src/__tests__/routes-planning.test.ts          |   6 +-
 .../src/__tests__/routes-tasks.test.ts             | 102 +++++++++++++++++++++
 packages/dashboard/src/routes/branch-selection.ts  |  19 +++-
 .../src/routes/register-task-workflow-routes.ts    |  23 +++--
 15 files changed, 242 insertions(+), 26 deletions(-)

Fusion-Task-Id: FN-5829

Fusion-Task-Lineage: 7d69acc8-19a3-4112-9bf2-5ac7b5e5a929
2026-06-01 03:23:10 -07:00
gsxdsm
3f75f55707 FN-5827: derive per-subtask working branches in shared planning mode
Ensure planning subtask creation always assigns distinct per-task working branches while preserving shared merge-target grouping.

- route planning subtask branch assignment through resolveEntryPointBranchAssignment for both direct and merged subtask creation paths
- keep shared assignment mode grouped by branch context while deriving unique working branches from the planning branch
- update modal copy to clarify shared mode semantics (shared merge target + per-task branches)
- adjust planning/tasks route tests to assert derived per-task branch names and shared branch-context metadata

Files changed:
 .../app/components/SubtaskBreakdownModal.tsx       |  4 +-
 .../src/__tests__/routes-planning.test.ts          | 51 ++++++++++++++++++----
 .../dashboard/src/__tests__/routes-tasks.test.ts   |  2 +-
 .../src/routes/register-planning-subtask-routes.ts | 18 +++++---
 4 files changed, 57 insertions(+), 18 deletions(-)

Fusion-Task-Id: FN-5827

Fusion-Task-Lineage: 5d6d162f-b89f-49c5-b962-be41332547fe
2026-06-01 03:13:07 -07:00
gsxdsm
2546065674 FN-5828: route shared mission triage to per-task working branches
Ensure mission shared-branch triage creates unique task branches while preserving a single shared merge target.

- Compute branch assignment during mission feature triage with resolveEntryPointBranchAssignment and persist per-task working branches in shared mode.
- Keep shared branch-group initialization tied to the mission merge-target branch for shared assignment flows.
- Update core and dashboard mission triage tests to assert distinct per-task branches under shared strategy and verify branch-group behavior.
- Refresh mission docs to clarify shared vs per-task-derived branch strategy semantics.

Files changed:
 docs/missions.md                                   |  8 +--
 packages/core/src/__tests__/mission-store.test.ts  | 42 +++++++++++++--
 packages/core/src/mission-store.ts                 | 19 ++++---
 packages/dashboard/src/__tests__/mission-e2e.test.ts    | 63 ++++++++++++++++++++--
 4 files changed, 115 insertions(+), 17 deletions(-)

Fusion-Task-Id: FN-5828

Fusion-Task-Lineage: 9854ea25-6926-4883-92ae-36a5c0a817c5
2026-06-01 03:09:50 -07:00
gsxdsm
9ba3a8e453 FN-5826: centralize branch assignment derivation
Centralize working-branch vs merge-target derivation and reuse it across branch-selection flows.

- add a shared core helper to derive working branch, merge target, and default branch assignment
- export the new helper from @fusion/core and add focused unit coverage for branch-assignment behavior
- update dashboard branch-selection route to consume the shared helper instead of duplicating derivation logic
- extend dashboard branch-selection tests to verify helper-driven branch/merge-target precedence

Files changed:
 .../core/src/__tests__/branch-assignment.test.ts   | 99 ++++++++++++++++++++++
 packages/core/src/branch-assignment.ts             | 76 +++++++++++++++++
 packages/core/src/index.ts                         | 11 +++
 .../src/__tests__/branch-selection.test.ts         | 12 +++
 packages/dashboard/src/routes/branch-selection.ts  | 39 +++++----
 5 files changed, 222 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-5826

Fusion-Task-Lineage: ad7c5487-5266-4281-abd6-33784dd7e488
2026-06-01 01:39:59 -07:00
gsxdsm
6ade858235 FN-5824: add MiniMax-M3 support examples
Update MiniMax model references to MiniMax-M3 across runtime UI, docs, and tests.

- Update Hermes and OpenClaw model input placeholders to show MiniMax-M3 examples
- Refresh Hermes runtime README and CLI parsing comment examples to MiniMax-M3
- Adjust dashboard usage test expectations from MiniMax-M* to MiniMax-M3
- Add Hermes runtime adapter coverage to ensure MiniMax-M3 is passed through unchanged

Files changed:
 packages/dashboard/app/components/HermesRuntimeCard.tsx          | 2 +-
 packages/dashboard/app/components/OpenClawRuntimeCard.tsx        | 2 +-
 packages/dashboard/src/__tests__/usage.test.ts                   | 4 ++--
 plugins/fusion-plugin-hermes-runtime/README.md                   | 2 +-
 .../src/__tests__/runtime-adapter.test.ts                        | 9 +++++++++
 plugins/fusion-plugin-hermes-runtime/src/cli-spawn.ts            | 2 +-
 6 files changed, 15 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-5824

Fusion-Task-Lineage: d9524280-be33-49f8-83d8-ac9b963164f8
2026-06-01 01:35:03 -07:00
gsxdsm
1aef3c9899 FN-5817: prevent blank dashboard after auto-merge toggle
Ensure viewport mode updates stay in sync so toggling auto-merge no longer blanks the dashboard.

- update useViewportMode to initialize safely and react consistently to viewport/media-query changes
- add focused hook coverage for initial mode detection and transition behavior
- add dashboard/app regression tests to confirm the board remains rendered after auto-merge toggles
- add a changeset for @runfusion/fusion patch release

Files changed:
 .changeset/fn-5817-auto-merge-toggle-mobile.md     |  5 ++
 .../app/components/__tests__/App.test.tsx          | 66 ++++++++++++++++++++++
 .../__tests__/board-mobile-initial-render.test.tsx | 30 ++++++++++
 .../app/hooks/__tests__/useViewportMode.test.ts    | 34 +++++++++++
 packages/dashboard/app/hooks/useViewportMode.ts    | 28 +++++++--
 5 files changed, 159 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-5817

Fusion-Task-Lineage: 2fc044b1-5f37-44de-b70e-c60364a3d69c
2026-06-01 01:30:34 -07:00
gsxdsm
edc5add852 FN-5804: fix planning resume for rehydrated sessions
Ensure planning resume routes keep project-scoped task store context after restart rehydration.

- add test helpers to seed and rehydrate planning AI sessions from a mock session store
- cover /api/planning respond, back, and retry resume flows to prevent missing task store/project context regressions
- update planning route expectations for new scoped-store arguments and align session lookup in auto-merge coverage
- include routes-planning in dashboard quality API vitest suite

Files changed:
 packages/dashboard/src/__tests__/routes-planning.test.ts          | 155 ++++++++++++++++++++-
 packages/dashboard/vitest.config.ts                |   2 +-
 2 files changed, 149 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-5804

Fusion-Task-Lineage: 2a20aa0f-086b-41f8-b69b-f81a00414a96
2026-05-31 23:30:09 -07:00
gsxdsm
a44b6102e3 fix(FN-5804): plumb scopedStore into planning resume routes
submitResponse/rewindSession/retrySession all accept a trailing store
arg but the routes omitted it, so sessions rehydrated after a restart
(session.store not persisted) threw 'Planning session has no task store
and cannot be resumed without project context'. Pass scopedStore so
resume-after-restart works.

Fusion-Task-Id: FN-5804
2026-05-31 23:06:30 -07:00
gsxdsm
f6edf4a14f FN-5802: prevent planning-session double-submit freeze
Eliminate the double-submit race so planning sessions no longer get stuck in generating.

- add concurrency guards in planning session state transitions to reject overlapping submits
- tighten planning route handling to avoid duplicate generation kicks for the same session
- expand planning tests to cover race scenarios and ensure session recovery behavior

Files changed:
 packages/dashboard/src/__tests__/planning.test.ts  | 141 +++++++++++++++++++++
 packages/dashboard/src/planning.ts                 |  92 +++++++++++---
 .../src/routes/register-planning-subtask-routes.ts |   4 +-
 3 files changed, 219 insertions(+), 18 deletions(-)

Fusion-Task-Id: FN-5802

Fusion-Task-Lineage: 0ae4d04a-319f-4c93-9855-214d9292f259
2026-05-31 22:56:07 -07:00
gsxdsm
392a6918b2 FN-5800: fix shared planning branch-group setup context binding
Prevent unbound this crashes when shared-branch planning subtasks initialize branch groups.

- call ensureBranchGroupForSource through the store object so method context is preserved
- update the planning routes in both shared-branch creation flows to use the bound store call
- harden the planning routes test mock to rely on this.getBranchGroupBySource and keep branch-group creation behavior realistic
- add regression coverage for creating shared branch groups from subtask breakdown task creation

Files changed:
 packages/dashboard/src/__tests__/routes-planning.test.ts          | 61 ++++++++++++++++++++--
 packages/dashboard/src/routes/register-planning-subtask-routes.ts |  8 +--
 2 files changed, 61 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-5800
Fusion-Task-Lineage: c4ce9257-0bd2-4b46-b88a-672992ecd969
2026-05-31 22:02:38 -07:00
gsxdsm
4ea43c0c87 FN-5801: add markdown preview toggle for planning description
Add a markdown/plain toggle to the planning summary description so users can preview formatted content before creating a task.

- add a Description header toggle that switches between editable plain textarea and rendered markdown preview
- render description preview with react-markdown and remark-gfm while preserving expand/collapse layout behavior
- add preview container styles and spacing adjustments for summary form
- add UI interaction test coverage for markdown toggle behavior and rendered heading/bold content
- document the new markdown/plain description toggle in dashboard guide

Files changed:
 docs/dashboard-guide.md                            |  1 +
 packages/dashboard/app/components/PlanningModeModal.css | 18 +++++++-
 packages/dashboard/app/components/PlanningModeModal.tsx | 32 ++++++++++---
 packages/dashboard/app/components/__tests__/PlanningModeModal.ui-interactions.test.tsx | 54 ++++++++++++++++++++++
 4 files changed, 98 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-5801

Fusion-Task-Lineage: 34972830-7d51-4fcd-bf00-3de8f5aff028
2026-05-31 21:59:06 -07:00
gsxdsm
0a16fc690a FN-5799: preserve first-turn planning thinking output
Ensure first-question planning UI reliably shows streamed reasoning before question transitions.

- Keep streamingOutputRef synchronized during onThinking updates so back-to-back thinking/question events preserve full reasoning text.
- Expand PlanningModeModal question-flow tests to cover same-tick buffered replay and loading-view visibility for first-turn and follow-up thinking output.
- Update assertions to verify reasoning content remains visible in conversation history after question handoff.

Files changed:
 .../dashboard/app/components/PlanningModeModal.tsx |  9 +++-
 .../__tests__/PlanningModeModal.questions.test.tsx | 62 ++++++++++++++++++++--
 2 files changed, 66 insertions(+), 5 deletions(-)

Fusion-Task-Id: FN-5799
Fusion-Task-Lineage: 41677c47-4380-4145-a3d2-0e928fc40042
2026-05-31 21:43:23 -07:00
gsxdsm
944c03d495 FN-5797: fix usage indicator show hidden button behavior
Prevent hidden-window controls in UsageIndicator from acting as implicit form submitters.

- Set both window-level Hide and provider-level Show hidden buttons to `type="button"`.
- Preserve hidden-window reveal behavior without submitting parent forms.
- Add a regression test covering hide/show persistence and rerender re-sync behavior.

Files changed:
 .changeset/fn-5797-show-hidden-fix.md              |  8 +++++
 packages/dashboard/app/components/UsageIndicator.tsx    |  2 ++
 packages/dashboard/app/components/__tests__/UsageIndicator.test.tsx   | 40 ++++++++++++++++++++++
 3 files changed, 50 insertions(+)

Fusion-Task-Id: FN-5797

Fusion-Task-Lineage: 9072bb68-b86b-4ec7-8b1f-0e6b706cbb5f
2026-05-31 21:08:41 -07:00
gsxdsm
a8c920daf9 chore(release): v0.39.0
Version bump via changesets.
2026-05-31 20:05:32 -07:00
gsxdsm
5930c18b4d FN-5795: send ntfy notification when agents create tasks
Add agent task-created ntfy notifications with configurable settings and coverage.

- add notification plumbing to emit a dedicated event when an agent creates a task
- extend ntfy provider/settings typing and dashboard settings coverage for the new event toggle
- add regression tests for notification service, notifier integration, and ntfy provider behavior
- add a changeset and documentation updates describing the new notification capability

Files changed:
 .changeset/fn-5795-task-created-notification.md    |  9 +++
 docs/architecture.md                               |  4 +-
 docs/settings-reference.md                         |  4 +-
 docs/storage.md                                    |  2 +-
 packages/core/src/types.ts                         |  4 +-
 .../dashboard/app/components/SettingsModal.tsx     |  1 +
 .../components/__tests__/SettingsModal.test.tsx    | 27 +++++++-
 .../src/__tests__/notification-service.test.ts     | 71 ++++++++++++++++++++++
 packages/engine/src/__tests__/notifier.test.ts     |  5 ++
 .../engine/src/__tests__/ntfy-provider.test.ts     | 32 ++++++++++
 .../src/notification/notification-service.ts       | 53 +++++++++++++++-
 packages/engine/src/notification/ntfy-provider.ts  | 21 +++++--
 12 files changed, 220 insertions(+), 13 deletions(-)

Fusion-Task-Id: FN-5795

Fusion-Task-Lineage: 4cfa3b46-8e9c-451e-ab2d-b7d5c9bf5968
2026-05-31 19:59:32 -07:00
gsxdsm
fc4fc9c3cf FN-5793: replace Discord settings icon with official logo
Swap the Settings modal Discord link icon to the official Discord mark and cover it with a focused regression test.

- add an inline Discord SVG icon component and use it in the Discord footer link
- remove the previous lucide MessageCircle icon import and usage
- extend SettingsModal tests to assert the Discord SVG renders and the old icon is absent

Files changed:
 packages/dashboard/app/components/SettingsModal.tsx                 | 20 ++++++++++++++++++--
 packages/dashboard/app/components/__tests__/SettingsModal.test.tsx |  3 +++
 2 files changed, 21 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-5793

Fusion-Task-Lineage: eebbad06-311b-4770-b739-19b33fc29e6a
2026-05-31 17:36:31 -07:00
gsxdsm
ffadb0c77f FN-5792: fix GitHub auto-close reconciliation for soft-deleted tasks
Ensure GitHub issue auto-close reconciliation still processes soft-deleted and archived tracked tasks after restart.

- Add pagination-aware reconcile scanning in core store with combined deleted+archived coverage and hasMore metadata.
- Update dashboard GitHub tracking reconciler and route handling to consume paged reconcile batches safely.
- Expand reconcile tests (core + dashboard) with restart/periodic sweep and source-issue scenarios to lock behavior.
- Add release changeset and dashboard guide note for the reconciliation sweep behavior.

Files changed:
 .changeset/fn-5792-github-tracking-sweep.md        |   5 +
 docs/dashboard-guide.md                            |   1 +
 .../store-github-tracking-reconcile.test.ts        |  45 ++++++++-
 packages/core/src/store.ts                         |  32 ++++--
 .../github-source-issue-reconciler.test.ts         |  22 ++--
 ...ithub-tracking-periodic-reconcile-sweep.test.ts |  90 +++++++++++++++++
 .../__tests__/github-tracking-reconciler.test.ts   | 111 +++++----------------
 .../dashboard/src/github-tracking-reconciler.ts    |  19 ++--
 .../dashboard/src/routes/register-git-github.ts    |  57 +++++++++--
 9 files changed, 257 insertions(+), 125 deletions(-)

Fusion-Task-Id: FN-5792

Fusion-Task-Lineage: 259f07cf-3470-47c7-b47a-86d212d44d52
2026-05-31 17:23:26 -07:00
gsxdsm
716f3964c5 FN-5790: harden room chat send handling and optimistic reconciliation
Prevent duplicate room sends and avoid restoring composer text when ambiguous failures still delivered the message.

- guard room composer sends with an in-flight ref to prevent double-dispatch
- treat ambiguous post-send refresh failures as delivered when recovery confirms the user message
- centralize optimistic/SSE user-message reconciliation to replace temp messages instead of duplicating them
- add and update chat room hook/component tests that cover double-send prevention and delivered-on-ambiguous-failure behavior
- add a patch changeset for @runfusion/fusion documenting the room chat reliability fix

Files changed:
 .changeset/few-dingos-smile.md                     |  5 ++
 packages/dashboard/app/components/ChatView.tsx     |  8 +++
 .../components/__tests__/ChatView.rooms.test.tsx   | 27 ++++++++++
 .../app/hooks/__tests__/useChatRooms.test.ts       | 48 +++++++++++++++--
 packages/dashboard/app/hooks/useChatRooms.ts       | 62 +++++++++++++++-------
 5 files changed, 126 insertions(+), 24 deletions(-)

Fusion-Task-Id: FN-5790

Fusion-Task-Lineage: a1ac5e4f-4cc2-4cf9-8bc1-42587d0d1d1b
2026-05-31 16:57:42 -07:00
gsxdsm
d585ac2181 FN-5791: add markdown goal descriptions with show-more toggle
Improve goal card descriptions to support markdown formatting while keeping long content scannable.

- render goal descriptions with markdown + GFM support in GoalsView
- collapse long or multi-line descriptions by default and add Show more/Show less disclosure
- style collapsed description layout and add responsive clamp adjustments
- add tests for markdown rendering, long-description toggle behavior, and short-description no-toggle behavior

Files changed:
 packages/dashboard/app/components/GoalsView.css    | 27 +++++++++++++
 packages/dashboard/app/components/GoalsView.tsx    | 46 +++++++++++++++++++++-
 packages/dashboard/app/components/__tests__/GoalsView.test.tsx    | 42 ++++++++++++++++++++
 3 files changed, 114 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-5791

Fusion-Task-Lineage: a3a0be5c-4a8d-4dc1-93a3-40891ab7762b
2026-05-31 16:43:58 -07:00
gsxdsm
06d84905ba FN-5783: enforce branch-group autoMerge precedence for shared promotions
Honor group-level autoMerge precedence when promoting shared branch groups.

- add core/store helpers to preserve branch-group autoMerge overrides and resolve effective precedence against task/project settings
- gate branch-group promotion eligibility in engine merge coordination and emit promotion-gated audit metadata
- update dashboard planning/subtask flows for shared mission triage routing and add reliability/unit coverage
- include docs and changeset updates for branch-group autoMerge precedence behavior

Files changed:
 .../fn-5783-branch-group-automerge-precedence.md   |   5 +
 AGENTS.md                                          |   1 +
 docs/settings-reference.md                         |   2 +-
 docs/workflow-steps.md                             |   2 +
 .../core/src/__tests__/branch-group-store.test.ts  |  18 ++++
 packages/core/src/__tests__/task-merge.test.ts     |  18 ++++
 packages/core/src/index.ts                         |   1 +
 packages/core/src/mission-store.ts                 |  13 +++
 packages/core/src/store.ts                         |  17 ++++
 packages/core/src/task-merge.ts                    |   8 ++
 .../dashboard/src/__tests__/mission-e2e.test.ts    |  98 ++++++++++++++++--
 .../src/__tests__/routes-planning.test.ts          | 109 ++++++++++++++++++++-
 packages/dashboard/src/planning.ts                 |   1 +
 .../src/routes/register-planning-subtask-routes.ts |  28 ++++++
 packages/dashboard/src/subtask-breakdown.ts        |   1 +
 .../branch-group-automerge-precedence.test.ts      | 102 +++++++++++++++++++
 packages/engine/src/group-merge-coordinator.ts     |  31 +++++-
 packages/engine/src/merger.ts                      |  30 ++++--
 18 files changed, 466 insertions(+), 19 deletions(-)

Fusion-Task-Id: FN-5783

Fusion-Task-Lineage: 74327984-b14f-445c-81cd-5295ee562382
2026-05-31 15:17:11 -07:00
gsxdsm
f1aba5b534 Merge pull request #1226 from plarson/fix/dirty-integration-merge-block
fix(engine): block dirty integration merge landings
2026-05-31 13:49:58 -07:00
Phil Larson
3dee395d67 fix(engine): block dirty integration merge landings
Refuse AI merge landing on a checked-out dirty integration worktree by default. This prevents Fusion from stashing/restoring unrelated project-root edits into main and then marking tasks done against contaminated state.

Fusion-Task-Id: FN-5780
2026-05-31 13:12:13 -07:00
gsxdsm
fca6e7f7db FN-5781: move settings Help link to footer version row
Relocate the Settings Help/discussions action from the header controls to the footer version area for clearer placement.

- Remove the Help button from the settings header action group and keep Star/Discord there.
- Add the Help link beside the footer version/update-check section with the same hardened external-link attributes.
- Update Settings modal styling for the new footer help placement and spacing behavior.
- Adjust Settings modal and mobile CSS tests to assert the new Help location and height contract selectors.

Files changed:
 .../dashboard/app/components/SettingsModal.css     | 12 ++++++++----
 .../dashboard/app/components/SettingsModal.tsx     | 22 +++++++++++-----------
 .../components/__tests__/SettingsModal.test.tsx    | 12 +++++++++++-
 .../components/__tests__/settings-mobile.test.tsx  |  4 ++--
 4 files changed, 32 insertions(+), 18 deletions(-)

Fusion-Task-Id: FN-5781

Fusion-Task-Lineage: 90fe2f30-c2fe-438b-b486-3b6ef14e21a6
2026-05-31 11:55:11 -07:00
gsxdsm
b6b902485e FN-5779: restore Star on GitHub header button
Restore the Settings header GitHub star CTA while removing its configurability.

- keep the Star on GitHub link in Settings header with refreshed split-pill styling and alignment
- reintroduce GitHub star count fetching/caching and click-tracking helpers used by the header control
- update Settings modal header-action test expectations to include the GitHub star link
- revise the changeset note to reflect removing only the showGitHubStarButton setting/toggle

Files changed:
 .changeset/FN-5777-removal.md                      |   4 +-
 packages/dashboard/app/components/SettingsModal.css     |  51 ++++++++-
 packages/dashboard/app/components/SettingsModal.tsx     | 118 ++++++++++++++++++++-
 packages/dashboard/app/components/__tests__/SettingsModal.test.tsx    |   4 +-
 4 files changed, 170 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-5779

Fusion-Task-Lineage: f485a062-6110-4a79-b42d-70710e3ce5da
2026-05-31 11:55:11 -07:00
gsxdsm
62bc1e4458 FN-5777: remove GitHub star setting and button
Remove the dashboard setting and UI entry points for the GitHub star prompt.

- Remove the Star on GitHub option from settings state types and schema definitions.
- Delete SettingsModal UI, handlers, and styles tied to the star button and related layout.
- Update SettingsModal tests and add a changeset documenting the patch release impact.

Files changed:
 .changeset/FN-5777-removal.md                      |   7 ++
 packages/core/src/settings-schema.ts               |   1 -
 packages/core/src/types.ts                         |   4 -
 .../dashboard/app/components/SettingsModal.css     |  51 +-------
 .../dashboard/app/components/SettingsModal.tsx     | 137 +--------------------
 .../components/__tests__/SettingsModal.test.tsx    |   5 +-
 6 files changed, 13 insertions(+), 192 deletions(-)

Fusion-Task-Id: FN-5777

Fusion-Task-Lineage: 16367ba6-ad22-4ba0-a033-005ccc420c19
2026-05-31 11:55:10 -07:00
gsxdsm
5c33ab133e FN-5773: add safe reconcile-done endpoint for shipped mission features
Add a guarded API path to reconcile mission features to done after delivery tasks have already shipped.

- add POST /api/missions/features/:featureId/reconcile-done with validation for feature id, task id, task linkage, and terminal task columns (done/archived)
- keep active-work protections by rejecting non-terminal task columns and mismatched existing task links with clear conflict responses
- extend mission API e2e coverage for success and failure cases, including done/archived reconciliation, missing inputs, invalid ids, missing tasks/features, and mismatched links
- document reconcile-done behavior, safety gates, and error semantics in missions docs

Files changed:
 docs/missions.md                                   |  31 ++++++
 packages/dashboard/src/__tests__/mission-e2e.test.ts    | 105 +++++++++++++++++++++
 packages/dashboard/src/mission-routes.ts           |  59 ++++++++++++
 3 files changed, 195 insertions(+)

Fusion-Task-Id: FN-5773

Fusion-Task-Lineage: c638b43f-d66f-479a-82c1-a9378a628ca3
2026-05-31 08:32:01 -07:00
gsxdsm
acad46cc10 FN-5764: expose mission assertion backfill through API and CLI
Expose mission assertion backfill controls and run paths across engine, API, and CLI surfaces.

- add mission assertion backfill gating classification and reliability coverage for assertion-linked validation recovery
- add dashboard mission routes plus legacy API coverage and e2e checks for running assertion backfill
- expose new extension tool support and update Fusion skill docs/capability references
- add a changeset for @runfusion/fusion and refresh mission documentation

Files changed:
 .changeset/fn-5764-mission-backfill-assertions.md  |   9 ++
 docs/missions-completion-contract.md               |   7 +-
 docs/missions.md                                   |   7 +-
 packages/cli/skill/fusion/SKILL.md                 |   2 +-
 .../cli/skill/fusion/references/extension-tools.md |   9 ++
 .../skill/fusion/references/fusion-capabilities.md |   1 +
 packages/cli/src/__tests__/extension.test.ts       |  41 +++++++
 packages/cli/src/extension.ts                      |  43 +++++++
 .../dashboard/app/__tests__/api-missions.test.ts   |  44 +++++++
 packages/dashboard/app/api/legacy.ts               |  34 ++++++
 .../dashboard/src/__tests__/mission-e2e.test.ts    | 127 +++++++++++++++++++++
 packages/dashboard/src/mission-routes.ts           |  29 +++++
 .../mission-validation-trigger-gap.test.ts         |  66 +++++++++++
 .../workflow-step-readonly-allowlist.test.ts       |   1 +
 packages/engine/src/gating-classifications.ts      |   1 +
 15 files changed, 418 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-5764

Fusion-Task-Lineage: b16123c2-7cfe-4b17-a899-4e30044a7a49
2026-05-31 08:32:01 -07:00
gsxdsm
ec92434f4c FN-5765: move settings version check from header to footer
Relocate Settings version/update UI into the modal footer to reduce header crowding.

- Remove the version/update-check control block from the Settings modal header.
- Add a dedicated footer version container and keep the update-check action/result rendering there.
- Update Settings modal CSS for the new footer layout and mobile wrapping behavior.
- Extend mobile tests to verify footer placement and update-check button clickability.

Files changed:
 packages/dashboard/app/components/SettingsModal.css    | 25 +++++++--
 packages/dashboard/app/components/SettingsModal.tsx    | 64 +++++++++++-----------
 packages/dashboard/app/components/__tests__/settings-mobile.test.tsx | 27 ++++++++-
 3 files changed, 77 insertions(+), 39 deletions(-)

Fusion-Task-Id: FN-5765

Fusion-Task-Lineage: 97923f08-e787-4274-a4ce-8b615b909468
2026-05-31 08:32:01 -07:00
gsxdsm
0ffe7f0604 FN-5762: add mission hierarchy delete tools with linked-task guards
Add mission delete tooling across core, dashboard routes, and CLI extension surfaces.

- Add `fn_feature_delete`, `fn_slice_delete`, and `fn_milestone_delete` tools to the CLI extension with `force` override support.
- Enforce live-task linkage guards for feature/slice/milestone deletes in mission store logic and expose conflict behavior through mission routes.
- Extend coverage and docs for delete behavior, allowlist/gating metadata, and published Fusion skill/tool references.

Files changed:
 .changeset/fn-5762-feature-delete.md               |   7 +
 docs/missions.md                                   |  15 +++
 packages/cli/skill/fusion/SKILL.md                 |   2 +-
 .../cli/skill/fusion/references/extension-tools.md |  27 ++++
 .../skill/fusion/references/fusion-capabilities.md |   3 +
 packages/cli/src/__tests__/extension.test.ts       |  34 +++++
 packages/cli/src/extension.ts                      | 106 +++++++++++++++
 packages/core/src/__tests__/mission-store.test.ts  | 146 ++++++++++++++++++++-
 packages/core/src/mission-store.ts                 |  98 ++++++++++++--
 .../dashboard/src/__tests__/mission-e2e.test.ts    |  62 +++++++--
 packages/dashboard/src/mission-routes.ts           |  42 +++++-
 .../workflow-step-readonly-allowlist.test.ts       |   3 +
 packages/engine/src/gating-classifications.ts      |   3 +
 13 files changed, 514 insertions(+), 34 deletions(-)

Fusion-Task-Id: FN-5762
Fusion-Task-Lineage: 9c6eceff-dcb4-4a2b-90c6-59cb0228ca6d
2026-05-31 08:32:01 -07:00
gsxdsm
93d3a58cb8 FN-5763: add Discord link next to GitHub star button
Add a Discord CTA in the Settings header alongside the existing GitHub star action.

- Add a Discord header action/link in SettingsModal next to the GitHub star button
- Update SettingsModal styles to support the additional header action
- Extend SettingsModal tests to cover rendering and behavior of the new Discord link

Files changed:
 packages/dashboard/app/components/SettingsModal.css        |  2 ++
 packages/dashboard/app/components/SettingsModal.tsx        | 13 ++++++++++++-
 .../app/components/__tests__/SettingsModal.test.tsx        | 14 +++++++++++++-
 3 files changed, 27 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-5763

Fusion-Task-Lineage: 758eddf8-246c-41be-9742-a9d5b4b0eb17
2026-05-31 08:32:01 -07:00
gsxdsm
194dfa9387 FN-5758: add cited-goal audit aggregation and runtime route
Add end-to-end goal-citation audit trail plumbing across core, engine, CLI, and dashboard.

- extend goal citation extraction with aggregation logic and new core coverage
- expose cited-goal runtime data through dashboard routes with dedicated API tests
- wire goal-citation audit details into engine diagnostics and CLI extension audit expectations
- document the new audit behavior and publish a patch changeset for @runfusion/fusion

Files changed:
 .changeset/fn-5758-goal-citation-audit.md          |  9 +++
 docs/dashboard-guide.md                            |  2 +
 docs/diagnostics.md                                |  4 ++
 .../__tests__/extension-goal-tools-audit.test.ts   |  6 +-
 packages/cli/src/extension.ts                      |  3 +
 .../goal-citation-audit-aggregation.test.ts        | 63 ++++++++++++++++++
 packages/core/src/goal-citation-extractor.ts       | 54 ++++++++++++++-
 packages/core/src/index.ts                         |  1 +
 .../src/__tests__/routes-run-cited-goals.test.ts   | 77 ++++++++++++++++++++++
 packages/dashboard/src/routes.ts                   | 11 ++++
 .../src/routes/register-agent-runtime-routes.ts    | 49 ++++++++++++++
 .../src/__tests__/goal-anchoring-audit.test.ts     | 40 +++++++----
 packages/engine/src/goal-anchoring-audit.ts        |  4 ++
 packages/engine/src/goal-injection-diagnostics.ts  |  1 +
 14 files changed, 308 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-5758

Fusion-Task-Lineage: b077c0b7-6ca4-489d-8c36-73d80a2afdb2
2026-05-30 22:53:24 -07:00
gsxdsm
eba6a72594 FN-5757: prevent chat message list from snapping to top
Keep chat scroll position stable when stale top snapshots are captured during mobile message updates.

- Capture scroll anchors from the first visible message instead of always sampling the first DOM node
- Ignore stale or likely-invalid zero-position snapshots before attempting scroll restoration
- Guard bottom anchoring from interrupting user scroll unless explicitly forced and add regression coverage for stale snapshot behavior

Files changed:
 packages/dashboard/app/components/ChatView.css     | 11 +++++-
 packages/dashboard/app/components/ChatView.tsx     | 33 +++++++++++++----
 packages/dashboard/app/components/__tests__/ChatView.scroll-to-top.test.tsx      | 41 ++++++++++++++++++++++
 3 files changed, 78 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-5757

Fusion-Task-Lineage: 4e4f6843-ba70-40da-8d16-358bdfcc7b09
2026-05-30 16:48:13 -07:00
gsxdsm
34833d4e6b FN-5731: add near-duplicate-flagged to dashboard activity maps
Fixes typecheck failure — the new task:near-duplicate-flagged
ActivityEventType was missing from the exhaustive Record maps in
ActivityFeed and ActivityLogModal.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 16:25:09 -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
cf88bab2cc FN-5753: remove global CSS fixture from PrCreateModal behavioral test
Speed up the PrCreateModal behavioral test by removing unnecessary global CSS setup.

- Drop beforeAll/afterAll style injection using loadAllAppCss in PrCreateModal.test.tsx
- Remove now-unused vitest lifecycle imports (beforeAll/afterAll)
- Keep test behavior intact while reducing setup overhead

Files changed:
 .../app/components/__tests__/PrCreateModal.test.tsx       | 15 +--------------
 1 file changed, 1 insertion(+), 14 deletions(-)

Fusion-Task-Id: FN-5753

Fusion-Task-Lineage: 9689c0d2-9ed9-4bf7-b702-6ff4b6677bef
2026-05-30 15:16:30 -07:00
gsxdsm
68465228d7 FN-5724: fake-timer connectivity recovery app test
Stabilize the connectivity recovery first-run App test by controlling timer-driven state transitions.

- switch the retry/recovery test to `vi.useFakeTimers()` with `try/finally` cleanup
- advance timers explicitly around initial render, retry click, and post-rerender recovery window
- preserve existing assertions while removing `waitFor` timing dependence in this flow

Files changed:
 packages/dashboard/app/components/__tests__/App.test.tsx | 41 ++++++++++++++--------
 1 file changed, 26 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-5724
Fusion-Task-Lineage: 0dfad0d8-ccf9-4f83-af2e-1057180fe191
2026-05-30 15:14:10 -07:00
gsxdsm
8e2c192855 FN-5745: optimize ChatView agent-mentions test timing
Reduce interaction overhead in the ChatView agent-mentions test while preserving coverage.

- Switch the test to a local  instance for faster click/type interactions.
- Reuse that configured user instance for both room-scope selection and mention trigger typing.
- Replace async DOM lookup with immediate assertion once the mention header is expected to be present.

Files changed:
 packages/dashboard/app/components/__tests__/ChatView.test.tsx | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-5745

Fusion-Task-Lineage: f65364d0-951e-4945-bc8b-42bf99e8a5e6
2026-05-30 14:57:14 -07:00
gsxdsm
ac72f17cdb FN-5739: reconcile mission assertion labels and zero-assertion guard
Clarify MissionManager assertion enforcement semantics and surface zero-assertion guard states consistently.

- rename milestone assertion panel copy to emphasize validator-enforced behavior when assertions are linked
- add zero-assertion guard badge + warning copy when feature criteria exists without linked contract assertions
- add per-row enforcement badges for assertion rows and informational feature-criteria rollups
- update MissionManager tests for new empty-state copy, guard visibility, and enforcement indicators
- add MissionManager assertion enforcement badge styling

Files changed:
 packages/dashboard/app/components/MissionManager.css  |  22 ++++
 packages/dashboard/app/components/MissionManager.tsx  | 123 +++++++++++++++------
 packages/dashboard/app/components/__tests__/MissionManager.test.tsx |  84 +++++++++++++-
 3 files changed, 190 insertions(+), 39 deletions(-)

Fusion-Task-Id: FN-5739

Fusion-Task-Lineage: 1b6067e9-9772-4154-9cd2-f0b155484b69
2026-05-30 14:37:21 -07:00
gsxdsm
ef1a19be1b FN-5734: render agent mention popup above input on tablet widths
Extend responsive popup positioning so mention suggestions stay above the composer on tablet and mobile layouts.

- expand the AgentMentionPopup responsive media query from 768px to 1024px
- update component CSS integration test expectations to assert the new tablet breakpoint
- add focused CSS regression tests that lock desktop-below default and tablet/mobile above-input placement

Files changed:
 .../app/__tests__/AgentMentionPopup.css.test.ts    | 49 ++++++++++++++++++++++
 .../dashboard/app/components/AgentMentionPopup.css |  2 +-
 .../__tests__/AgentMentionPopup.test.tsx           |  4 +-
 3 files changed, 52 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-5734

Fusion-Task-Lineage: 85e30c08-7bdc-4d77-aa31-401bb4c4bb24
2026-05-30 14:20:12 -07:00
gsxdsm
bb0f693d79 FN-5751: fix dashboard auto-merge toggle race
Prevent rapid auto-merge toggles from desynchronizing dashboard settings state.

- Track auto-merge state in a ref so each toggle reads and writes the latest value
- Apply optimistic updates from the ref and roll back correctly on failed setting updates
- Add regression coverage for rapid double-toggle behavior in useAppSettings
- Add a patch changeset for @runfusion/fusion describing the dashboard blank-state fix

Files changed:
 .changeset/fn-5751-auto-merge-toggle.md            |  5 ++++
 .../app/hooks/__tests__/useAppSettings.test.ts     | 27 ++++++++++++++++++++++
 packages/dashboard/app/hooks/useAppSettings.ts     | 20 +++++++++++-----
 3 files changed, 46 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-5751

Fusion-Task-Lineage: 1a0090ff-4015-46b8-a974-3accbbdce919
2026-05-30 14:18:15 -07:00
gsxdsm
9c4e8edf39 FN-5733: enforce mission completion-gate assertions for live Goals mission
Realize the mission completion-gate contract by surfacing and enforcing structured assertion coverage for milestone completion.

- add milestone rollup signaling for prose-only acceptance criteria and wire it into mission-store completion gating
- update mission execution loop reliability paths so validator-trigger continuity is preserved across completion and startup recovery
- expose the new rollup flag in dashboard mission types/API and show an autopilot warning badge in MissionManager when prose exists without structured assertions
- extend core, engine, and dashboard tests plus mission docs, and add a patch changeset for @runfusion/fusion

Files changed:
 .changeset/fn-5733-mission-completion-gate.md      | 10 +++
 docs/missions-completion-contract.md               | 11 +++
 docs/missions.md                                   |  4 +
 packages/core/src/__tests__/mission-store.test.ts  | 81 ++++++++++++++++++++
 packages/core/src/mission-store.ts                 | 89 ++++++++++++++++++++++
 packages/core/src/mission-types.ts                 |  2 +
 packages/dashboard/app/api/legacy.ts               |  1 +
 .../dashboard/app/components/MissionManager.css    | 42 +++++++++-
 .../dashboard/app/components/MissionManager.tsx    | 22 +++++-
 .../components/__tests__/MissionManager.test.tsx   | 20 ++++-
 packages/dashboard/app/components/mission-types.ts |  1 +
 .../src/__tests__/mission-execution-loop.test.ts   | 23 ++++++
 .../mission-validation-trigger-gap.test.ts         | 41 ++++++++++
 packages/engine/src/mission-execution-loop.ts      | 21 ++++-
 14 files changed, 357 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-5733

Fusion-Task-Lineage: 259418c6-5404-4773-8fd2-db8d7e9cadd3
2026-05-30 14:07:20 -07:00
gsxdsm
90a23e9fc1 FN-5727: speed up PrCreateModal test setup waits
Reduce repeated async waits in PrCreateModal tests by centralizing initial-load synchronization.

- add a renderModalLoaded helper that waits for the AI title field once per test setup
- replace repeated findByDisplayValue calls with the shared helper in slow-path tests
- switch one post-load lookup from async findBy* to sync getBy* where loading is already guaranteed

Files changed:
 .../components/__tests__/PrCreateModal.test.tsx    | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

Fusion-Task-Id: FN-5727

Fusion-Task-Lineage: bf064b14-d625-4396-91e7-02d9eb48b9eb
2026-05-30 13:54:21 -07:00
gsxdsm
158f74962d FN-5725: streamline ChatView room-creation and slash-autocomplete tests
Simplify ChatView test coverage for room creation and slash command autocomplete flows.

- reduce repetitive setup in ChatView room-creation test cases
- tighten slash-autocomplete assertions while preserving behavior coverage
- remove redundant test code paths to keep the suite faster and easier to maintain

Files changed:
packages/dashboard/app/components/__tests__/ChatView.test.tsx | 80 ++++++++--------------
1 file changed, 28 insertions(+), 52 deletions(-)

Fusion-Task-Id: FN-5725

Fusion-Task-Lineage: 74b398aa-84c2-4f7a-8e18-173992190a5d
2026-05-30 13:36:26 -07:00
gsxdsm
d05d335da8 FN-5726: speed up copilot auth flow test in settings modal
Reduce runtime overhead in the GitHub Copilot authentication test by replacing slower user-event timing with deterministic timer control.

- import `act` from Testing Library to flush async state transitions explicitly
- switch the Copilot login/copy/open interactions in the target test from `userEvent.click` to `fireEvent.click`
- wrap the flow in `vi.useFakeTimers()`/`vi.useRealTimers()` and advance timers directly instead of waiting with a 5s timeout
- keep existing assertions for clipboard writes, toast feedback, GitHub link opening, and login code expiry behavior

Files changed:
 .../components/__tests__/SettingsModal.test.tsx    | 47 ++++++++++++++--------
 1 file changed, 31 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-5726
Fusion-Task-Lineage: e9ccf2d0-d5a2-4568-abf5-7d9f7e67d643
2026-05-30 13:26:48 -07:00
gsxdsm
50cdcbf06d FN-5730: close linked GitHub issues on archived transitions
Ensure task archival updates linked GitHub issue state consistently across source columns.

- close linked issues as not_planned when tasks move to archived from non-done columns
- keep done -> archived using completed close reason
- reopen issues whenever tasks leave done, including done -> archived regression coverage updates

Files changed:
 .../src/__tests__/github-tracking-state.test.ts          | 16 +++++++++++++---
 packages/dashboard/src/github-tracking-state.ts          | 14 ++++++++++----
 2 files changed, 23 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-5730

Fusion-Task-Lineage: 0ce031be-be8c-49b8-a944-9b269fda4e00
2026-05-30 13:07:49 -07:00
gsxdsm
15bc51a47e FN-5720: fix room chat scroll anchoring on scope re-entry
Ensure Rooms scope reliably re-anchors to bottom on re-entry without breaking scroll preservation during refetch.

- reset stale thread anchor state when entering Rooms without an active room
- treat direct↔rooms transitions as entry events and anchor messages to bottom on entry
- keep existing scroll position when room messages are refetched in-place
- add regression tests covering room re-entry anchoring and refetch scroll preservation

Files changed:
 packages/dashboard/app/components/ChatView.tsx     | 14 +++-
 .../app/components/__tests__/ChatView.test.tsx     | 88 ++++++++++++++++++++++
 2 files changed, 99 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-5720

Fusion-Task-Lineage: dde8818b-f2e5-4c55-8a4c-2c54241c2e38
2026-05-30 10:31:29 -07:00
gsxdsm
16a82cf0ad FN-5722: suppress __SKIP__ sentinel room replies
Treat __SKIP__ room responder outputs as intentional silence so they never appear in persisted or rendered chat history.

- export ROOM_SKIP_SENTINEL and helper detection in chat orchestration
- skip persisting responder outputs that are trimmed-exact __SKIP__ sentinels
- avoid room reply failure errors when responders intentionally skip
- filter sentinel-only room messages in ChatView rendering
- add backend and UI tests covering sentinel suppression and substring pass-through
- document sentinel no-op behavior in dashboard chat room guide

Files changed:
 docs/dashboard-guide.md                            |  1 +
 packages/dashboard/app/components/ChatView.tsx     |  8 ++-
 packages/dashboard/app/components/__tests__/ChatView.rooms.test.tsx   | 16 +++++
 packages/dashboard/src/__tests__/chat.rooms.test.ts     | 80 +++++++++++++++++++++-
 packages/dashboard/src/chat.ts                     | 15 +++-
 5 files changed, 116 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-5722

Fusion-Task-Lineage: 242085fc-4b88-46c1-81aa-e398f5276fec
2026-05-30 10:21:49 -07:00
gsxdsm
da3f4aa967 FN-5717: add per-task auto-merge override in new task form
Add a New Task form option to override auto-merge behavior per task and wire it through task creation APIs.

- add TaskForm UI state/prop support for enabling or disabling per-task auto-merge override
- pass override values through NewTaskModal and legacy task creation API payloads
- persist and validate settings.autoMerge overrides in task workflow route handling
- add dashboard and route tests covering override defaults and explicit true/false behavior
- document per-task auto-merge override behavior in dashboard and settings docs

Files changed:
 docs/dashboard-guide.md                            |  1 +
 docs/settings-reference.md                         |  2 +-
 packages/dashboard/app/api/legacy.ts               |  2 +
 packages/dashboard/app/components/NewTaskModal.tsx | 11 ++++-
 packages/dashboard/app/components/TaskForm.tsx     | 27 ++++++++++++
 .../app/components/__tests__/NewTaskModal.test.tsx | 51 ++++++++++++++++++++++
 .../dashboard/src/__tests__/routes-tasks.test.ts   | 33 ++++++++++++++
 .../src/routes/register-task-workflow-routes.ts    |  6 +++
 8 files changed, 130 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-5717

Fusion-Task-Lineage: 3bdbb561-9c6d-4f64-ad4b-ae723e73223e
2026-05-30 10:11:23 -07:00
gsxdsm
98e6a7364e FN-5716: replace base-branch input with branch dropdown
Switch task base-branch selection to prefer existing branches while preserving custom entry when needed.

- fetch local git branches for TaskForm and sort common integration branches (main/master/trunk/develop) first
- render base branch as a dropdown with default and Custom… options, with fallback custom input mode and toggle back to dropdown
- update TaskForm/NewTaskModal tests for branch loading, dropdown ordering, unknown-branch fallback, and fetch failure behavior
- document the new branch dropdown + custom fallback behavior in dashboard guide branch planning rules

Files changed:
 docs/dashboard-guide.md                            |   4 +-
 packages/dashboard/app/components/TaskForm.tsx     | 100 +++++++++++++++++++--
 .../app/components/__tests__/NewTaskModal.test.tsx |   1 +
 .../app/components/__tests__/TaskForm.test.tsx     |  66 +++++++++++++-
 4 files changed, 156 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-5716

Fusion-Task-Lineage: 0ed72020-d8a0-4675-92d3-9476f53a173a
2026-05-30 09:40:44 -07:00