Commit Graph

336 Commits

Author SHA1 Message Date
gsxdsm
a91388198b FN-6899: make right dock persistent
Make the right dock a persistent far-right surface with its own collapse control.

- Default the right dock to visible and preserve a collapsed rail instead of hiding it entirely.\n- Remove Header right-dock toggle props and routing so More views remains a menu and left-sidebar mode has no duplicate Header toggle.\n- Update docs, changeset, and regression tests for persistent dock behavior.\n\nFiles changed:\n .changeset/fn-6899-click-revealed-right-dock.md    |  5 ++\n docs/dashboard-guide.md                            |  6 +-\n packages/dashboard/app/App.tsx                     |  1 -\n .../mobile-feature-access-regression.test.tsx      | 32 ++------\n packages/dashboard/app/components/Header.tsx       | 57 +++-----------\n packages/dashboard/app/components/RightDock.css    | 18 +++++\n packages/dashboard/app/components/RightDock.tsx    | 86 ++++++++++++----------\n .../app/components/__tests__/Header.test.tsx       | 57 +++-----------\n .../app/components/__tests__/RightDock.test.tsx    | 31 ++++++--\n .../app/components/useRightDockController.tsx      |  4 +-\n 10 files changed, 132 insertions(+), 165 deletions(-)

Fusion-Task-Id: FN-6899

Fusion-Task-Lineage: 96c4ba70-eb73-4034-8254-6a192402d905
2026-06-21 23:37:25 -07:00
gsxdsm
7fd14eb88c FN-6907: rename task documents to artifacts
Rename the task-modal Documents tab to Artifacts and include task-scoped media outputs alongside task documents.

- Add shared artifact media rendering for global and task-local artifact cards.
- Surface image, video, audio, document, and generic artifacts in the task Artifacts tab.
- Update tab labels, empty states, counts, translations, tests, docs, and release notes for the Artifacts wording.

Files changed:
 .changeset/fn-6907-task-artifacts-tab.md           |   5 +
 docs/dashboard-guide.md                            |   5 +-
 .../dashboard/app/components/ArtifactMedia.tsx     |  55 +++++++
 .../dashboard/app/components/DocumentsView.tsx     |  47 +-----
 .../dashboard/app/components/TaskDetailModal.tsx   |   3 +-
 .../dashboard/app/components/TaskDocumentsTab.css  |  33 +++++
 .../dashboard/app/components/TaskDocumentsTab.tsx  | 109 ++++++++++++--
 .../TaskDetailModal.attachments-and-tabs.test.tsx  |   4 +-
 .../TaskDetailModal.definition-actions.test.tsx    |  20 +--
 .../components/__tests__/TaskDocumentsTab.test.tsx | 160 ++++++++++++++++++++-
 packages/i18n/locales/en/app.json                  |  16 ++-
 packages/i18n/locales/es/app.json                  |  16 ++-
 packages/i18n/locales/fr/app.json                  |  16 ++-
 packages/i18n/locales/ko/app.json                  |  16 ++-
 packages/i18n/locales/zh-CN/app.json               |  16 ++-
 packages/i18n/locales/zh-TW/app.json               |  16 ++-
 16 files changed, 436 insertions(+), 101 deletions(-)

Fusion-Task-Id: FN-6907

Fusion-Task-Lineage: a1318ed5-4d47-42f8-8b6c-fe91506e11fb
2026-06-21 23:07:55 -07:00
gsxdsm
f4d2fa2ece FN-6910: hide subtask quick-add behind experiment
Hide the AI subtask-breakdown quick-add action unless the experimental flag is explicitly enabled.

- Gate Subtask Breakdown callbacks from App on the default-off subtaskBreakdown experiment.
- Remove Subtask quick-add buttons from inline create and quick entry surfaces when no callback is wired.
- Add settings, quick-add, documentation, and changeset coverage for the new experiment toggle.

Files changed:
 .changeset/fn-6910-subtask-breakdown-flag.md       |  5 ++++
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/App.tsx                     |  8 ++++---
 .../dashboard/app/components/InlineCreateCard.tsx  | 27 ++++++++++++----------
 .../dashboard/app/components/QuickEntryBox.tsx     | 27 ++++++++++++----------
 .../dashboard/app/components/SettingsModal.tsx     |  2 ++
 .../components/__tests__/InlineCreateCard.test.tsx | 13 +++++++++++
 .../components/__tests__/QuickEntryBox.test.tsx    | 12 ++++++++++
 .../components/__tests__/SettingsModal.test.tsx    | 13 +++++++++++
 9 files changed, 81 insertions(+), 28 deletions(-)

Fusion-Task-Id: FN-6910

Fusion-Task-Lineage: a7738b1f-7b41-438d-bd94-79ef56928262
2026-06-21 23:02:16 -07:00
gsxdsm
7034b55288 FN-6887: add footer terminal launcher
Move terminal access from the header into a footer launcher and resizable bottom panel.

- Add a TerminalLauncher footer control with dock, resize, collapse, and pop-out affordances.
- Extend TerminalModal to support bottom-panel layout, drag resizing, and persistent panel state.
- Remove terminal/script controls from header overflow while preserving compact Mailbox and tool ordering.
- Update executor footer spacing, dashboard docs, changeset, and focused terminal/header tests.

Files changed:
 .changeset/fn-6887-terminal-footer-panel.md        |   5 +
 docs/dashboard-guide.md                            |   2 +
 packages/dashboard/app/App.tsx                     |   6 +-
 .../app/__tests__/tablet-header-controls.test.tsx  |  95 +---
 .../dashboard/app/components/ExecutorStatusBar.css |   8 +
 .../dashboard/app/components/ExecutorStatusBar.tsx |  27 +-
 packages/dashboard/app/components/Header.css       |  27 -
 packages/dashboard/app/components/Header.tsx       | 549 +--------------------
 .../dashboard/app/components/TerminalLauncher.css  | 180 +++++++
 .../dashboard/app/components/TerminalLauncher.tsx  | 306 ++++++++++++
 .../dashboard/app/components/TerminalModal.css     | 117 +++++
 .../dashboard/app/components/TerminalModal.tsx     | 360 +++++++++++++-
 .../__tests__/ExecutorStatusBar.test.tsx           |  52 +-
 .../app/components/__tests__/Header.test.tsx       | 304 ++----------
 .../components/__tests__/TerminalLauncher.test.tsx |  57 +++
 .../components/__tests__/TerminalModal.test.tsx    | 111 +++++
 16 files changed, 1282 insertions(+), 924 deletions(-)

Fusion-Task-Id: FN-6887

Fusion-Task-Lineage: 755f28b1-1ba5-43f8-b13c-264e31507658
2026-06-21 22:43:34 -07:00
gsxdsm
c4c8961c1e FN-6903: preserve workflow quick-create visibility
Optimistically attach newly quick-created tasks to the active workflow lane until workflow metadata refetches.

- Update board and list quick-create paths to cache the selected workflow for created tasks immediately.\n- Refresh board-workflows metadata after optimistic assignment so authoritative state reconciles.\n- Cover board/list workflow-lane quick-create visibility with regression tests.\n- Document the workflow-filtered quick-create behavior and add a patch changeset.\n\nFiles changed:\n .../fn-6903-workflow-lane-create-visibility.md     |   5 +\n docs/dashboard-guide.md                            |   2 +-\n packages/dashboard/app/components/Board.tsx        |  34 ++-\n packages/dashboard/app/components/ListView.tsx     |  36 ++-\n ...d-quickcreate-workflow-lane-visibility.test.tsx | 319 +++++++++++++++++++++\n 5 files changed, 390 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-6903

Fusion-Task-Lineage: dd2c6fa1-f2e8-4777-aa3c-69d000efb1b1
2026-06-21 22:04:32 -07:00
gsxdsm
26c8d960a2 FN-6893: add editable built-in workflow prompts
Enable project-scoped prompt overrides for built-in workflows without allowing structural edits.

- Add workflow prompt override storage, normalization, and IR overlay support for prompt and gate nodes.
- Expose dashboard API routes and Workflow Node Editor controls to edit or reset built-in prompts.
- Cover override persistence, route behavior, editor flows, and engine workflow resolution with tests.
- Document editable built-in prompts and reset-to-default behavior.

Files changed:
 docs/dashboard-guide.md                            |   2 +-
 docs/settings-reference.md                         |   2 +
 docs/workflow-steps.md                             |  20 ++-
 .../__tests__/workflow-definition-store.test.ts    |  25 +++
 .../workflow-prompt-overrides-store.test.ts        | 190 ++++++++++++++++++++
 .../__tests__/workflow-prompt-overrides.test.ts    |  58 +++++++
 packages/core/src/db.ts                            |  35 +++-
 packages/core/src/index.ts                         |   7 +
 packages/core/src/store.ts                         |  97 ++++++++++-
 packages/core/src/workflow-ir-resolver.ts          |  21 ++-
 packages/core/src/workflow-prompt-overrides.ts     |  65 +++++++
 packages/dashboard/app/api/legacy.ts               |  34 ++++
 .../app/components/WorkflowNodeEditor.css          |  35 ++++
 .../app/components/WorkflowNodeEditor.tsx          | 191 ++++++++++++++++++++-
 .../__tests__/WorkflowNodeEditor.test.tsx          | 136 ++++++++++++++-
 .../src/__tests__/workflow-routes.test.ts          |  59 +++++++
 .../src/routes/register-workflow-routes.ts         |  86 +++++++++-
 .../workflow-prompt-overrides-resolution.test.ts   |  61 +++++++
 packages/i18n/locales/en/app.json                  |  14 +-
 packages/i18n/locales/es/app.json                  |  14 +-
 packages/i18n/locales/fr/app.json                  |  14 +-
 packages/i18n/locales/ko/app.json                  |  14 +-
 packages/i18n/locales/zh-CN/app.json               |  14 +-
 packages/i18n/locales/zh-TW/app.json               |  14 +-
 24 files changed, 1168 insertions(+), 40 deletions(-)

Fusion-Task-Id: FN-6893

Fusion-Task-Lineage: 961eb119-32e1-44c3-9b51-6edd982fa565
2026-06-21 21:23:41 -07:00
gsxdsm
5b33da9268 FN-6882: move toolbar tools into right dock
Move desktop toolbar tools into the right dock while keeping Files as the inline dock view.

- Remove desktop toolbar buttons and overflow menu entries for Activity, Activity Log, GitHub Import, Git Manager, Files, and Automation.
- Convert right-dock registry entries into launcher actions for modal tools and keep Files/plugin entries as expandable inline views.
- Update right-dock selection, expansion, documentation, tests, and release notes for the new tools rail behavior.

Files changed:
 .changeset/fn-6882-toolbar-to-right-sidebar.md     |   5 +
 docs/dashboard-guide.md                            |  10 +-
 packages/dashboard/app/App.tsx                     |   2 +-
 .../app/__tests__/tablet-header-controls.test.tsx  |   6 +-
 packages/dashboard/app/components/Header.css       |   3 -
 packages/dashboard/app/components/Header.tsx       | 115 +-----------
 packages/dashboard/app/components/RightDock.tsx    |  50 +++--
 .../app/components/RightDockExpandModal.tsx        |  10 +-
 .../app/components/__tests__/Header.test.tsx       | 112 +++++------
 .../app/components/__tests__/RightDock.test.tsx    | 189 +++++++++++--------
 .../__tests__/overflowViewRegistry.test.tsx        |  73 +++++---
 .../app/components/overflowViewRegistry.tsx        | 204 ++++++---------------
 .../app/components/useRightDockController.tsx      |  10 +
 13 files changed, 323 insertions(+), 466 deletions(-)

Fusion-Task-Id: FN-6882

Fusion-Task-Lineage: 4b423b3e-ff82-41d4-83f9-7cff23361e81
2026-06-21 20:55:28 -07:00
gsxdsm
4fec139927 FN-6881: move stash recovery into Git Manager
Move stash recovery into the Git Manager while retiring the standalone dashboard route.

- Add a Recovery section to Git Manager that hosts the existing StashRecoveryView.
- Remove stash recovery from top-level, overflow, mobile, and lazy-loaded view registries.
- Preserve orphaned-stash counts on Git Manager entry points and migrate saved stash-recovery routes back to Board.
- Update dashboard docs, lazy-load inventory, tests, and add a published package changeset.

Files changed:
 .changeset/fn-6881-stash-recovery-git-manager.md   |  5 +++
 AGENTS.md                                          |  3 +-
 docs/dashboard-guide.md                            |  9 ++--
 packages/dashboard/app/App.tsx                     | 13 ------
 .../app/__tests__/lazy-loaded-views-docs.test.ts   | 11 ++---
 .../dashboard/app/components/GitManagerModal.tsx   | 19 +++++++-
 packages/dashboard/app/components/Header.css       |  9 ++++
 packages/dashboard/app/components/Header.tsx       | 22 +++-------
 .../dashboard/app/components/LeftSidebarNav.tsx    |  4 --
 packages/dashboard/app/components/MobileNavBar.tsx | 16 +------
 .../components/__tests__/GitManagerModal.test.tsx  | 51 ++++++++++++++++++++++
 .../app/components/__tests__/Header.test.tsx       | 21 +++++++++
 .../components/__tests__/LeftSidebarNav.test.tsx   | 10 ++---
 .../app/components/__tests__/MobileNavBar.test.tsx | 10 +++++
 .../app/components/__tests__/RightDock.test.tsx    |  4 +-
 .../__tests__/overflowViewRegistry.test.tsx        |  3 +-
 .../app/components/overflowViewRegistry.tsx        | 10 -----
 packages/dashboard/app/hooks/__tests__/useViewState.test.ts       | 28 ++++++++++++
 packages/dashboard/app/hooks/useViewState.ts       | 19 +++++++-
 packages/dashboard/src/view-chunk-manifest.ts      |  1 -
 20 files changed, 184 insertions(+), 84 deletions(-)

Fusion-Task-Id: FN-6881

Fusion-Task-Lineage: 467d34ec-8a6a-46db-8eb8-cb0216c031da
2026-06-21 20:28:33 -07:00
gsxdsm
2db99ec6fd FN-6894: widen workflow switcher menus
Workflow switcher dropdowns now size open menus to fit long workflow names without widening the collapsed trigger.

- Add menu width calculation that combines measured workflow names, option decorations, trigger width, and viewport bounds.
- Measure option names with a canvas when opening/repositioning the dropdown.
- Cover long-name, viewport clamp, trigger sizing, and CSS overflow behavior in WorkflowSwitcher tests.
- Document the open-listbox sizing behavior in the dashboard guide.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 .../dashboard/app/components/WorkflowSwitcher.tsx  | 49 +++++++++++++-
 .../components/__tests__/WorkflowSwitcher.test.tsx | 78 +++++++++++++++++++++-
 3 files changed, 123 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-6894

Fusion-Task-Lineage: 3f2f8129-3f85-484d-9c0f-b6ebe673b6a9
2026-06-21 19:23:51 -07:00
gsxdsm
9ce9f74b5c FN-6880: add sidebar New Task action
Add a persistent New Task entry to the left sidebar so task creation is available from project views.

- Wire the left sidebar to the existing New Task dialog trigger from App.
- Render an accessible, token-styled New Task CTA above sidebar navigation with collapsed rail support.
- Cover the new sidebar affordance behavior and document it in the dashboard guide.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/App.tsx                     |  1 +
 .../dashboard/app/components/LeftSidebarNav.css    | 27 +++++++
 .../dashboard/app/components/LeftSidebarNav.tsx    | 18 +++++
 .../components/__tests__/LeftSidebarNav.test.tsx   | 83 ++++++++++++++++++++++
 5 files changed, 130 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6880

Fusion-Task-Lineage: 7d9cffd4-c216-4250-9615-51e7c16438c2
2026-06-21 19:17:06 -07:00
gsxdsm
e77f785fbc FN-6890: rename documents navigation to artifacts
Rename the user-facing Documents destination to Artifacts across dashboard navigation.

- Update header, sidebar, mobile, right-dock, and view title labels to say Artifacts while preserving the existing documents route identifiers.
- Refresh localized app strings and generated i18n types for the renamed label.
- Adjust dashboard and i18n coverage tests to assert the Artifacts label across navigation surfaces.

Files changed:
 docs/dashboard-guide.md                            | 10 ++---
 .../app/__tests__/tablet-header-controls.test.tsx  | 12 +++---
 .../dashboard/app/components/DocumentsView.tsx     |  3 +-
 packages/dashboard/app/components/Header.tsx       | 10 +++--
 .../dashboard/app/components/LeftSidebarNav.tsx    |  6 ++-
 packages/dashboard/app/components/MobileNavBar.tsx |  3 +-
 .../components/__tests__/DocumentsView.test.tsx    |  1 +
 .../app/components/__tests__/Header.test.tsx       | 10 ++---
 .../components/__tests__/LeftSidebarNav.test.tsx   |  2 +
 .../app/components/__tests__/MobileNavBar.test.tsx | 11 ++++++
 .../app/components/__tests__/RightDock.test.tsx    |  3 +-
 .../__tests__/overflowViewRegistry.test.tsx        |  6 ++-
 .../app/components/overflowViewRegistry.tsx        |  6 ++-
 packages/i18n/locales/en/app.json                  |  6 +--
 packages/i18n/locales/es/app.json                  |  6 +--
 packages/i18n/locales/fr/app.json                  |  6 +--
 packages/i18n/locales/ko/app.json                  |  6 +--
 packages/i18n/locales/zh-CN/app.json               |  6 +--
 packages/i18n/locales/zh-TW/app.json               |  6 +--
 .../i18n/src/__tests__/i18n-gate-coverage.test.ts  | 24 ++++++++++++
 packages/i18n/src/resources.d.ts                   | 45 +++++++++++++++++++---
 21 files changed, 139 insertions(+), 49 deletions(-)

Fusion-Task-Id: FN-6890
Fusion-Task-Lineage: 7a50dc24-3278-4cdf-8e4c-fd8cc5c3c40d
2026-06-21 18:55:36 -07:00
gsxdsm
e2a57f0a80 FN-6840: document Shadcn theme selection surfaces
Document the expanded Shadcn theme workflow across dashboard customization docs.

- Note that the Command Center overview selector exposes the same Shadcn variants as Settings → Appearance.
- Add the DashboardTheming FNXC requirement note for the expanded Shadcn family, custom preset, and accent-following sidebar behavior.
- Describe sidebar active and resize accents following the selected theme token.

Files changed:
 docs/dashboard-guide.md | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6840

Fusion-Task-Lineage: 2f87dc23-7a37-4ed6-9418-7bd06b2ecd82
2026-06-21 18:28:57 -07:00
gsxdsm
f49d8c61e7 FN-6879: add AI handoffs to New Task dialog
Expose the board quick-add planning handoffs from the New Task dialog.

- Wire New Task modal actions through AppModals to open Planning Mode and Subtask Breakdown.
- Reset and close the dialog without discard confirmation when handing off the typed description.
- Cover the dialog affordance parity, trimmed handoff payloads, and disabled empty-description state.
- Document the Plan and Subtask quick-add buttons in the dashboard guide.

Files changed:
 docs/dashboard-guide.md                            |  2 +
 packages/dashboard/app/App.tsx                     |  2 +
 packages/dashboard/app/components/AppModals.tsx    |  6 ++
 packages/dashboard/app/components/NewTaskModal.tsx | 41 ++++++++----
 .../app/components/__tests__/NewTaskModal.test.tsx | 77 +++++++++++++++++++++-
 5 files changed, 113 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-6879

Fusion-Task-Lineage: 9e4b499d-8175-4172-afeb-fe70845241c0
2026-06-21 18:17:47 -07:00
gsxdsm
6b59c5bbde FN-6885: enable org chart drag panning
Enable drag panning for the Command Center Team org chart while preserving node clicks and touch scrolling.

- Add pointer-driven mouse/pen panning with a movement threshold and click suppression after drag gestures.
- Style the draggable org chart viewport with grab/grabbing cursor states.
- Cover panning behavior, click preservation, drag click suppression, and touch pointer passthrough in TeamArea tests.
- Document drag-to-pan support in the dashboard guide.

Files changed:
 docs/dashboard-guide.md                            |   2 +-
 .../components/command-center/areas/TeamArea.tsx   |  82 +++++++++-
 .../areas/__tests__/TeamArea.orgchart-pan.test.tsx | 172 +++++++++++++++++++++
 .../app/components/command-center/areas/areas.css  |  10 ++
 4 files changed, 263 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6885

Fusion-Task-Lineage: d0749fc9-cea4-4bc4-b457-b93ddd2a3613
2026-06-21 18:13:56 -07:00
gsxdsm
a4ae13057c FN-6889: move Secrets and Todos out of left sidebar
Keep auxiliary Secrets and Todos navigation anchored to the right dock instead of the left sidebar.\n\n- Remove Secrets and Todos entries and unused icons from LeftSidebarNav.\n- Update sidebar tests to assert those shortcuts are omitted while other routes still work.\n- Refresh dashboard navigation docs for right-dock Todos and Secrets placement.\n\nFiles changed:\n docs/dashboard-guide.md                                       |  6 +++---\n packages/dashboard/app/components/LeftSidebarNav.tsx          | 11 ++++-------\n .../app/components/__tests__/LeftSidebarNav.test.tsx          |  8 +++-----\n 3 files changed, 10 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-6889

Fusion-Task-Lineage: de135281-a9a8-4583-8251-e78a6b28122e
2026-06-21 18:08:27 -07:00
gsxdsm
31dd7429a3 FN-6883: fill Command Center line charts
Restore Command Center Activity line charts so their plotted geometry fills the rendered chart box without distorting point markers.

- Measure the rendered SVG dimensions and use them as the line chart viewBox so paths span wide desktop and mobile layouts.
- Preserve safe bounded geometry for zero, single-point, NaN, and resized chart states.
- Update Command Center chart tests and dashboard rendering guidance for the fill-width/circular-marker invariant.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 .../command-center/__tests__/charts.test.tsx       | 71 ++++++++++++++---
 .../command-center/areas/__tests__/areas.test.tsx  | 35 ++++++---
 .../components/command-center/charts/LineChart.tsx | 89 ++++++++++++++++++----
 .../components/command-center/charts/charts.css    |  4 +-
 5 files changed, 164 insertions(+), 37 deletions(-)

Fusion-Task-Id: FN-6883

Fusion-Task-Lineage: 71c19a62-1a76-455d-92cb-9c22d0613881
2026-06-21 18:02:49 -07:00
gsxdsm
69b8178844 FN-6884: expand Team org chart connectors
Make the Command Center Team org chart easier to scan with taller scrolling and visible parent-child connectors.

- Increase desktop and mobile Team org chart scroll heights.
- Draw horizontal-mode parent drops, sibling rails, and child connector stubs while preserving vertical connector styling.
- Add CSS invariant coverage for connector rules, viewport heights, and design-token usage.
- Document the taller connected Team org chart behavior.

Files changed:
 docs/dashboard-guide.md                            |   2 +-
 .../CommandCenter.orgchart-connectors.css.test.ts  | 119 +++++++++++++++++++++
 .../app/components/command-center/areas/areas.css  |  38 ++++++-
 3 files changed, 156 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6884

Fusion-Task-Lineage: 0a68f0a1-3303-4730-b3bd-788cc6218c0a
2026-06-21 17:19:03 -07:00
gsxdsm
09acfbb707 FN-6875: allow manual unpause for assigned tasks
Allow users to recover paused agent-assigned tasks without switching to agent controls.

- Remove the API conflict that blocked manual pause and unpause on assigned tasks.
- Keep pause and unpause actions visible for assigned, paused, and agent-paused tasks in the detail menu.
- Cover assigned-task pause controls and route unpause behavior with regression tests.
- Document manual unpause support and add a patch changeset.

Files changed:
 .changeset/fn-6875-allow-unpause-assigned.md       |   5 +
 docs/agents.md                                     |   2 +-
 docs/dashboard-guide.md                            |   1 +
 .../dashboard/app/components/TaskDetailModal.tsx   |  17 +++-
 .../TaskDetailModal.definition-actions.test.tsx    |  97 +++++++++++++++++--
 .../register-task-workflow-routes.unpause.test.ts  | 103 ++++++++++++++-------
 .../src/routes/register-task-workflow-routes.ts    |  14 ++-
 7 files changed, 187 insertions(+), 52 deletions(-)

Fusion-Task-Id: FN-6875

Fusion-Task-Lineage: 9233822c-2013-475d-b17a-2212a38ab388
2026-06-21 16:34:41 -07:00
gsxdsm
55266b6e9e FN-6874: document Command Center pricing semantics
Document the Command Center pricing contract for maintainers and users.

- Explain that estimated token costs are derived at read time from the maintained pricing table and are not persisted billing truth.\n- Document pricingAsOf, stale low-confidence, unknown-model unavailable, and provider coverage maintenance expectations.\n- Add a documentation contract test to keep the dashboard and architecture guides aligned.

Files changed:\n docs/architecture.md                               |  2 ++\n docs/dashboard-guide.md                            |  3 +-\n .../__tests__/command-center-pricing-docs.test.ts  | 35 ++++++++++++++++++++++\n 3 files changed, 39 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6874

Fusion-Task-Lineage: 04606ae1-4870-479a-afb6-8a24675fe66b
2026-06-21 16:28:30 -07:00
gsxdsm
58f758842b FN-6816: add shadcn custom color picker
Add a Shadcn Custom theme flow for editing and applying sanitized dashboard color tokens.

- Add a lazy-loaded Shadcn color picker modal with token defaults, reset controls, and validation tests.
- Persist sanitized custom color overrides through settings, pre-hydration theme bootstrapping, and Command Center/theme dropdown surfaces.
- Register the Shadcn Custom theme option in core types, schema, docs, theme CSS, and release notes.

Files changed:
 .changeset/fn-6816-shadcn-custom-colors.md         |   5 +
 docs/dashboard-guide.md                            |   2 +-
 docs/settings-reference.md                         |   3 +-
 packages/core/src/settings-schema.ts               |   1 +
 packages/core/src/types.ts                         |   4 +
 packages/dashboard/app/App.tsx                     |   7 +-
 packages/dashboard/app/components/AppModals.tsx    |   6 +
 .../dashboard/app/components/SettingsModal.tsx     |  12 ++
 .../dashboard/app/components/ShadcnColorPicker.css | 101 ++++++++++++++
 .../dashboard/app/components/ShadcnColorPicker.tsx |  95 +++++++++++++
 .../dashboard/app/components/ThemeDropdown.tsx     |  23 +++-
 .../dashboard/app/components/ThemeSelector.css     |  14 ++
 .../dashboard/app/components/ThemeSelector.tsx     |  19 ++-
 .../__tests__/ShadcnColorPicker.test.tsx           |  50 +++++++
 .../components/__tests__/ThemeDropdown.test.tsx    |  19 +++
 .../components/__tests__/ThemeSelector.test.tsx    |  64 +++++++++
 .../__tests__/shadcnCustomColors.test.ts           |  52 ++++++++
 .../components/command-center/CommandCenter.tsx    |  15 +++
 .../command-center/CommandCenterControls.tsx       |   8 +-
 .../settings/sections/AppearanceSection.tsx        |   8 +-
 .../dashboard/app/components/shadcnCustomColors.ts |  80 +++++++++++
 packages/dashboard/app/components/themeOptions.ts  |   1 +
 .../dashboard/app/hooks/__tests__/useTheme.test.ts | 108 +++++++++++++++
 packages/dashboard/app/hooks/useTheme.ts           |  91 ++++++++++++-
 packages/dashboard/app/index.html                  |  19 ++-
 packages/dashboard/app/public/theme-data.css       | 148 ++++++++++++++++++++-
 26 files changed, 938 insertions(+), 17 deletions(-)

Fusion-Task-Id: FN-6816

Fusion-Task-Lineage: f16baaa9-16f5-4526-8159-9a1ceff4f807
2026-06-21 16:13:54 -07:00
gsxdsm
ef4889585f FN-6779: add artifacts gallery to Documents
Adds a Documents-view artifact gallery backed by dashboard artifact registry APIs.

- Add artifact listing and media-serving endpoints with project scoping, validation, and safe artifact path resolution.
- Add client artifact API helpers, SWR caching, and a useArtifacts hook for background-refresh gallery data.
- Extend Documents view with an Artifacts tab, media previews, localized labels, documentation, tests, and a published package changeset.

Files changed:
 .changeset/fn-6779-artifacts-gallery.md            |   5 +
 docs/dashboard-guide.md                            |   6 +-
 packages/dashboard/app/api/legacy.ts               |  34 ++++
 .../dashboard/app/components/DocumentsView.css     | 142 ++++++++++++++++
 .../dashboard/app/components/DocumentsView.tsx     | 178 ++++++++++++++++++--
 .../components/__tests__/DocumentsView.test.tsx    | 163 +++++++++++++++++-
 .../app/hooks/__tests__/useArtifacts.test.ts       | 136 +++++++++++++++
 packages/dashboard/app/hooks/useArtifacts.ts       | 145 ++++++++++++++++
 packages/dashboard/app/utils/swrCache.ts           |   1 +
 .../src/routes/__tests__/artifacts-routes.test.ts  | 182 +++++++++++++++++++++
 .../src/routes/register-task-workflow-routes.ts    | 125 ++++++++++++++
 packages/i18n/locales/en/app.json                  |  22 ++-
 packages/i18n/locales/es/app.json                  |  27 ++-
 packages/i18n/locales/fr/app.json                  |  27 ++-
 packages/i18n/locales/ko/app.json                  |  27 ++-
 packages/i18n/locales/zh-CN/app.json               |  27 ++-
 packages/i18n/locales/zh-TW/app.json               |  27 ++-
 scripts/line-count-baseline.json                   |  16 +-
 18 files changed, 1255 insertions(+), 35 deletions(-)

Fusion-Task-Id: FN-6779

Fusion-Task-Lineage: 1d71e4be-4bfc-4706-9cbf-7214f91a79d1
2026-06-21 16:01:07 -07:00
gsxdsm
32455363d0 FN-6845: add resizable right dock for More views
Add a tablet and desktop right dock for overflow dashboard views while preserving mobile navigation behavior.

- Route the non-mobile More views affordance into a resizable right dock with expand-to-modal support.
- Add an overflow view registry and controller to render auxiliary dashboard views in the dock.
- Make the right dock default-on in settings alongside the default left sidebar, with explicit opt-outs for legacy tests.
- Cover right dock behavior, navigation fallbacks, and overflow registry entries with focused tests and docs.

Files changed:
 docs/dashboard-guide.md                            |  10 +
 packages/dashboard/app/App.tsx                     |  15 +-
 .../mobile-feature-access-regression.test.tsx      |  78 +++++
 packages/dashboard/app/components/Header.tsx       |  66 ++++-
 packages/dashboard/app/components/RightDock.css    | 165 +++++++++++
 packages/dashboard/app/components/RightDock.tsx    | 234 +++++++++++++++
 .../app/components/RightDockExpandModal.tsx        |  70 +++++
 .../dashboard/app/components/SettingsModal.tsx     |  17 +-
 .../app/components/__tests__/Header.test.tsx       |  70 +++++
 .../app/components/__tests__/RightDock.test.tsx    | 202 +++++++++++++
 .../__tests__/navigation-history.test.tsx          |   2 +-
 .../__tests__/overflowViewRegistry.test.tsx        |  67 +++++
 .../app/components/overflowViewRegistry.tsx        | 314 +++++++++++++++++++++
 .../app/components/useRightDockController.tsx      | 126 +++++++++
 14 files changed, 1408 insertions(+), 28 deletions(-)

Fusion-Task-Id: FN-6845

Fusion-Task-Lineage: 3cb04264-cf7a-43e1-b774-678ff3cb325b
2026-06-21 13:52:12 -07:00
gsxdsm
d99246cb74 FN-6834: use OS-available memory for system metrics
Use shared OS-available memory readings so macOS cache/inactive pages are not counted as used.

- Add a core available-memory helper that prefers `process.availableMemory()` and flags `freemem` fallback reliability.
- Route core metrics, dashboard system stats, and the dashboard TUI through the shared helper.
- Move and expand memory tests across core, dashboard routes, and verification coverage while documenting the telemetry behavior.
- Add a patch changeset for the published CLI package.

Files changed:
 .changeset/fix-macos-memory-used.md                |  5 ++
 docs/architecture.md                               |  2 +-
 docs/dashboard-guide.md                            |  2 +-
 .../__tests__/available-memory.test.ts             | 54 --------------
 .../cli/src/commands/dashboard-tui/controller.ts   | 37 +---------
 .../core/src/__tests__/available-memory.test.ts    | 83 ++++++++++++++++++++++
 packages/core/src/__tests__/system-metrics.test.ts | 36 +++++++++-
 packages/core/src/available-memory.ts              | 32 +++++++++
 packages/core/src/index.ts                         |  1 +
 packages/core/src/system-metrics.ts                |  9 ++-
 .../dashboard/src/__tests__/routes-system.test.ts  | 27 +++++++
 packages/dashboard/src/routes.ts                   |  7 +-
 .../src/__tests__/run-verification-command.test.ts | 18 +++++
 13 files changed, 218 insertions(+), 95 deletions(-)

Fusion-Task-Id: FN-6834

Fusion-Task-Lineage: 2e651551-6c35-46d1-b517-535758c7ace2
2026-06-21 13:32:19 -07:00
gsxdsm
217fd74f56 FN-6866: fix active planning chat guidance
Prevent task chat from showing idle guidance while planner sessions are actively working.

- Treat triage/planning task states as active steering sessions when they are not queued, paused, or blocked.\n- Keep queued, awaiting, failed, and paused states on idle guidance even in active columns.\n- Cover inline and expanded planning chat surfaces across empty, populated, and loading transcripts.\n- Update the dashboard guide to document planning and live session bridge steering behavior.\n\nFiles changed:\n docs/dashboard-guide.md                            |  2 +-\n packages/dashboard/app/components/TaskChatTab.tsx  | 24 +++++++---\n .../app/components/__tests__/TaskChatTab.test.tsx  | 51 +++++++++++++++++++---\n 3 files changed, 66 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-6866

Fusion-Task-Lineage: 48c57515-40fa-40c1-ae3b-fec0690bba75
2026-06-21 13:25:41 -07:00
gsxdsm
eb3477aba4 FN-6835: add system stats node selection
Add Command Center controls for inspecting local or remote node system telemetry.

- add a System area node selector with local defaults, remote stats loading, and per-node sample resets
- expose proxied node system-stats fetching and route local node requests through the shared stats builder
- route Vitest kill requests through node-aware proxy plumbing and cover node stats behavior with tests
- add localized node selector copy, docs, and a published package changeset

Files changed:
 .changeset/fuzzy-nodes-watch.md                    |   5 +
 docs/dashboard-guide.md                            |   4 +-
 packages/dashboard/app/api/legacy.ts               |  14 +-
 .../__tests__/CommandCenter.mobile-scroll.test.tsx |   2 +
 .../__tests__/CommandCenter.tablet-layout.test.tsx |   2 +
 .../__tests__/CommandCenter.test.tsx               |   1 +
 .../__tests__/SystemStatsArea.test.tsx             | 160 +++++++++++++++++
 .../command-center/areas/SystemStatsArea.css       |  13 ++
 .../command-center/areas/SystemStatsArea.tsx       |  72 +++++++-
 .../dashboard/src/__tests__/routes-system.test.ts  | 122 +++++++++++++
 packages/dashboard/src/routes.ts                   | 190 +++++++++++++--------
 packages/i18n/locales/en/app.json                  |  10 ++
 packages/i18n/locales/es/app.json                  |  10 ++
 packages/i18n/locales/fr/app.json                  |  10 ++
 packages/i18n/locales/ko/app.json                  |  10 ++
 packages/i18n/locales/zh-CN/app.json               |  10 ++
 packages/i18n/locales/zh-TW/app.json               |  10 ++
 17 files changed, 562 insertions(+), 83 deletions(-)

Fusion-Task-Id: FN-6835

Fusion-Task-Lineage: 8f9a047b-78d0-477e-824e-f7592966cdc0
2026-06-21 13:25:41 -07:00
gsxdsm
eb9635a406 FN-6843: enable left sidebar navigation by default
Left sidebar navigation now defaults on for non-mobile project screens while preserving an explicit opt-out.

- Treat an unset leftSidebarNav flag as enabled in the App desktop/tablet gate.
- Show the Settings experimental toggle checked by default and save false when users opt out.
- Extend regression coverage across unset/true/false flag states, desktop/tablet/mobile surfaces, and header suppression.
- Update dashboard guide documentation for the default-on behavior and opt-out flag.

Files changed:
 docs/dashboard-guide.md                            |  4 +-
 packages/dashboard/app/App.tsx                     |  5 +-
 .../mobile-feature-access-regression.test.tsx      | 69 ++++++++++++++++++----
 .../dashboard/app/components/SettingsModal.tsx     | 16 ++++-
 .../components/__tests__/SettingsModal.test.tsx    | 39 ++++++++++++
 5 files changed, 119 insertions(+), 14 deletions(-)

Fusion-Task-Id: FN-6843

Fusion-Task-Lineage: 44d73b9e-92aa-4381-883b-c42714bd7f99
2026-06-21 13:25:41 -07:00
gsxdsm
dcf1ab1164 FN-6870: render wide team org charts horizontally
Render the Command Center Team org chart horizontally when its container has room.

- Measure the Team org-chart viewport and reuse the shared Agents org-chart layout resolver.
- Add horizontal and vertical data-layout styling for Team org-chart roots and children.
- Cover wide, narrow, unmeasured, loading, error, empty, and single-root Team org-chart states.
- Document the Team org-chart horizontal layout behavior.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 .../components/command-center/areas/TeamArea.tsx   | 38 ++++++++++-
 .../command-center/areas/__tests__/areas.test.tsx  | 77 ++++++++++++++++++++++
 .../app/components/command-center/areas/areas.css  | 36 +++++++++-
 4 files changed, 149 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-6870

Fusion-Task-Lineage: b023788a-a353-4b10-ad68-a661e72e5be6
2026-06-21 13:25:41 -07:00
gsxdsm
2f7905386f FN-6848: refresh workflow dropdown counts on open
Refresh workflow dropdown counts from the latest board-workflows data whenever users open the selector.

- Refactor Board and ListView workflow payload fetching into reusable refresh callbacks shared by mount, visibility, focus, SSE, and dropdown-open events.
- Add a WorkflowSwitcher onOpen hook that fires only on closed-to-open click or keyboard transitions.
- Cover Board, ListView, and WorkflowSwitcher refresh behavior with regression tests and document the refreshed dropdown counts.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/components/Board.tsx        | 49 +++++++++++---------
 packages/dashboard/app/components/ListView.tsx     | 49 +++++++++++---------
 .../dashboard/app/components/WorkflowSwitcher.tsx  | 38 +++++++++++++---
 .../app/components/__tests__/Board.test.tsx        | 14 ++++++
 .../app/components/__tests__/ListView.test.tsx     | 39 ++++++++++++++++
 .../components/__tests__/WorkflowSwitcher.test.tsx | 53 ++++++++++++++++++++++
 7 files changed, 195 insertions(+), 49 deletions(-)

Fusion-Task-Id: FN-6848

Fusion-Task-Lineage: bb83cee9-4184-4094-89d6-f2cf2a4fbd46
2026-06-21 13:25:41 -07:00
gsxdsm
c9146e15b2 FN-6830: use theme accent for sidebar active states
Align the left sidebar selected and resize states with each active dashboard theme.

- Switch active left-sidebar item color and background to the shared --accent token.
- Update the resize-handle focus and hover accent to follow theme accent colors.
- Add a CSS regression test and documentation for the theme-accent invariant.
- Define shared typography tokens and replace an optional-step danger fallback with an existing error token.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 .../left-sidebar-active-accent.css.test.ts         | 38 ++++++++++++++++++++++
 .../dashboard/app/components/LeftSidebarNav.css    | 10 +++---
 .../app/components/WorkflowOptionalStepsPanel.css  |  2 +-
 packages/dashboard/app/styles.css                  |  3 ++
 5 files changed, 48 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-6830

Fusion-Task-Lineage: add8e9cd-4b91-45a1-a848-a54dd1083723
2026-06-21 13:25:41 -07:00
gsxdsm
b20a25c526 FN-6815: add Shadcn Gray Blue theme
Add a slate-neutral Shadcn Gray Blue dashboard theme variant.\n\n- Register shadcn-gray-blue across core theme validation, startup bootstrap, and selector options.\n- Add dark and light slate blue-gray design tokens, swatches, and shared shadcn styling coverage.\n- Extend theme tests, dashboard docs, and the published package changeset for the new variant.\n\nFiles changed:\n .changeset/shadcn-gray-blue-theme.md               |   5 +\n docs/dashboard-guide.md                            |   2 +-\n packages/core/src/types.ts                         |   2 +\n .../dashboard/app/components/ThemeSelector.css     |  15 +++\n .../components/WorkflowOptionalStepsDropdown.css   |   3 +-\n packages/dashboard/app/components/themeOptions.ts  |   2 +\n .../dashboard/app/hooks/__tests__/useTheme.test.ts |  12 ++\n packages/dashboard/app/index.html                  |   2 +-\n packages/dashboard/app/public/theme-data.css       | 143 ++++++++++++++++++++-\n 9 files changed, 177 insertions(+), 9 deletions(-)

Fusion-Task-Id: FN-6815

Fusion-Task-Lineage: 71cca9b3-12ab-4b91-93c5-e3d2498501ce
2026-06-21 13:25:41 -07:00
gsxdsm
465b7b6263 FN-6842: fix trait-less workflow status counts
Restore workflow switcher counts for built-in linear workflows with empty column traits.

- Add canonical lifecycle id fallback after flag-based status classification.
- Cover trait-less built-in workflows and flag-authority edge cases in status-count tests.
- Document the built-in fallback behavior for Board and List workflow switchers.

Files changed:
 docs/dashboard-guide.md                            |   2 +-
 .../__tests__/workflowStatusCounts.test.ts         | 207 +++++++++++++++++++--
 .../app/components/workflowStatusCounts.ts         |  64 +++++--
 3 files changed, 246 insertions(+), 27 deletions(-)

Fusion-Task-Id: FN-6842

Fusion-Task-Lineage: f51eb675-74e7-440f-970f-3eb29de0b3ea
2026-06-21 13:25:40 -07:00
gsxdsm
e67dd11b50 FN-6829: dock todos as a project view
Convert Todos into the standard project right-content navigation surface.

- Route Todos through taskView state instead of modal manager state.
- Remove TodoModal wiring, styles, and tests while updating header, sidebar, mobile nav, and history coverage.
- Polish TodoView as a standalone content page with refreshed header and layout styling.
- Update dashboard and todo documentation for the full-view behavior.

Files changed:
 docs/dashboard-guide.md                            |   5 +-
 docs/todo-view.md                                  |   5 +-
 packages/dashboard/app/App.tsx                     |  30 ++---
 .../app/__tests__/lazy-loaded-views-docs.test.ts   |  10 +-
 packages/dashboard/app/components/AppModals.tsx    |  16 ---
 packages/dashboard/app/components/Header.tsx       |  12 +-
 .../dashboard/app/components/LeftSidebarNav.tsx    |   8 +-
 packages/dashboard/app/components/MobileNavBar.tsx |   8 +-
 packages/dashboard/app/components/TodoModal.css    |  76 ------------
 packages/dashboard/app/components/TodoModal.tsx    |  79 ------------
 packages/dashboard/app/components/TodoView.css     |  55 ++++++---
 packages/dashboard/app/components/TodoView.tsx     |  24 ++--
 .../app/components/__tests__/AppModals.test.tsx    |  56 ---------
 .../app/components/__tests__/Header.test.tsx       |  26 ++--
 .../components/__tests__/LeftSidebarNav.test.tsx   |   7 +-
 .../app/components/__tests__/MobileNavBar.test.tsx |  22 +++-
 .../app/components/__tests__/TodoModal.test.tsx    | 136 ---------------------
 .../__tests__/TodoView.mobile-css.test.ts          |   7 --
 .../app/components/__tests__/TodoView.test.tsx     |  11 +-
 ...-merge-toggle-blank.mobile-integration.test.tsx |   1 -
 .../__tests__/navigation-history.test.tsx          |  29 ++++-
 .../dashboard/app/hooks/useMobileScrollLock.ts     |   2 +-
 packages/dashboard/app/hooks/useModalManager.ts    |  10 --
 packages/dashboard/app/hooks/useViewState.ts       |   7 +-
 24 files changed, 161 insertions(+), 481 deletions(-)

Fusion-Task-Id: FN-6829

Fusion-Task-Lineage: b4034bf2-b8e2-47ec-be7c-11c320d2fc44
2026-06-21 13:25:40 -07:00
gsxdsm
12aae94447 FN-6813: add shadcn mono accent variants
Expand the shadcn theme family with mono accent variants and migrate the legacy mono id.

- Rename the legacy shadcn-mono theme path to shadcn-mono-red with compatibility migration.
- Add shadcn mono blue, green, purple, pink, orange, and yellow theme tokens and swatches.
- Keep Shadcn Gray registered alongside the expanded shadcn family after conflict resolution.
- Cover theme migration and option registration with hook tests and docs.

Files changed:
 .changeset/shadcn-mono-color-family.md             |   5 +
 docs/dashboard-guide.md                            |   2 +-
 packages/core/src/types.ts                         |  14 +-
 .../dashboard/app/components/ThemeSelector.css     |  90 ++-
 packages/dashboard/app/components/themeOptions.ts  |   8 +-
 .../dashboard/app/hooks/__tests__/useTheme.test.ts |  35 +-
 packages/dashboard/app/hooks/useTheme.ts           |  10 +-
 packages/dashboard/app/index.html                  |   4 +-
 packages/dashboard/app/public/theme-data.css       | 802 ++++++++++++++++++++-
 9 files changed, 947 insertions(+), 23 deletions(-)

Fusion-Task-Id: FN-6813
Fusion-Task-Lineage: c489300c-2131-4914-84f6-41b8e12929d3
2026-06-21 13:25:40 -07:00
gsxdsm
f13aaa1a99 FN-6722: expose resolved GitHub issues
Expose resolved GitHub issue details in Command Center analytics and exports.

- Add resolved issue rows to local GitHub issue analytics with exact-vs-approximate timestamp metadata.
- Render a resolved issues table in the Command Center GitHub area without empty links when issue URLs are missing.
- Include resolved issue details in CSV export, route coverage, dashboard tests, docs, and the release changeset.
- Quarantine the unrelated dashboard dev-server process timer flake observed during workspace verification under the deletion ratchet.

Files changed:
 ...fn-6722-command-center-resolved-issue-detail.md |   5 +
 docs/dashboard-guide.md                            |   3 +-
 .../src/__tests__/github-issue-analytics.test.ts   | 109 +++++++++++++++++++--
 packages/core/src/github-issue-analytics.ts        |  45 ++++++++-
 packages/core/src/index.ts                         |   1 +
 .../__tests__/CommandCenter.mobile-scroll.test.tsx |   4 +-
 .../__tests__/CommandCenter.test.tsx               |   1 +
 .../components/command-center/areas/GithubArea.tsx |  67 +++++++++++++
 .../command-center/areas/__tests__/areas.test.tsx  |  55 +++++++++++
 .../register-command-center-routes.test.ts         |  61 +++++++++++-
 packages/dashboard/src/command-center-csv.ts       |  39 +++++++-
 packages/dashboard/vitest.config.ts                |   7 +-
 scripts/lib/test-quarantine.json                   |   5 +
 13 files changed, 382 insertions(+), 20 deletions(-)

Fusion-Task-Id: FN-6722
Fusion-Task-Lineage: 9fcbd8c2-f1bc-4b86-b5f5-593e5fd0e675
2026-06-21 09:00:40 -07:00
gsxdsm
e18745b79e FN-6844: move engine controls to footer status bar
Move engine stop, pause, and scheduler tuning controls into the executor footer status bar.

- Add a footer EngineControlMenu popover with stop/start, pause/resume, and debounced concurrency/worktree sliders.
- Remove the engine controls from the dashboard header and wire the footer running-state text to open the controls.
- Update dashboard tests, English labels, and operator documentation for the footer control location.

Files changed:
 docs/dashboard-guide.md                            |   4 +
 packages/dashboard/app/App.tsx                     |   7 -
 .../app/__tests__/tablet-header-controls.test.tsx  |  21 +-
 .../dashboard/app/components/EngineControlMenu.css | 118 +++++++++
 .../dashboard/app/components/EngineControlMenu.tsx | 292 +++++++++++++++++++++
 .../dashboard/app/components/ExecutorStatusBar.css |  28 ++
 .../dashboard/app/components/ExecutorStatusBar.tsx |  25 +-
 packages/dashboard/app/components/Header.css       |  89 -------
 packages/dashboard/app/components/Header.tsx       |  81 +-----
 .../app/components/__tests__/App.test.tsx          | 132 ----------
 .../__tests__/EngineControlMenu.test.tsx           | 145 ++++++++++
 .../__tests__/ExecutorStatusBar.test.tsx           |  40 +++
 .../app/components/__tests__/Header.test.tsx       |  57 +---
 .../components/__tests__/MultiProjectFlow.test.tsx |   8 -
 .../app/components/__tests__/ResearchView.test.tsx |   4 -
 packages/i18n/locales/en/app.json                  |   5 +-
 16 files changed, 666 insertions(+), 390 deletions(-)

Fusion-Task-Id: FN-6844

Fusion-Task-Lineage: f0e17e3d-489e-483c-ba7d-a020c111231c
2026-06-21 09:00:40 -07:00
gsxdsm
4672203acd FN-6814: add Shadcn Gray theme variant
Adds a neutral Shadcn Gray dashboard color theme across selection, bootstrap, documentation, and release notes.

- Add Shadcn Gray to core theme validation and dashboard theme picker options.
- Define dark and light zinc-gray theme tokens plus matching swatch previews.
- Cover the new theme with regression tests and document the expanded theme count.

Files changed:
 .changeset/shadcn-gray-variant.md                  |   5 +
 docs/dashboard-guide.md                            |   2 +-
 packages/core/src/types.ts                         |   4 +-
 .../app/__tests__/shadcn-gray-theme.test.ts        |  65 ++++++++++
 .../dashboard/app/components/ThemeSelector.css     |  15 +++
 packages/dashboard/app/components/themeOptions.ts  |   2 +
 packages/dashboard/app/index.html                  |   2 +-
 packages/dashboard/app/public/theme-data.css       | 143 ++++++++++++++++++++-
 8 files changed, 228 insertions(+), 10 deletions(-)

Fusion-Task-Id: FN-6814

Fusion-Task-Lineage: 0548ad7a-5a3c-4e39-8dab-3eb5d40d84c1
2026-06-21 03:40:56 -07:00
gsxdsm
f030f73032 FN-6847: move sidebar collapse toggle into footer
Move the left sidebar collapse control into the footer so it sits above Settings with row-style behavior.

- Replace the floating border collapse button with a footer row button that keeps accessible expanded/collapsed labels.
- Retokenize collapse toggle CSS around shared sidebar item styling and remove the obsolete floating modifier.
- Extend sidebar tests and dashboard guide coverage for the footer placement and collapsed rail behavior.

Files changed:
 docs/dashboard-guide.md                            |  4 +-
 .../dashboard/app/components/LeftSidebarNav.css    | 24 ++--------
 .../dashboard/app/components/LeftSidebarNav.tsx    | 32 ++++++-------
 .../components/__tests__/LeftSidebarNav.test.tsx   | 54 ++++++++++++++++++++--
 4 files changed, 72 insertions(+), 42 deletions(-)

Fusion-Task-Id: FN-6847

Fusion-Task-Lineage: 5d7781a1-afc9-4e5c-bf7b-0648bb874285
2026-06-21 03:40:56 -07:00
gsxdsm
0a04feec93 FN-6825: combine workflow actions in switcher
Move workflow edit and creation actions into the shared workflow switcher dropdown.

- Add inline edit buttons for workflow options and a persistent New workflow footer action.
- Remove separate board and list workflow toolbar icon buttons while preserving header portal behavior.
- Update workflow switcher styling, translations, docs, and regression coverage for board/list surfaces.

Files changed:
 docs/dashboard-guide.md                            |  8 +--
 packages/dashboard/app/App.tsx                     |  1 +
 packages/dashboard/app/components/Board.tsx        | 52 ++++----------
 packages/dashboard/app/components/Lane.css         |  4 --
 packages/dashboard/app/components/ListView.tsx     | 44 +++++-------
 .../dashboard/app/components/WorkflowSwitcher.css  | 60 +++++++++++++---
 .../dashboard/app/components/WorkflowSwitcher.tsx  | 80 +++++++++++++++++----
 .../app/components/__tests__/Board.test.tsx        | 62 +++++++++-------
 .../app/components/__tests__/ListView.test.tsx     | 27 +++++--
 .../components/__tests__/WorkflowSwitcher.test.tsx | 84 ++++++++++++++++++++++
 packages/i18n/locales/en/app.json                  |  4 +-
 packages/i18n/locales/es/app.json                  |  4 +-
 packages/i18n/locales/fr/app.json                  |  4 +-
 packages/i18n/locales/ko/app.json                  |  4 +-
 packages/i18n/locales/zh-CN/app.json               |  4 +-
 packages/i18n/locales/zh-TW/app.json               |  4 +-
 16 files changed, 314 insertions(+), 132 deletions(-)

Fusion-Task-Id: FN-6825
Fusion-Task-Lineage: 87754918-a695-4e4e-bba5-833e74f7f92f
2026-06-20 23:43:13 -07:00
gsxdsm
5d3f63e875 FN-6818: keep Activity line markers circular
Use uniform SVG scaling so Command Center Activity line charts preserve proportional geometry.\n\n- Switch the shared hand-rolled LineChart from non-uniform stretching to centered uniform scaling.\n- Cover marker distortion invariants in chart and Activity area tests.\n- Document the Activity chart rendering invariant for desktop and mobile layouts.\n\nFiles changed:\n docs/dashboard-guide.md                            |  1 +\n .../command-center/__tests__/charts.test.tsx       | 22 ++++++++++++++++++++++\n .../command-center/areas/__tests__/areas.test.tsx  | 12 ++++++++++++\n .../components/command-center/charts/LineChart.tsx |  5 ++++-\n .../components/command-center/charts/charts.css    |  3 +++\n 5 files changed, 42 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6818

Fusion-Task-Lineage: 304dc64b-688d-42e4-ba7f-c7db16c49de9
2026-06-20 23:24:57 -07:00
gsxdsm
34b555f5d2 FN-6824: move workflow controls into header
Move workflow controls into the header when sidebar navigation is active.

- Add a Header portal slot that replaces the hidden view toggle under left sidebar navigation.
- Portal Board workflow selector, edit, and create controls into the Header slot with inline fallback.
- Portal List workflow selector and create controls into the Header slot without adding edit controls.
- Cover relocated and inline workflow control behavior for Board, Header, and List views.

Files changed:
 docs/dashboard-guide.md                            |   2 +
 packages/dashboard/app/App.tsx                     |   2 +
 packages/dashboard/app/components/Board.tsx        |  99 ++++++++++++-------
 packages/dashboard/app/components/Header.css       |  34 +++++++
 packages/dashboard/app/components/Header.tsx       |  11 +++
 packages/dashboard/app/components/ListView.tsx     |  25 ++++-
 .../app/components/__tests__/Board.test.tsx        |  77 +++++++++++++++
 .../app/components/__tests__/Header.test.tsx       |  21 ++++
 .../app/components/__tests__/ListView.test.tsx     | 109 +++++++++++++++++++++
 9 files changed, 342 insertions(+), 38 deletions(-)

Fusion-Task-Id: FN-6824

Fusion-Task-Lineage: 01611a6c-2894-4f19-a5f8-262609528f49
2026-06-20 23:02:52 -07:00
gsxdsm
3c6db08270 FN-6805: color workflow counts by column
Align workflow switcher status count badges with their board column colors.

- Map Todo, In Progress, and Done workflow count badge text to the matching board column CSS tokens.
- Cover the badge color contract with a CSS fixture regression test.
- Document the color-token behavior for board and list workflow dropdown counts.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 .../dashboard/app/components/WorkflowSwitcher.css  | 10 +++++++---
 .../components/__tests__/WorkflowSwitcher.test.tsx | 22 ++++++++++++++++++++++
 3 files changed, 30 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-6805

Fusion-Task-Lineage: aab7140c-ad37-4bd8-b73d-199534285b37
2026-06-20 21:16:16 -07:00
gsxdsm
5d9162e138 FN-6806: show workflow counts only when expanded
Keep workflow dropdown triggers compact until the menu opens.

- Hide Todo, In Progress, and Done count badges from the collapsed workflow switcher trigger.
- Preserve active-workflow and option counts while the dropdown is expanded for comparison.
- Update Board, List, switcher tests, and dashboard docs for the expanded-only count behavior.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 .../dashboard/app/components/WorkflowSwitcher.tsx  |  8 +++--
 .../app/components/__tests__/Board.test.tsx        |  3 +-
 .../app/components/__tests__/ListView.test.tsx     |  5 ++-
 .../components/__tests__/WorkflowSwitcher.test.tsx | 36 +++++++++++++++++-----
 5 files changed, 41 insertions(+), 13 deletions(-)

Fusion-Task-Id: FN-6806

Fusion-Task-Lineage: a3c2db33-fe08-4207-9aae-548b292d98bd
2026-06-20 20:36:18 -07:00
gsxdsm
c8c76a2d1b FN-6801: float sidebar collapse toggle
Replace the sidebar brand-row collapse control with a floating border toggle.\n\n- Remove the empty sidebar brand shell and keep the collapse control reachable in both expanded and rail modes.\n- Style the collapse button as a floating affordance on the sidebar edge.\n- Cover the missing brand shell, accessible toggle labels, pressed state, and persisted collapsed state in sidebar tests.\n- Update dashboard documentation to describe the border-mounted toggle.\n\nFiles changed:\n docs/dashboard-guide.md                            |  2 +-\n .../dashboard/app/components/LeftSidebarNav.css    | 30 +++++++++++-----------\n .../dashboard/app/components/LeftSidebarNav.tsx    | 28 ++++++++++----------\n .../components/__tests__/LeftSidebarNav.test.tsx   | 27 +++++++++++++++++++\n 4 files changed, 56 insertions(+), 31 deletions(-)

Fusion-Task-Id: FN-6801

Fusion-Task-Lineage: e1384565-c0cc-4564-b556-f5b74a501c41
2026-06-20 19:08:50 -07:00
gsxdsm
36b8950dbe FN-6804: carry workflow selection into planning creates
Planning and subtask creation now preserve the workflow lane chosen from dashboard task entry points.

- Thread optional workflow IDs through quick entry, modal state, planning mode, and subtask breakdown flows.
- Apply supplied or parent-derived workflow IDs when creating planning and breakdown tasks, including validation errors for invalid workflow selections.
- Cover workflow-aware task creation and quick-entry modal handoff with regression tests and document the dashboard behavior.

Files changed:
 .changeset/planning-subtask-workflow-selection.md  |   5 +
 docs/dashboard-guide.md                            |   2 +
 packages/dashboard/app/App.tsx                     |   8 +-
 packages/dashboard/app/api/legacy.ts               |   6 +
 packages/dashboard/app/components/AppModals.tsx    |   2 +
 packages/dashboard/app/components/Board.tsx        |   4 +-
 packages/dashboard/app/components/Column.tsx       |   5 +-
 .../dashboard/app/components/InlineCreateCard.tsx  |  20 ++-
 packages/dashboard/app/components/Lane.tsx         |   4 +-
 packages/dashboard/app/components/ListView.tsx     |   4 +-
 .../dashboard/app/components/PlanningModeModal.tsx |  18 +-
 .../dashboard/app/components/QuickEntryBox.tsx     |  24 ++-
 .../app/components/SubtaskBreakdownModal.tsx       |  20 ++-
 packages/dashboard/app/components/TaskForm.tsx     |   4 +-
 .../components/__tests__/QuickEntryBox.test.tsx    |  34 ++++
 packages/dashboard/app/hooks/useModalManager.ts    |  26 ++-
 .../planning-subtask-create-workflow-route.test.ts | 192 +++++++++++++++++++++
 .../src/routes/register-planning-subtask-routes.ts |  72 ++++++--
 18 files changed, 398 insertions(+), 52 deletions(-)

Fusion-Task-Id: FN-6804
Fusion-Task-Lineage: ca03e666-2dd4-4983-8c84-c5540f5adb0b
2026-06-20 18:04:02 -07:00
gsxdsm
da5fea6e11 FN-6756: add Shadcn color theme variants
Add the Shadcn color family to dashboard theme selection and persisted theme validation.

- Register blue, green, red, purple, pink, orange, yellow, mono, and black Shadcn theme IDs across core and dashboard selectors.
- Add swatches and CSS token blocks for light and dark variants, including bootstrap loading coverage.
- Document the expanded theme count and include a minor changeset for the published CLI package.

Files changed:
 .changeset/shadcn-color-variants.md                |    5 +
 docs/dashboard-guide.md                            |    2 +-
 packages/core/src/types.ts                         |   10 +
 .../dashboard/app/components/ThemeSelector.css     |  126 +++
 packages/dashboard/app/components/themeOptions.ts  |    9 +
 .../dashboard/app/hooks/__tests__/useTheme.test.ts |   41 +
 packages/dashboard/app/index.html                  |    2 +-
 packages/dashboard/app/public/theme-data.css       | 1177 ++++++++++++++++++++
 8 files changed, 1370 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-6756

Fusion-Task-Lineage: 143e717a-9718-419f-a6c5-34305e53c65d
2026-06-20 17:17:32 -07:00
gsxdsm
c808177979 FN-6776: prevent workflow board legacy flash
Prevent workflow-enabled board surfaces from flashing the legacy layout during first paint.

- Hydrate Board and ListView workflow metadata from a per-project session cache before async revalidation.
- Gate legacy board/list rendering behind settings and workflow-lane metadata readiness, with neutral skeleton states for cold or empty workflow loads.
- Add regression coverage for no-legacy-flash behavior and cache validation, plus docs and changeset notes.

Files changed:
 .changeset/fn-6776-board-flash.md                  |   5 +
 docs/dashboard-guide.md                            |   1 +
 packages/dashboard/app/App.tsx                     |   4 +
 packages/dashboard/app/components/Board.css        |  69 +++++
 packages/dashboard/app/components/Board.tsx        |  53 +++-
 packages/dashboard/app/components/ListView.css     |  53 ++++
 packages/dashboard/app/components/ListView.tsx     |  52 +++-
 .../__tests__/board-no-legacy-flash.test.tsx       | 326 +++++++++++++++++++++
 .../utils/__tests__/boardWorkflowsCache.test.ts    |  71 +++++
 .../dashboard/app/utils/boardWorkflowsCache.ts     |  49 ++++
 10 files changed, 676 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-6776

Fusion-Task-Lineage: caa8e53f-9b6d-49a6-94ca-b694550b43ef
2026-06-20 15:42:16 -07:00
gsxdsm
adbb1bbaaf FN-6787: remove duplicate sidebar branding
Keep project identity controls in the Header while preserving sidebar navigation behavior.

- Remove the Fusion logo, wordmark, and project selector from the experimental left sidebar.
- Keep the sidebar collapse control reachable in expanded and collapsed modes.
- Update sidebar tests and dashboard docs to cover the simplified navigation surface.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 .../dashboard/app/components/LeftSidebarNav.css    | 35 +-----------
 .../dashboard/app/components/LeftSidebarNav.tsx    | 33 ++----------
 .../components/__tests__/LeftSidebarNav.test.tsx   | 63 +++++++++++++++++++++-
 4 files changed, 67 insertions(+), 66 deletions(-)

Fusion-Task-Id: FN-6787
Fusion-Task-Lineage: 18321939-4a68-48c2-bdbe-18e69e198a57
2026-06-20 04:19:48 -07:00
gsxdsm
d2c7ff5f95 FN-6751: show idle task chat warning
Make task-detail chat disclose when sent guidance will not receive an immediate agent reply.

- Add an idle session hint for non-done tasks without an active steerable agent while keeping the composer sendable.
- Style the idle hint with warning color and expose a stable test id for regression coverage.
- Expand TaskChatTab tests across inline, expanded, empty, populated, paused, and non-live session states.
- Document the idle saved-guidance behavior in the dashboard guide.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/components/TaskChatTab.css  |  5 ++
 packages/dashboard/app/components/TaskChatTab.tsx  | 13 ++-
 .../app/components/__tests__/TaskChatTab.test.tsx  | 95 +++++++++++++++++++---
 4 files changed, 99 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-6751

Fusion-Task-Lineage: 21f0764d-23db-49ca-b737-3b6a8be7a918
2026-06-20 02:56:51 -07:00
gsxdsm
7eceec00cc FN-6763: add themed workflow status switcher
Add a reusable dashboard workflow picker that shows inline task status counts across board and list views.

- Replace native workflow selects with a themed accessible dropdown component.
- Share workflow status count calculation between board and list views.
- Add styling, i18n labels, tests, and dashboard docs for the switcher behavior.

Files changed:
 docs/dashboard-guide.md                            |   3 +-
 packages/dashboard/app/components/Board.tsx        |  28 +--
 packages/dashboard/app/components/Lane.css         |   2 +
 .../dashboard/app/components/LeftSidebarNav.tsx    |   2 +-
 packages/dashboard/app/components/ListView.css     |  17 --
 packages/dashboard/app/components/ListView.tsx     |  31 ++-
 .../dashboard/app/components/WorkflowSwitcher.css  | 186 ++++++++++++++
 .../dashboard/app/components/WorkflowSwitcher.tsx  | 270 +++++++++++++++++++++
 .../app/components/__tests__/Board.test.tsx        |  60 +++--
 .../app/components/__tests__/ListView.test.tsx     |  79 +++++-
 .../components/__tests__/WorkflowSwitcher.test.tsx |  92 +++++++
 .../__tests__/workflowStatusCounts.test.ts         | 122 ++++++++++
 .../app/components/workflowStatusCounts.ts         |  54 +++++
 packages/i18n/locales/en/app.json                  |   9 +
 packages/i18n/locales/es/app.json                  |   9 +
 packages/i18n/locales/fr/app.json                  |   9 +
 packages/i18n/locales/ko/app.json                  |   9 +
 packages/i18n/locales/zh-CN/app.json               |   9 +
 packages/i18n/locales/zh-TW/app.json               |   9 +
 19 files changed, 930 insertions(+), 70 deletions(-)

Fusion-Task-Id: FN-6763
Fusion-Task-Lineage: 3503ea85-841a-4cd3-9960-1b22ef2cd4ea
2026-06-20 02:08:36 -07:00
gsxdsm
58a6dccfb2 FN-6758: set shadcn theme accent orange
Update the default shadcn dashboard theme to use orange highlight accents while keeping its neutral base.\n\n- Set dark and light shadcn accent tokens and accent text for orange highlights.\n- Update shadcn theme swatches and documentation to reflect the orange accent.\n- Adjust theme tests to assert the orange accent token and preserved glow neutralization.\n\nFiles changed:\n docs/dashboard-guide.md                                 |  2 +-\n packages/dashboard/app/components/ThemeSelector.css     |  4 ++--\n packages/dashboard/app/hooks/__tests__/useTheme.test.ts | 12 ++++++++----\n packages/dashboard/app/public/theme-data.css            | 11 +++++++----\n 4 files changed, 18 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-6758

Fusion-Task-Lineage: b4fe5a6d-416e-4cd1-be57-7e6da5a07f59
2026-06-20 01:43:20 -07:00