Commit Graph

7452 Commits

Author SHA1 Message Date
gsxdsm
1029a1b8b4 test(FN-6035): fix broad workflow suite expectations 2026-06-08 22:35:04 -07:00
gsxdsm
fc8086c480 fix(FN-6035): fail execute on missing prepared worktree 2026-06-08 22:05:45 -07:00
gsxdsm
8d3b869ec1 fix(FN-6035): model pre-merge workflow steps in builtin coding 2026-06-08 22:02:26 -07:00
gsxdsm
b6800e8622 fix(FN-6035): address workflow primitive review feedback 2026-06-08 21:16:32 -07:00
gsxdsm
8f42098cc3 feat(FN-6035): route execution through workflow primitives
Fusion-Task-Id: FN-6035
2026-06-08 19:13:14 -07:00
gsxdsm
8bc3d7b0a5 FN-6042: raise dependency security floors
Harden dependency floors and update the Vitest toolchain to patched releases.

- upgrade workspace vitest and @vitest/coverage-v8 dependencies to the 4.1 line across packages and plugins
- pin transitive protobufjs via pnpm overrides and lockfile updates to patched versions
- adapt Vitest configs, engine test helpers, and security-floor coverage for the new dependency baselines
- add the published CLI changeset and related workspace/package metadata updates included in the task branch

Files changed:
 .changeset/fn-6042-security-dependencies.md        |   5 +
 AGENTS.md                                          |   4 +
 Dockerfile                                         |   3 +
 docs/PLUGIN_AUTHORING.md                           |   2 -
 package.json                                       |   3 +-
 packages/cli/package.json                          |   4 +-
 packages/cli/vitest.config.ts                      |   2 +-
 packages/core/package.json                         |   4 +-
 packages/core/vitest.config.ts                     |   2 +-
 packages/dashboard/app/test/mockApi.ts             |   4 +-
 packages/dashboard/package.json                    |   4 +-
 packages/dashboard/vitest.config.ts                |   2 +-
 packages/desktop/package.json                      |   4 +-
 packages/desktop/vitest.config.ts                  |   2 +-
 packages/droid-cli/package.json                    |   2 +-
 packages/droid-cli/vitest.config.ts                |   2 +-
 packages/engine/package.json                       |   4 +-
 .../engine/src/__tests__/executor-test-helpers.ts  |  29 +-
 .../engine/src/__tests__/gridlock-detector.test.ts |   5 +-
 .../src/__tests__/heartbeat-scheduler.test.ts      |   3 +-
 packages/engine/src/__tests__/scheduler.test.ts    |  24 +-
 packages/engine/src/__tests__/self-healing.test.ts |   5 +
 packages/engine/tsconfig.json                      |   3 +-
 packages/engine/vitest.config.ts                   |  10 +-
 packages/i18n/package.json                         |   2 +-
 packages/i18n/vitest.config.ts                     |   7 +
 packages/mobile/package.json                       |   2 +-
 packages/mobile/vitest.config.ts                   |   2 +-
 packages/pi-claude-cli/package.json                |   2 +-
 packages/pi-claude-cli/vitest.config.ts            |   2 +-
 packages/pi-llama-cpp/package.json                 |   2 +-
 packages/pi-llama-cpp/vitest.config.ts             |   2 +-
 packages/plugin-sdk/package.json                   |   2 +-
 packages/plugin-sdk/vitest.config.ts               |   2 +-
 .../examples/fusion-plugin-auto-label/package.json |   2 +-
 .../fusion-plugin-auto-label/vitest.config.ts      |   2 +-
 .../examples/fusion-plugin-ci-status/package.json  |   2 +-
 .../fusion-plugin-ci-status/vitest.config.ts       |   2 +-
 .../fusion-plugin-notification/package.json        |   2 +-
 .../fusion-plugin-notification/vitest.config.ts    |   2 +-
 .../fusion-plugin-settings-demo/package.json       |   2 +-
 .../fusion-plugin-settings-demo/vitest.config.ts   |   2 +-
 plugins/fusion-plugin-acp-runtime/package.json     |   2 +-
 plugins/fusion-plugin-acp-runtime/vitest.config.ts |   2 +-
 plugins/fusion-plugin-agent-browser/package.json   |   2 +-
 .../fusion-plugin-agent-browser/vitest.config.ts   |   2 +-
 .../fusion-plugin-cli-printing-press/package.json  |   2 +-
 .../vitest.config.ts                               |   2 +-
 .../package.json                                   |   2 +-
 .../src/__tests__/orchestrator-live-output.test.ts |   4 +-
 .../vitest.config.ts                               |   2 +-
 plugins/fusion-plugin-cursor-runtime/package.json  |   4 +-
 .../fusion-plugin-dependency-graph/package.json    |   4 +-
 .../vitest.config.ts                               |   2 +-
 plugins/fusion-plugin-droid-runtime/package.json   |   2 +-
 .../fusion-plugin-droid-runtime/vitest.config.ts   |   2 +-
 plugins/fusion-plugin-even-cards/package.json      |   2 +-
 plugins/fusion-plugin-even-cards/vitest.config.ts  |   2 +-
 .../package.json                                   |   2 +-
 .../vitest.config.ts                               |   2 +-
 plugins/fusion-plugin-hermes-runtime/package.json  |   2 +-
 .../fusion-plugin-hermes-runtime/vitest.config.ts  |   2 +-
 .../fusion-plugin-openclaw-runtime/package.json    |   2 +-
 .../vitest.config.ts                               |   2 +-
 .../fusion-plugin-paperclip-runtime/package.json   |   2 +-
 .../vitest.config.ts                               |   2 +-
 plugins/fusion-plugin-reports/package.json         |   2 +-
 .../src/__tests__/review-panel.test.ts             |   6 +-
 plugins/fusion-plugin-reports/vitest.config.ts     |   2 +-
 plugins/fusion-plugin-roadmap/package.json         |   2 +-
 plugins/fusion-plugin-roadmap/vitest.config.ts     |   2 +-
 plugins/fusion-plugin-whatsapp-chat/package.json   |   2 +-
 .../fusion-plugin-whatsapp-chat/vitest.config.ts   |   2 +-
 pnpm-lock.yaml                                     | 626 ++++++++-------------
 .../__tests__/dependency-security-floor.test.mjs   |  95 ++++
 75 files changed, 475 insertions(+), 491 deletions(-)

Fusion-Task-Id: FN-6042

Fusion-Task-Lineage: fff6a1cb-8937-435c-9a91-b7c7a59cc80e
2026-06-08 15:19:27 -07:00
gsxdsm
558720b4e5 FN-6038: swap workflow toolbar edit and create buttons
Swap the workflow toolbar actions so editing appears before creation.

- move the workflow editor pencil button ahead of the new workflow plus button in the board toolbar
- add assertions covering the full toolbar order when both actions are present
- add coverage for cases where only one workflow toolbar action is available

Files changed:
 packages/dashboard/app/components/Board.tsx                     | 22 +++++++--------
 packages/dashboard/app/components/__tests__/Board.test.tsx     | 33 ++++++++++++++++++++++
 2 files changed, 44 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-6038

Fusion-Task-Lineage: 4fb28d7c-3261-4d45-9363-2b340e4aea35
2026-06-08 14:31:55 -07:00
gsxdsm
1d0921e069 FN-6032: fix mobile dashboard bottom-space padding
Keep mobile dashboard content aligned with the visible bottom-bar stack.

- include ICB bottom-offset compensation in mobile project content padding
- publish nav height from measured tab boxes with a safe fallback for unresolved safe-area padding
- add a mobile bottom-space regression test and include it in the dashboard UI shard

Files changed:
 .../__tests__/mobile-bottom-space-layout.test.ts   | 118 +++++++++++++++++++++
 packages/dashboard/app/components/MobileNavBar.css |   7 +-
 packages/dashboard/app/components/MobileNavBar.tsx |  31 +++++-
 packages/dashboard/vitest.config.ts                |   1 +
 4 files changed, 151 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-6032

Fusion-Task-Lineage: bcbf54e2-c089-40c5-b33c-35c39d981443
2026-06-08 14:22:03 -07:00
gsxdsm
f7daa6e347 FN-6012: quarantine flaky dashboard chat manager test
Quarantine the flaky dashboard chat manager test and keep it out of active API lanes.

- record packages/dashboard/src/__tests__/chat-manager.test.ts in the quarantine ledger with the current failure context and quarantine date
- exclude the quarantined chat-manager test from dashboard API backfill coverage so existing missions surface an explicit no-backfill decision
- exclude the quarantined chat-manager test from the broad dashboard API project so its status stays visible without destabilizing the suite

Files changed:
 packages/dashboard/vitest.config.ts | 3 ++-
 scripts/lib/test-quarantine.json    | 8 +++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-6012

Fusion-Task-Lineage: 34014c45-486e-443d-ae47-a1d301a396e1
2026-06-08 14:09:23 -07:00
gsxdsm
4ffd0a2dde FN-6030: fix workflow terminal notifications
Ensure merged workflow tasks still emit the expected terminal notifications.

- emit task:merged when PR-driven workflow merges move tasks to done
- send merged notifications for merge-backed done transitions and suppress duplicates
- add regression coverage, a published changeset, and reconcile overlapping docs/test updates

Files changed:
 .../fn-6030-workflow-terminal-notifications.md     |   5 +
 docs/storage.md                                    |   8 +-
 .../core/src/__tests__/builtin-workflows.test.ts   |   1 -
 .../__tests__/store-pr-merged-transition.test.ts   |  14 ++-
 .../src/__tests__/workflow-ir-resolver.test.ts     |   1 -
 packages/core/src/store.ts                         |  14 ++-
 .../settings/sections/ProjectModelsSection.tsx     |   3 +-
 .../engine/src/__tests__/merger-post-merge.test.ts |   9 +-
 .../src/__tests__/notification-service.test.ts     | 129 ++++++++++++++++++++-
 .../__tests__/workflow-graph-task-runner.test.ts   |  57 +++++++++
 .../src/notification/notification-service.ts       |  36 ++++--
 11 files changed, 257 insertions(+), 20 deletions(-)

Fusion-Task-Id: FN-6030

Fusion-Task-Lineage: a991f765-0986-4541-ab38-ff476cf88d16
2026-06-08 13:54:17 -07:00
gsxdsm
6c129dafce FN-6040: show loading indicators for task detail activity and agent logs
Add first-load loading states so task activity and agent log views do not flash empty states.

- show a loading status row in the task detail Activity tab while detail history is still loading
- keep agent logs in a loading state until the active task/project context has completed its initial fetch
- add accessible loading markup, regression tests, and dashboard guide documentation for the new behavior

Files changed:
 docs/dashboard-guide.md                            |   1 +
 .../dashboard/app/components/AgentLogViewer.css    |  18 +++
 .../dashboard/app/components/AgentLogViewer.tsx    |   2 +-
 .../dashboard/app/components/TaskDetailModal.css   |  17 +++
 .../dashboard/app/components/TaskDetailModal.tsx   |   7 +-
 .../components/__tests__/AgentLogViewer.test.tsx   |   3 +-
 .../components/__tests__/TaskDetailModal.test.tsx  | 144 +++++++++++++++++++++
 .../app/hooks/__tests__/useAgentLogs.test.ts       |  74 +++++++++++
 packages/dashboard/app/hooks/useAgentLogs.ts       |  14 +-
 9 files changed, 276 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-6040

Fusion-Task-Lineage: cd4b8f7f-63cd-4d75-be00-d362e915f4e8
2026-06-08 13:32:58 -07:00
gsxdsm
474b492b26 FN-6027: show and space default workflow model overrides
Expose default workflow model lane overrides directly in project settings.

- load and persist default workflow model lane overrides from the active project workflow
- add inline workflow lane status, reset, save, and advanced policy actions in project model settings
- add CSS contract and modal coverage for the workflow model action row spacing and placement

Files changed:
 .../dashboard/app/components/SettingsModal.css     |  20 ++
 .../components/__tests__/SettingsModal.test.tsx    |  20 +-
 .../SettingsModal.workflow-model-lane-css.test.ts  |  24 ++
 .../settings/sections/ProjectModelsSection.tsx     | 245 ++++++++++++++++++++-
 4 files changed, 298 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-6027

Fusion-Task-Lineage: 981a5f01-f4b7-467e-9e2f-4ac8e4ed40fb
2026-06-08 13:32:58 -07:00
gsxdsm
5c6c9af8dc FN-6039: expand triage task detail descriptions by default
Open triage task details with long title or description text expanded by default.

- initialize and reset the task detail description expansion state from the task column
- keep manual Show more and Show less toggles working for the current task
- add rendering coverage for triage defaults, fallbacks, task switches, and icon mocks

Files changed:
 packages/dashboard/app/components/TaskDetailModal.tsx              |   6 +-
 packages/dashboard/app/components/__tests__/TaskDetailModal.rendering.test.tsx | 154 +++++++++++++++++++++
 packages/dashboard/app/components/__tests__/TaskDetailModal.test-helpers.ts     |  11 ++
 3 files changed, 168 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6039

Fusion-Task-Lineage: b3bd4911-58ae-4592-9dad-e9164081a4d9
2026-06-08 13:32:58 -07:00
gsxdsm
9c84ba2e9f FN-6035: align builtin coding workflow registry with canonical IR
Keep builtin:coding anchored to the canonical coding workflow IR across registry, resolver, and docs.

- add regression coverage that builtin:coding reuses BUILTIN_CODING_WORKFLOW_IR and preserves canonical columns, traits, settings, and enabled ordering
- extend workflow IR resolver/settings tests to pin canonical builtin fallback behavior for explicit and missing built-in selections
- document builtin:coding as the canonical default/fallback workflow and add a patch changeset for @runfusion/fusion

Files changed:
 .../FN-6035-builtin-coding-workflow-parity.md      |  5 ++
 docs/workflow-steps.md                             |  4 +-
 .../core/src/__tests__/builtin-workflows.test.ts   | 65 +++++++++++++++++++++-
 .../src/__tests__/workflow-ir-resolver.test.ts     | 18 +++++-
 .../src/__tests__/workflow-ir-settings.test.ts     |  3 +
 5 files changed, 92 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6035

Fusion-Task-Lineage: ece0c8c6-810f-44b1-afb3-6545d3156459
2026-06-08 13:32:58 -07:00
gsxdsm
c8cb740b93 FN-6026: use model dropdowns for workflow lane settings
Use the shared model picker for workflow lane settings instead of raw provider/model text entry.

- replace built-in workflow model provider/model string fields with combined dropdown controls in the Values tab
- fetch available models and save or clear paired provider/model workflow values together, including fallback lanes
- add regression coverage for dropdown rendering, selection, clearing, empty registries, and paired-key validation errors
- update dashboard and settings documentation to describe the shared workflow model picker behavior

Files changed:
 docs/dashboard-guide.md                            |   4 +-
 docs/settings-reference.md                         |  22 +-
 packages/dashboard/app/components/WorkflowSettingsPanel.tsx       | 241 +++++++++++++++++++--
 packages/dashboard/app/components/__tests__/WorkflowSettingsPanel.test.tsx       | 133 +++++++++++-
 4 files changed, 369 insertions(+), 31 deletions(-)

Fusion-Task-Id: FN-6026

Fusion-Task-Lineage: 7f41120f-f764-4011-9aa5-a323e0aa64d6
2026-06-08 13:32:58 -07:00
gsxdsm
5976b63fda FN-6033: fix mobile workflow editor selection and touch targets
Keep the workflow editor mobile-first selection flow usable and improve tap targets on phones.

- start the mobile workflow editor on the workflow list with no preselected workflow and show a select-a-workflow prompt
- keep mobile list/editor stage transitions in sync after create, duplicate, import, and delete actions
- increase workflow editor mobile touch targets and padding without changing desktop sizing
- add regression coverage for mobile viewport selection behavior and CSS touch-target scoping
- update the dashboard guide to document the mobile workflow editor behavior

Files changed:
docs/dashboard-guide.md                            |  2 +-
packages/dashboard/app/components/WorkflowNodeEditor.css          | 56 +++++++++++++++++-
packages/dashboard/app/components/WorkflowNodeEditor.tsx          | 24 ++++++--
packages/dashboard/app/components/__tests__/WorkflowNodeEditor.css.test.ts       | 36 ++++++++++++
packages/dashboard/app/components/__tests__/WorkflowNodeEditor.test.tsx          | 68 ++++++++++++++++++++++

Fusion-Task-Id: FN-6033

Fusion-Task-Lineage: c9da29ef-c099-4e14-8671-24995106c78c
2026-06-08 13:32:58 -07:00
gsxdsm
7d8ae5333e FN-6028: add retries to builtin execute node
Ensure the built-in coding workflow keeps an explicit retry budget on execute.

- set `maxRetries: 2` on the built-in coding workflow execute prompt node
- add IR-level tests that assert only the execute seam carries the retry budget
- add built-in workflow registry tests that preserve the execute retry setting through parse/serialize round-trips

Files changed:
 .../__tests__/builtin-coding-workflow-ir.test.ts   | 31 ++++++++++++++++++++++
 .../core/src/__tests__/builtin-workflows.test.ts   | 27 +++++++++++++++++++
 packages/core/src/builtin-coding-workflow-ir.ts    |  7 ++++-
 3 files changed, 64 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6028

Fusion-Task-Lineage: cd9fb5ac-c593-438d-aeff-423b4a95fc31
2026-06-08 13:32:58 -07:00
gsxdsm
f77aa073c1 FN-6025: fix builtin coding auto-merge review flags
Restore the built-in coding workflow's in-review auto-merge metadata.

- switch builtin:coding to the authored v2 workflow IR so in-review retains merge-blocker and human-review traits
- add core regression coverage for builtin workflow resolution and column flag propagation
- extend dashboard board workflow route/payload tests to assert the in-review flags and payload contents

Files changed:
 .changeset/fn-6025-auto-merge-toggle-flags.md       |  5 +++++
 packages/core/src/__tests__/builtin-workflows.test.ts    | 19 +++++++++++++++++++
 packages/core/src/__tests__/workflow-ir-resolver.test.ts | 14 ++++++++++++++
 packages/core/src/builtin-workflows.ts              | 21 ++++++++++++++-------
 packages/dashboard/src/routes/__tests__/board-workflows-route.test.ts  | 12 ++++++++++--
 packages/dashboard/src/routes/__tests__/board-workflows.test.ts    |  4 ++++
 6 files changed, 66 insertions(+), 9 deletions(-)

Fusion-Task-Id: FN-6025

Fusion-Task-Lineage: 838ced1f-0fdf-413b-94a0-52ddb21d75c9
2026-06-08 13:32:58 -07:00
gsxdsm
a67ad70bf7 FN-6003: wrap dashboard chat and review tests in async act
Reduce persistent React act() warnings across dashboard chat and review tests.

- add shared async act()-wrapped render helpers in ChatView and TaskReviewTab test files
- convert affected test cases and render helpers to await initial renders before assertions and interactions
- keep existing test coverage while updating room, draft, CLI mount, scroll, and review scenarios for React's async rendering expectations

Files changed:
 .../__tests__/ChatView.cli-mount.test.tsx          |  26 +-
 .../components/__tests__/ChatView.draft.test.tsx   |  30 +-
 .../components/__tests__/ChatView.rooms.test.tsx   |  92 ++--
 .../__tests__/ChatView.scroll-to-top.test.tsx      |  34 +-
 .../app/components/__tests__/ChatView.test.tsx     | 603 +++++++++++----------
 .../components/__tests__/TaskReviewTab.test.tsx    |  79 +--
 6 files changed, 469 insertions(+), 395 deletions(-)

Fusion-Task-Id: FN-6003

Fusion-Task-Lineage: 29866d71-b59f-4441-89df-e21408018385
2026-06-08 13:32:58 -07:00
gsxdsm
8d2f43892c FN-6020: align chat stop button size with send button
Align the chat stop button sizing with the send control and lock it with CSS coverage.

- set \.chat-input-stop width and height to 36px to match \.chat-input-send
- add a ChatView autosize test that asserts send and stop button dimension parity

Files changed:
 packages/dashboard/app/components/ChatView.css               |  4 ++--
 .../__tests__/ChatView.chat-input-autosize.test.tsx          | 12 ++++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-6020

Fusion-Task-Lineage: d429f847-c32a-4fab-b214-215d8854ed5c
2026-06-08 13:32:58 -07:00
gsxdsm
40c0048f72 FN-6024: fix built-in workflow graph edges
Ensure built-in workflow editor graphs render connected, clickable edges above swimlane backgrounds.

- add explicit React Flow z-index layering so built-in workflow edges render above column bands while nodes stay interactive
- keep swimlane band backgrounds translucent and preserve failure/rework edge styling for read-only built-in workflows
- expand workflow editor tests to cover built-in/custom edge projection, handle rendering, and CSS edge visibility contracts
- document the built-in workflow editor edge behavior and add a patch changeset for @runfusion/fusion

Files changed:
 .changeset/FN-6024-built-in-workflow-edges.md      |   5 +
 docs/dashboard-guide.md                            |   1 +
 packages/dashboard/app/components/WorkflowNodeEditor.css          |   2 +-
 packages/dashboard/app/components/__tests__/WorkflowNodeEditor.css.test.ts       |  25 ++++ -
 packages/dashboard/app/components/__tests__/WorkflowNodeEditor.test.tsx          | 106 ++++++++++++++++++++-
 packages/dashboard/app/components/workflow-flow-mapping.ts        |  15 ++-
 6 files changed, 145 insertions(+), 9 deletions(-)

Fusion-Task-Id: FN-6024

Fusion-Task-Lineage: 7151d59b-b591-4642-95ca-93cc35198d41
2026-06-08 13:32:58 -07:00
gsxdsm
e57db86a5c FN-6029: restore board drop-check regression coverage
Restore Board drag-drop pre-check coverage by extracting the decision logic into a reusable helper.

- extract Board canDropTask rejection logic into a shared helper used by the component
- replace Lane-mocking coverage with direct helper tests for workflow, column, and capacity branches
- add regression cases for missing workflows, default-workflow fallback, same-column WIP drops, and cross-workflow occupancy handling

Files changed:
 packages/dashboard/app/components/Board.tsx        |  37 +--
 .../__tests__/Board.canDropTask.test.tsx           | 261 ++++++++++++---------
 .../dashboard/app/components/boardCanDropTask.ts   |  56 +++++
 3 files changed, 218 insertions(+), 136 deletions(-)

Fusion-Task-Id: FN-6029

Fusion-Task-Lineage: cd71bbc5-0f97-49c3-9eef-0dd8221341c0
2026-06-08 13:32:58 -07:00
gsxdsm
40fb1f1d5a FN-6002: fix raw rgba CSS token violations
Replace raw RGBA styling in scoped dashboard CSS with theme-token-backed values.

- update PullRequestView.css state, banner, error, and disagreement styles to use CSS variables with existing rgba fallbacks
- replace SessionTerminal tooltip box-shadow with the shared shadow token
- exclude out-of-scope Board.canDropTask.test.tsx changes from the squash merge

Files changed:
 packages/dashboard/app/components/PullRequestView.css | 14 +++++++-------
 packages/dashboard/app/components/SessionTerminal.css |  2 +-
 2 files changed, 8 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-6002

Fusion-Task-Lineage: 1f0431e1-32e8-4c24-9f02-3d641e8b074f
2026-06-08 13:32:58 -07:00
gsxdsm
e623340e71 FN-5994: restore project summarization model settings
Keep summarization and PR metadata model selection on project settings while leaving workflow lanes on the workflow.

- restore the project summarization model lane in Project Models and replace per-phase workflow lanes with a workflow-settings redirect stub
- remove moved workflow model keys from project settings defaults/save paths and update settings docs/tests for the restored project lane behavior
- make PR metadata generation resolve its model from the title summarizer settings lane instead of task planning settings

Files changed:
 docs/settings-reference.md                         |   4 +-
 .../core/src/__tests__/settings-migration.test.ts  |  18 +-
 .../core/src/__tests__/settings-parity.test.ts     |  17 +-
 packages/core/src/__tests__/store-settings.test.ts |  54 ++--
 .../core/src/__tests__/task-creation-hook.test.ts  |  10 +-
 packages/core/src/builtin-workflow-settings.ts     |  24 --
 packages/core/src/settings-schema.ts               |  13 +-
 .../components/__tests__/SettingsModal.test.tsx    |  11 +-
 .../app/components/settings/save-split.ts          |  11 +-
 .../settings/sections/ProjectModelsSection.tsx     | 330 +++------------------
 .../src/__tests__/pr-metadata-generator.test.ts    |  25 +-
 packages/dashboard/src/pr-metadata-generator.ts    |   4 +-
 12 files changed, 140 insertions(+), 381 deletions(-)

Fusion-Task-Id: FN-5994

Fusion-Task-Lineage: f7f6f1ff-5d06-4d16-b46d-644eb219e7c1
2026-06-08 13:32:58 -07:00
gsxdsm
53ab22449f FN-6017: fix chat generation-slot race and restore dashboard test
Fix the chat-manager race so the rescued dashboard test can run reliably again.

- wait for the first hanging prompt to be created before asserting generation-slot state in the chat-manager isolation test
- remove the dashboard chat-manager test from Vitest excludes so it runs in both backfill and default dashboard API projects
- clear the chat-manager entry from the flaky-test quarantine ledger after rescuing the test

Files changed:
 packages/dashboard/src/__tests__/chat-manager.test.ts | 16 +++++++++++-----
 packages/dashboard/vitest.config.ts                   |  3 +--
 scripts/lib/test-quarantine.json                      |  8 +-------
 3 files changed, 13 insertions(+), 14 deletions(-)

Fusion-Task-Id: FN-6017

Fusion-Task-Lineage: 5e3bd9ad-3502-4956-bab2-fa7b36f8bcab
2026-06-08 13:32:58 -07:00
gsxdsm
ce4d0a899f FN-6008: document FTS migration defer evidence and align workflow IDs
Refresh the FTS migration guidance with fresh evidence and reconcile workflow interpreter naming.

- document post-FN-5943 production evidence showing the single-file tasks_fts index remains bounded and rebuild-free
- keep the storage guidance explicitly deferred until recurring corruption or sustained bloat is observed
- relax the foreach parser test to accept the current nested loop/foreach error wording
- align the authoritative workflow driver ID with the task branch change during conflict resolution

Files changed:
 docs/storage.md                                         | 7 ++++++-
 packages/core/src/__tests__/workflow-ir-foreach.test.ts | 2 +-
 packages/engine/src/workflow-authoritative-driver.ts    | 2 +-
 3 files changed, 8 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6008

Fusion-Task-Lineage: d8c7c05c-f003-453d-bbd1-d9f0dda62f7c
2026-06-08 13:32:58 -07:00
gsxdsm
a1411b1e0b FN-6023: enrich workflow tab with overview, graph, and model settings
Add richer workflow context and controls to the task detail workflow tab.

- show workflow overview cards for selected workflow, execution phase, aggregate result, and step progress
- add a collapsible workflow graph preview plus edit-workflow affordance wired through the task detail modal
- expose effective model settings and thinking level, update docs, and cover the new UI in WorkflowResultsTab tests

Files changed:
 docs/dashboard-guide.md                            |   2 +-
 packages/dashboard/app/components/AppModals.tsx    |   1 +
 .../dashboard/app/components/TaskDetailModal.tsx   |   5 +
 .../app/components/WorkflowResultsTab.css          | 113 +++++++++
 .../app/components/WorkflowResultsTab.tsx          | 281 ++++++++++++++++++++-
 .../__tests__/WorkflowResultsTab.test.tsx          | 209 ++++++++++++++-
 6 files changed, 592 insertions(+), 19 deletions(-)

Fusion-Task-Id: FN-6023

Fusion-Task-Lineage: 7d4b46d2-a3ad-4eb2-96ed-b6454943036c
2026-06-08 10:33:17 -07:00
gsxdsm
60eb2ec995 FN-6018: allow stopping and deleting failed agents
Let failed agents be stopped and deleted consistently across the dashboard and agent lifecycle.

- allow agents in the error state to transition to paused and cover the new lifecycle path in core tests
- expose delete controls for failed agents in the agents list and mobile detail view with dashboard regression coverage
- update CLI stop-tool guidance and add a patch changeset for the published package

Files changed:
 .changeset/fn-6018-agent-error-stop-delete.md      |  7 ++++
 packages/cli/src/__tests__/extension.test.ts       | 16 ++++++++
 packages/cli/src/extension.ts                      |  4 +-
 packages/core/src/__tests__/agent-store.test.ts    | 16 ++++++++
 packages/core/src/types.ts                         |  2 +-
 .../dashboard/app/components/AgentDetailView.tsx   |  4 ++
 packages/dashboard/app/components/AgentsView.tsx   |  2 +-
 .../__tests__/AgentDetailView.core.test.tsx        | 24 +++++++++++-
 .../app/components/__tests__/AgentsView.test.tsx   | 44 +++++++++++++++++++++-
 9 files changed, 112 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-6018

Fusion-Task-Lineage: 40159b9b-4d14-4f1e-9bd9-d018e54db7ee
2026-06-08 10:33:17 -07:00
gsxdsm
84330f7dc9 FN-6016: quarantine flaky chat-manager generation-slot test
Quarantine the flaky dashboard chat-manager generation-slot test until the underlying race is fixed.

- exclude packages/dashboard/src/__tests__/chat-manager.test.ts from dashboard API Vitest projects
- record the quarantine entry with failure context, rescue requirements, and the 2026-06-08 quarantine date

Files changed:
 packages/dashboard/vitest.config.ts | 2 ++
 scripts/lib/test-quarantine.json    | 8 +++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6016

Fusion-Task-Lineage: 2cd97f8e-db06-4e49-b437-66fee64fb3a9
2026-06-08 10:33:16 -07:00
gsxdsm
3b3c5ed0bf FN-5997: fix mobile chat empty state spacing
Remove the extra mobile right margin from chat empty states while preserving other chat pane states.

- add mobile message-pane padding and remove card chrome from empty-state containers inside mobile chat messages
- expand the mobile chat rendering regression test to cover direct threads, room threads, loading, populated, streaming, and new-chat empty states
- rename the regression suite to FN-5997 and assert the empty state spans the full mobile message pane

Files changed:
 packages/dashboard/app/components/ChatView.css     |  9 +++++
 .../__tests__/ChatView.mobile-render.test.tsx      | 46 +++++++++++++++-------
 2 files changed, 40 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-5997

Fusion-Task-Lineage: ea424660-e8c6-4691-9234-463866aacb2e
2026-06-08 10:33:16 -07:00
gsxdsm
2fd214b4f2 FN-5975: extend archive FTS maintenance coverage
Add archive-database FTS maintenance and document the expanded compaction policy.

- add archive FTS maintenance helpers for optimize, rebuild, size measurement, and row counts
- extend self-healing maintenance to compact and rebuild archived_tasks_fts on a slower archive-specific cadence
- cover archive FTS maintenance with new core and engine tests and update architecture/storage docs

Files changed:
 docs/architecture.md                               |   2 +-
 docs/storage.md                                    |  12 +-
 .../__tests__/archive-db-fts-maintenance.test.ts   | 221 +++++++++++++++++++++
 packages/core/src/archive-db.ts                    |  61 +++++-
 packages/core/src/db.ts                            |  21 +-
 packages/core/src/store.ts                         |  20 ++
 .../src/__tests__/fts-maintenance-archive.test.ts  | 207 +++++++++++++++++++
 packages/engine/src/self-healing.ts                |  80 ++++++++
 8 files changed, 608 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-5975

Fusion-Task-Lineage: 13645c8c-3126-4d1b-af23-7cab1a8bb276
2026-06-08 10:33:16 -07:00
gsxdsm
c0b6f212c9 fix(FN-5994): address verification review feedback
Harden command normalization edge cases and abort loop compaction on timeout before falling through to stuck-task requeue.

Fusion-Task-Id: FN-5994
2026-06-08 10:23:01 -07:00
gsxdsm
0c8674c37c fix(FN-5994): prevent verification hangs
Normalize package file-filter verification to direct Vitest execution, kill timed-out process groups, and bound loop-recovery compaction so stuck tasks cannot spin indefinitely.

Fusion-Task-Id: FN-5994
2026-06-08 09:44:00 -07:00
gsxdsm
6d3d12897b fix(FN-0000): show auto-merge in selected workflow board 2026-06-08 08:22:16 -07:00
gsxdsm
035946272d Merge pull request #1509 from Runfusion/feature/workflow-loop-nodes
Show auto-merge toggle on workflow review columns
2026-06-08 08:15:41 -07:00
gsxdsm
c0fb923527 fix(FN-0000): address auto-merge review feedback 2026-06-08 07:57:11 -07:00
gsxdsm
bd5315fd4d feat: allow disabling built-in workflows 2026-06-08 07:53:42 -07:00
gsxdsm
d8a015e22c fix(FN-0000): show auto-merge on workflow review columns 2026-06-08 00:49:44 -07:00
gsxdsm
c9b780217b Merge pull request #1508 from Runfusion/feature/workflow-loop-nodes
Add bounded workflow loop nodes
2026-06-08 00:33:25 -07:00
gsxdsm
75867c4002 fix(FN-0000): address workflow loop review feedback 2026-06-08 00:19:50 -07:00
gsxdsm
c30492fdb0 test: align PR checks shape with Node build gate 2026-06-07 23:57:02 -07:00
gsxdsm
a504238d26 feat(FN-0000): add workflow loop nodes 2026-06-07 23:56:25 -07:00
gsxdsm
bd16ae836d Update packages/dashboard/app/components/ListView.tsx
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-06-07 23:39:51 -07:00
gsxdsm
d23296c8ee test: clean ListView act warnings 2026-06-07 23:32:57 -07:00
gsxdsm
56b194383d fix: address workflow PR feedback 2026-06-07 23:30:16 -07:00
gsxdsm
e138971030 fix: stabilize workflow board and loop recovery 2026-06-07 23:30:16 -07:00
gsxdsm
e1a244adf6 fix: remove unused Column import in dashboard legacy.ts 2026-06-07 23:30:16 -07:00
gsxdsm
708c3c2301 Merge pull request #1506 from Runfusion/feature/https-github.com-Runfusion-Fusion-issues-1472
fix(desktop): include ms in packaged runtime
2026-06-07 23:25:16 -07:00
gsxdsm
340b2efa39 Merge pull request #1467 from buihongduc132/upstream-pr/project-selector-enhancements
feat(dashboard): scrollable, autocomplete, bookmarkable project selector
2026-06-07 23:18:30 -07:00
gsxdsm
b3fe830132 fix(FN-5988): include ms in desktop package runtime
Ensure packaged desktop apps include the transitive debug dependency needed by extract-zip during startup.

Fusion-Task-Id: FN-5988
2026-06-07 23:12:04 -07:00