Commit Graph

4738 Commits

Author SHA1 Message Date
gsxdsm
2a2b7d0b61 FN-6081: expand quick task entry by default
Make quick task entry open with its controls visible by default.

- default the quick entry textarea and disclosure controls to the expanded state
- update quick entry component tests to assert the new default-expanded behavior and collapse toggle flow
- tighten App settings-button selection to avoid collisions with quick-entry control labels

Files changed:
 .../__tests__/quick-entry-expanded-height.test.tsx |  24 +--
 .../dashboard/app/components/QuickEntryBox.tsx     |   6 +-
 .../app/components/__tests__/App.test.tsx          |   8 +-
 .../components/__tests__/QuickEntryBox.test.tsx    | 174 ++++++++++-----------
 4 files changed, 103 insertions(+), 109 deletions(-)

Fusion-Task-Id: FN-6081

Fusion-Task-Lineage: 37cce52f-170c-4f2a-b340-33bbe225f610
2026-06-09 08:46:25 -07:00
gsxdsm
a2f4bb14c0 FN-6080: remove workflow selector collapse controls
Always render the workflow selector expanded across the dashboard.

- remove collapsible workflow selector props, state, icons, and toggle styles
- stop InlineCreateCard from passing collapse persistence options
- delete project storage support and tests for collapsed workflow selector state
- add a patch changeset for the published CLI package

Files changed:
 .changeset/fn-6080-removal.md                      |  5 ++
 .../dashboard/app/components/InlineCreateCard.tsx  |  3 -
 .../dashboard/app/components/WorkflowSelector.css  | 14 +----
 .../dashboard/app/components/WorkflowSelector.tsx  | 65 +--------------------
 .../components/__tests__/InlineCreateCard.test.tsx | 50 ----------------
 .../components/__tests__/WorkflowSelector.test.tsx | 68 ----------------------
 .../app/utils/__tests__/projectStorage.test.ts     |  3 +-
 packages/dashboard/app/utils/projectStorage.ts     |  1 -
 8 files changed, 8 insertions(+), 201 deletions(-)

Fusion-Task-Id: FN-6080

Fusion-Task-Lineage: cca26111-9e20-47d0-8473-d18a3b488ae1
2026-06-09 08:14:16 -07:00
gsxdsm
d2b98f14b2 FN-6079: fix mobile workflow editor edge rendering
Ensure the mobile workflow editor keeps the React Flow surface tall enough for edges to render correctly.

- add a full-height mobile rule for the workflow editor React Flow surface
- extend the mobile CSS contract test to assert the height requirement
- broaden the selector width test to cover the collapsed workflow selector button

Files changed:
 packages/dashboard/app/components/WorkflowNodeEditor.css            | 1 +
 .../app/components/__tests__/WorkflowNodeEditor.css.test.ts         | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6079

Fusion-Task-Lineage: a6f1de35-ce99-4673-bfaf-183124969a7c
2026-06-09 08:11:23 -07:00
gsxdsm
c285c30c19 FN-6076: align dashboard tests with updated labels and mocks
Update dashboard tests to match current project copy and test doubles.

- rename project selector expectations from 'Select Project'/'View All Projects' to 'Projects'/'Manage Projects'
- update mailbox split-handle CSS assertion for the new color-mix background
- simplify SessionTerminal xterm addon mocks and type the mocked AbortController signal in useDocuments tests

Files changed:
 .../app/components/__tests__/Header.test.tsx        |  8 ++++----
 .../app/components/__tests__/MailboxView.test.tsx   |  2 +-
 .../components/__tests__/MultiProjectFlow.test.tsx  |  2 +-
 .../__tests__/SessionTerminal.mobile.test.tsx       | 21 ++++-----------------
 .../app/hooks/__tests__/useDocuments.test.ts        |  4 ++--
 5 files changed, 12 insertions(+), 25 deletions(-)

Fusion-Task-Id: FN-6076

Fusion-Task-Lineage: 9bd7bd36-75c0-4d88-93b4-53bfb75283fa
2026-06-09 07:24:39 -07:00
gsxdsm
9417c81498 FN-6078: fix dashboard tests to use constructable mocks
Update dashboard tests to mirror constructor-based browser APIs and xterm addons.

- rewrite SessionTerminal mobile test doubles as constructable function mocks so xterm and addon instances initialize like real classes
- replace the useDocuments AbortController stub with a class-based mock to preserve constructor semantics during fetch cancellation tests

Files changed:
 .../__tests__/SessionTerminal.mobile.test.tsx       | 21 +++++++++++++++++----
 .../app/hooks/__tests__/useDocuments.test.ts        |  8 ++++----
 2 files changed, 21 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-6078

Fusion-Task-Lineage: d8e0a9aa-6c7c-44c1-b9d4-5196924531c1
2026-06-09 07:09:17 -07:00
gsxdsm
b846027cb9 FN-6077: add plugin registry category filter
Add category filtering controls to registry browsing.

- add a registry category select and thread its value through registry loading, retry, install refresh, and live updates
- style the registry controls for desktop and stacked mobile layouts alongside the existing search input
- add registry browse tests covering category filtering, query combinations, debounce timing, and control rendering

Files changed:
 packages/dashboard/app/components/PluginManager.css          |  23 +++++
 packages/dashboard/app/components/PluginManager.tsx          |  58 +++++++-----
 packages/dashboard/app/components/__tests__/PluginManager.registry.test.tsx | 103 ++++++++++++++++++++-
 3 files changed, 161 insertions(+), 23 deletions(-)

Fusion-Task-Id: FN-6077

Fusion-Task-Lineage: a57da263-550e-4607-a9a8-13123ef10867
2026-06-09 07:00:05 -07:00
gsxdsm
4f8bb31774 FN-6074: add plugin registry QA coverage
Expand post-merge QA coverage for plugin registry browsing and install flows.

- add PluginManager registry UI tests for metadata, action states, install failures, loading/error states, search debounce, and responsive rendering
- add API route tests for invalid manifest payloads, sanitized query/category handling, and project-scoped store failure paths
- include the new registry-focused UI and API suites in the dashboard quality vitest config

Files changed:
 .../components/__tests__/PluginManager.registry.test.tsx | 64 ++++++++++++++++++++
 .../src/__tests__/routes-plugin-registry.test.ts        | 68 ++++++++++++++++++++++
 packages/dashboard/vitest.config.ts                     |  3 +-
 3 files changed, 134 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6074

Fusion-Task-Lineage: 5cc00fb9-2ef4-4097-af7f-d8f49c536774
2026-06-09 06:43:13 -07:00
gsxdsm
b1c4f7a4d3 FN-6075: stabilize board workflow toolbar tests
Keep board workflow tests aligned with the collapsible toolbar UI.\n\n- exclude the workflow collapse toggle from toolbar action aria-label assertions in Board tests\n- extend task detail modal lucide-react mocks with the Bell icon used by the updated UI\n\nFiles changed:\n packages/dashboard/app/components/__tests__/Board.test.tsx            | 4 +++-\n .../app/components/__tests__/TaskDetailModal.test-helpers.ts          | 1 +\n 2 files changed, 4 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6075

Fusion-Task-Lineage: 65d7317b-2623-409f-af71-a4512b7919e1
2026-06-09 06:38:24 -07:00
gsxdsm
d66630a43f FN-6073: preserve pending workflow value edits during save
Preserve unsaved workflow value edits made while a save request is in flight.

- track the keys included in the current save request before sending it
- clear only the saved keys after a successful save so newer edits remain pending
- add regression coverage for mid-flight edits that trigger a follow-up save

Files changed:
 packages/dashboard/app/components/WorkflowSettingsPanel.tsx            |  7 +++-
 packages/dashboard/app/components/__tests__/WorkflowSettingsPanel.test.tsx | 41 +++++++++++++++++++++-
 2 files changed, 46 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-6073

Fusion-Task-Lineage: 31e05269-d51d-40c0-9691-87e61d464992
2026-06-09 06:25:16 -07:00
gsxdsm
f8200adb71 FN-6071: add plugin registry browsing and install actions
Add a curated plugin registry surface to the dashboard plugin manager.

- expose GET /api/plugins/registry with search, category filtering, and installed-state annotations from the dashboard registry manifest
- add registry fetch/install support to the dashboard plugin manager UI, including search, install/manage actions, and related tests
- document plugin registry entries and registry installability in plugin authoring docs and shared concepts

Files changed:
 CONCEPTS.md                                        |   6 +
 docs/PLUGIN_AUTHORING.md                           |  23 ++
 packages/dashboard/app/api/legacy.ts               |  36 +++
 .../dashboard/app/components/PluginManager.css     | 185 ++++++++++++++-
 .../dashboard/app/components/PluginManager.tsx     | 162 ++++++++++++-
 .../PluginManager.install-browse.test.tsx          |   5 +-
 .../__tests__/PluginManager.registry.test.tsx      | 260 +++++++++++++++++++++
 .../components/__tests__/PluginManager.test.tsx    |   3 +-
 .../__tests__/PluginManager.toggle.test.tsx        |   5 +-
 .../src/__tests__/routes-plugin-registry.test.ts   | 156 +++++++++++++
 packages/dashboard/src/plugin-routes.ts            | 115 +++++++++
 packages/dashboard/src/registry-manifest.json      | 143 ++++++++++++
 12 files changed, 1091 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-6071

Fusion-Task-Lineage: 72c7bdfd-5832-4323-b675-63d0680167d8
2026-06-09 04:27:53 -07:00
gsxdsm
f51e29bb29 FN-6067: reset SettingsModal test mocks before each run
Ensure the SettingsModal quality-settings tests start from a fully reset mock state.

- replace `vi.clearAllMocks()` with `vi.resetAllMocks()` in the SettingsModal test `beforeEach`
- preserve existing timer, storage, and plugin UI cache cleanup around each test

Files changed:
 packages/dashboard/app/components/__tests__/SettingsModal.test.tsx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Fusion-Task-Id: FN-6067

Fusion-Task-Lineage: 90250b2f-2572-4cfe-92e2-e9827a2a605c
2026-06-09 04:05:11 -07:00
gsxdsm
acd9c669fa FN-6060: add archive column to workflow mode board
Show archived workflow cards in a dedicated board column.

- render the selected workflow's archived column instead of filtering archived tasks out of workflow mode
- keep the workflow archived column collapsible and preserve archive-all behavior on the done column
- extend Board workflow tests to cover archived-column rendering, collapse behavior, and workflows without an archived column

Files changed:
 packages/dashboard/app/components/Board.tsx        | 52 +++++++++++++++++++++-
 .../app/components/__tests__/Board.test.tsx        | 48 +++++++++++++++++---
 2 files changed, 92 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-6060

Fusion-Task-Lineage: 9788bac5-9ccc-427c-a0dd-3cc7f818487a
2026-06-09 04:02:27 -07:00
gsxdsm
ece4a37745 FN-6059: add task title summarization action
Add an inline task-detail action to summarize descriptions into titles.

- add a read-mode "Summarize as title" control in Task Detail for editable tasks with descriptions
- call the title summarizer, persist the generated title, and show loading/success/error feedback
- cover button visibility, pending, success, error, and mobile behavior in Task Detail tests
- document the new Task Detail modal action in the dashboard guide

Files changed:
 docs/dashboard-guide.md                            |   1 +
 .../dashboard/app/components/TaskDetailModal.css   |  47 +++++++
 .../dashboard/app/components/TaskDetailModal.tsx   |  56 +++++++-
 .../__tests__/TaskDetailModal.test-helpers.ts      |   5 +-
 .../components/__tests__/TaskDetailModal.test.tsx  | 145 +++++++++++++++++++++
 5 files changed, 247 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-6059

Fusion-Task-Lineage: ed5a2f1b-a490-45f7-a747-d28c345f143b
2026-06-09 03:57:40 -07:00
gsxdsm
7c2d3f5f7a FN-6036: restore SettingsModal workflow-lane test cleanup
Restore the SettingsModal project models workflow-lane test setup so runs start from a clean browser state.

- import and call testing-library cleanup after each test
- reset timers, plugin UI slot cache, and browser storage in test hooks
- unstub globals during teardown to prevent cross-test leakage

Files changed:
 .../dashboard/app/components/__tests__/SettingsModal.test.tsx | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6036

Fusion-Task-Lineage: 69976a8b-272f-43a4-b61e-538993f930c8
2026-06-09 03:46:44 -07:00
gsxdsm
43007be53f FN-6034: fix mobile workflow canvas width and project controls
Keep workflow editing usable on mobile while preserving related dashboard controls.

- allow the standalone project selector to expose a Manage Projects action in single-project layouts
- improve the mailbox resize handle contrast for better visibility
- make the workflow editor canvas and React Flow surface shrink and fill correctly without mobile horizontal overflow
- add CSS contract coverage for desktop and mobile workflow editor width behavior

Files changed:
 packages/dashboard/app/components/Header.tsx       |  4 +++-
 packages/dashboard/app/components/MailboxModal.css |  2 +-
 .../dashboard/app/components/ProjectSelector.tsx   | 15 +++--
 .../app/components/WorkflowNodeEditor.css          | 28 +++++++++
 .../__tests__/WorkflowNodeEditor.css.test.ts       | 66 ++++++++++++++++++++++
 5 files changed, 109 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-6034

Fusion-Task-Lineage: e7a784ff-188a-4538-a2be-f75484f10aa4
2026-06-09 03:39:14 -07:00
gsxdsm
3252236528 FN-6061: stabilize WorkflowNodeEditor rename race test
Wait for the workflow editor to finish hydrating before exercising the inline rename flow.

- wait for the Save action and rendered column inputs before clicking the workflow name strip
- switch the workflow name click to a synchronous lookup once the editor is stable
- preserve the dirty-rename cancel assertion while removing the hydration race from the test

Files changed:
 packages/dashboard/app/components/__tests__/WorkflowNodeEditor.test.tsx | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6061

Fusion-Task-Lineage: 3c7d781c-c1de-4c8f-9c15-670d5bf8193f
2026-06-09 03:17:20 -07:00
gsxdsm
89322412cc FN-6049: stabilize TaskDetailModal GitHub tracking tests
Harden TaskDetailModal integration and GitHub tracking coverage against async UI timing.

- wait for source issue and GitHub tracking detail toggles to finish expanding before asserting contents
- convert GitHub tracking helper call sites to async usage so linked issue, toggle, create, save, and unlink checks observe settled UI state
- add the inline editing and integrations suite to the dashboard quality test project coverage

Files changed:
 ...lModal.inline-editing-and-integrations.test.tsx | 34 ++++++++++++----------
 packages/dashboard/vitest.config.ts                |  1 +
 2 files changed, 20 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-6049

Fusion-Task-Lineage: cad3324d-6208-4d5c-8dc8-4369265bc843
2026-06-09 03:12:56 -07:00
gsxdsm
02df5d1c62 FN-6069: restore chat manager test to dashboard quality gate
Restore the chat manager API suite to the dashboard curated quality gate.

- move `chat-manager.test.ts` back into the curated dashboard API quality project
- remove the temporary chat-manager quarantine and broad vitest excludes that kept it out of coverage
- stabilize chat-manager timing/subscriber tests with fake timers and explicit unsubscribe cleanup
- align the agent import route mock so the rescued suite uses the expected CLI settings stub

Files changed:
 $(git diff --cached --stat)

Fusion-Task-Id: FN-6069

Fusion-Task-Lineage: e70e7817-9fe6-4e80-8b53-8f99c6214941
2026-06-09 02:30:30 -07:00
gsxdsm
615d744c8a FN-6066: fix dashboard curated inventory guard
Keep the dashboard curated inventory guard aligned with the current dashboard test surface.

- add the newly required @fusion/core exports to the agent import route test mock
- teach the test inventory script to request file-only vitest listings for dashboard curated checks
- extend the dashboard curated skiplist with the pre-existing chat manager exclusion

Files changed:
 packages/dashboard/src/__tests__/routes-agent-import.test.ts | 3 +++
 scripts/check-test-inventory.mjs                             | 5 +++--
 scripts/lib/dashboard-curated-skiplist.json                  | 4 ++++
 3 files changed, 10 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-6066

Fusion-Task-Lineage: 51e3c42c-d642-4873-8201-636a420d0991
2026-06-09 02:23:35 -07:00
gsxdsm
14cea4a24e FN-6064: align dashboard backfill tests with current project selector
Update dashboard tests to match the current multi-project selector and split-pane behavior.

- adjust Header project selector tests for multi-project dropdown behavior and current labels
- update MailboxView CSS expectation for the transparent split resize handle
- extend multi-project flow coverage to exercise View All Projects from a multi-project header state

Files changed:
 packages/dashboard/app/components/__tests__/Header.test.tsx       | 52 +++++++++++++---------
 packages/dashboard/app/components/__tests__/MailboxView.test.tsx  |  2 +-
 packages/dashboard/app/components/__tests__/MultiProjectFlow.test.tsx | 16 +++++--
 3 files changed, 44 insertions(+), 26 deletions(-)

Fusion-Task-Id: FN-6064

Fusion-Task-Lineage: be4b93a6-a4a7-4154-a7ad-204f51af9b5f
2026-06-09 02:11:25 -07:00
gsxdsm
4366a933da FN-6046: add collapsible workflow selectors
Add collapsible workflow selectors for board workflow controls and inline task creation.

- add a collapsible board workflow toolbar with persisted per-project state
- make the inline create workflow selector collapsible and store its expanded state per project
- update workflow selector styling, storage key allowlist, and regression coverage for collapse behavior

Files changed:
 packages/dashboard/app/components/Board.tsx        | 104 +++++++++++++--------
 .../dashboard/app/components/InlineCreateCard.css  |   9 ++
 .../dashboard/app/components/InlineCreateCard.tsx  |   3 +
 packages/dashboard/app/components/Lane.css         |  23 +++++
 .../dashboard/app/components/WorkflowSelector.css  |  20 +++-
 .../dashboard/app/components/WorkflowSelector.tsx  |  81 ++++++++++++++--
 .../app/components/__tests__/Board.test.tsx        | 101 ++++++++++++++++++--
 .../components/__tests__/InlineCreateCard.test.tsx |  57 ++++++++++-
 .../components/__tests__/WorkflowSelector.test.tsx |  73 ++++++++++++++-
 .../app/utils/__tests__/projectStorage.test.ts     |   4 +-
 packages/dashboard/app/utils/projectStorage.ts     |   2 +
 11 files changed, 420 insertions(+), 57 deletions(-)

Fusion-Task-Id: FN-6046

Fusion-Task-Lineage: 07cbe7a8-5740-479d-94a3-b178c72a5273
2026-06-09 02:09:31 -07:00
gsxdsm
a566f498d8 FN-6047: fix mobile-to-tablet viewport reflow
Keep dashboard mobile/tablet viewport transitions from blanking or leaving stale mobile chrome.

- update viewport-mode detection to resync on resize, orientation changes, and visualViewport resize events
- stabilize board scroll handling across mobile viewport changes without forcing tablet layouts back to the mobile scroll position
- expand dashboard regression coverage for mobile/tablet/desktop auto-merge toggles, app-shell reflow, and viewport listener wiring

Files changed:
 packages/dashboard/app/components/Board.tsx        |  33 ++++-
 .../app/components/__tests__/ChatView.test.tsx     |   4 +-
 ...-merge-toggle-blank.mobile-integration.test.tsx | 145 ++++++++++++++++++---
 .../app/hooks/__tests__/useViewportMode.test.ts    | 126 +++++++++++++++++-
 packages/dashboard/app/hooks/useViewportMode.ts    |  21 ++-
 5 files changed, 295 insertions(+), 34 deletions(-)

Fusion-Task-Id: FN-6047

Fusion-Task-Lineage: 5d5dcedf-6265-4672-b63e-414f3339e417
2026-06-09 02:00:29 -07:00
gsxdsm
13c6d96fe1 FN-6031: add workflow notification nodes
Add workflow notify nodes with templated notification dispatch support.

- add notify node support to workflow IR, engine handlers, and executor wiring
- expose notify node configuration and summaries in the dashboard editor and node metadata
- add regression tests and a published changeset, plus workflow/settings documentation updates

Files changed:
 .changeset/fn-6031-notification-node.md            |   5 +
 docs/settings-reference.md                         |   6 +-
 docs/workflow-steps.md                             |  10 +-
 packages/core/src/__tests__/workflow-ir.test.ts    |  59 ++++++++++
 packages/core/src/types.ts                         |   4 +-
 packages/core/src/workflow-ir-types.ts             |   4 +-
 packages/core/src/workflow-ir.ts                   |  19 +++
 packages/dashboard/app/components/WorkflowNodeEditor.tsx          |  76 +++++++++++-
 packages/dashboard/app/components/__tests__/WorkflowNodeEditor.test.tsx          |  61 ++++++++++
 packages/dashboard/app/components/__tests__/node-summary.test.ts  |  29 +++++
 packages/dashboard/app/components/__tests__/workflow-flow-mapping.test.ts        |  37 ++++++
 packages/dashboard/app/components/nodes/WorkflowNodeTypes.tsx     |   7 +-
 packages/dashboard/app/components/nodes/node-summary.ts |   5 +
 packages/engine/src/__tests__/workflow-node-handlers-notify.test.ts          | 131 +++++++++++++++++++++
 packages/engine/src/executor.ts                    |   2 +
 packages/engine/src/notification/ntfy-provider.ts  |  11 ++
 packages/engine/src/notification/webhook-provider.ts    |   6 +-
 packages/engine/src/workflow-graph-executor.ts     |   4 +
 packages/engine/src/workflow-graph-task-runner.ts  |   4 +
 packages/engine/src/workflow-node-handlers.ts      |  93 ++++++++++++++-
 20 files changed, 560 insertions(+), 13 deletions(-)

Fusion-Task-Id: FN-6031

Fusion-Task-Lineage: ff5c91e2-3872-4264-9c18-5d9e11628f13
2026-06-09 01:57:16 -07:00
gsxdsm
59c613cf38 FN-6052: move hold-task promote action into task cards
Move hold-column promotion into the shared task card action row.

- pass hold-column promote handlers and loading state through Column into TaskCard
- render a card-level Promote button with shared action styling and loading behavior
- remove the separate hold-column wrapper/button styling in Lane.css
- update Column and Lane tests to target the card-level promote control and add TaskCard coverage

Files changed:
 packages/dashboard/app/components/Column.tsx       | 64 ++++++++------------
 packages/dashboard/app/components/Lane.css         |  9 ---
 packages/dashboard/app/components/TaskCard.css     | 37 ++++++++++++
 packages/dashboard/app/components/TaskCard.tsx     | 32 +++++++++-
 .../app/components/__tests__/Column.test.tsx       | 16 +++--
 .../app/components/__tests__/Lane.test.tsx         | 16 +++--
 .../app/components/__tests__/TaskCard.test.tsx     | 70 ++++++++++++++++++++++
 7 files changed, 187 insertions(+), 57 deletions(-)

Fusion-Task-Id: FN-6052

Fusion-Task-Lineage: b2f98e06-cd3f-4f49-b540-68b56753c1fb
2026-06-09 01:29:47 -07:00
gsxdsm
61cbc5c3db FN-6058: improve mobile workflow node editor layout
Make the mobile workflow editor easier to use by collapsing competing panels and updating coverage.

- add a mobile inspector toggle that collapses node details and re-expands on node selection
- default the templates palette to collapsed on mobile and tighten mobile toolbar/layout styling to avoid overlap
- remove the stale workflow-id preselection path from the editor and align workflow edge/mobile regression coverage
- drop the unused modal prop wiring so the editor API matches the merged implementation

Files changed:
 packages/dashboard/app/components/AppModals.tsx    |   1 -
 .../app/components/WorkflowNodeEditor.css          |  61 +++++++++
 .../app/components/WorkflowNodeEditor.tsx          |  63 +++++++---
 .../__tests__/WorkflowNodeEditor.css.test.ts       |  21 ++++
 .../__tests__/WorkflowNodeEditor.test.tsx          | 139 +++++++++++----------
 5 files changed, 200 insertions(+), 85 deletions(-)

Fusion-Task-Id: FN-6058

Fusion-Task-Lineage: d037832f-8bd8-4e3d-b31b-e30cd9752838
2026-06-09 01:14:59 -07:00
gsxdsm
7c6f8b3bb0 FN-6044: fix GitHub import mobile preview scrolling
Keep GitHub import previews fully readable and scrollable on mobile while preserving desktop truncation.

- allow the active mobile preview pane to size and scroll correctly within the modal
- show full issue and pull request bodies on mobile while keeping desktop previews truncated
- add regression coverage for mobile scrolling, no-description fallbacks, and mobile/desktop body rendering

Files changed:
 packages/dashboard/app/components/GitHubImportModal.css |  18 +++
 packages/dashboard/app/components/GitHubImportModal.tsx |  18 ++-
 packages/dashboard/app/components/__tests__/GitHubImportModal.test.tsx           | 160 +++++++++++++++++++++
 3 files changed, 190 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-6044

Fusion-Task-Lineage: 43b6e686-a34f-4fec-9929-b4d28c12ac7a
2026-06-09 00:32:23 -07:00
gsxdsm
53f3638b12 FN-6037: open selected workflow editor on mobile
Open the board workflow editor directly to the selected workflow, including on mobile.

- pass the selected workflow id from the board toolbar through app modal state into the workflow editor
- preselect the requested workflow when loading workflows, while preserving settings/create entry points and mobile fallback behavior
- cover the new workflow targeting behavior in board, modal manager, and workflow editor tests and document the mobile editor flow

Files changed:
 docs/dashboard-guide.md                            |  3 +-
 packages/dashboard/app/App.tsx                     |  4 +-
 packages/dashboard/app/components/AppModals.tsx    |  1 +
 packages/dashboard/app/components/Board.tsx        |  6 +-
 packages/dashboard/app/components/WorkflowNodeEditor.tsx          | 13 ++++-
 packages/dashboard/app/components/__tests__/Board.test.tsx        |  4 ++
 packages/dashboard/app/components/__tests__/WorkflowNodeEditor.test.tsx | 68 ++++++++++++++++++++++
 packages/dashboard/app/hooks/__tests__/useModalManager.test.ts    | 42 +++++++++++++
 packages/dashboard/app/hooks/useModalManager.ts    | 16 +++--

Fusion-Task-Id: FN-6037

Fusion-Task-Lineage: e983e699-5376-434f-af03-39ce5a300029
2026-06-09 00:27:51 -07:00
gsxdsm
815ec58abd FN-6043: default GitHub imports to origin remote
Prefer the origin remote when preselecting GitHub imports in the dashboard modal.

- default the GitHub import modal to the origin remote when multiple remotes are available
- keep the remote picker unselected when multiple remotes exist without an origin entry
- expand dashboard tests to cover origin defaults for issues, pull requests, and mobile flows

Files changed:
 .../dashboard/app/components/GitHubImportModal.tsx | 16 ++--
 .../__tests__/GitHubImportModal.test.tsx           | 95 ++++++++++++++++------
 2 files changed, 77 insertions(+), 34 deletions(-)

Fusion-Task-Id: FN-6043

Fusion-Task-Lineage: b03b621d-757a-422c-b31c-ca0c34c3c168
2026-06-09 00:18:08 -07:00
gsxdsm
3ed9b6ef24 Merge pull request #1535 from Runfusion/feature/stuck-tasks
fix(FN-6043): recover stuck task processing
2026-06-08 20:48:36 -07:00
gsxdsm
aa8bd3dc92 fix(FN-6043): recover stuck task processing
Fusion-Task-Id: FN-6043
2026-06-08 18:14:48 -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
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
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
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