Adds an executing-task picker so dev server previews can run against in-progress task worktrees.
- Pass live task data into the Dev Server view from the main app and overflow dock.
- List in-progress tasks with worktrees, show the selected task descriptor, and prefer its worktree when starting the server.
- Fall back to the legacy start endpoint when an explicit cwd override is needed.
- Cover the picker, descriptor, cwd selection, restart guidance, and empty-state behavior with dashboard tests.
- Document task-targeted dev server previews in the dashboard guide.
Files changed:
docs/dashboard-guide.md | 1 +
packages/dashboard/app/App.tsx | 2 +-
.../dashboard/app/components/DevServerView.css | 61 +++++++++
.../dashboard/app/components/DevServerView.tsx | 85 +++++++++++-
.../components/__tests__/DevServerView.test.tsx | 146 +++++++++++++++++++++
.../app/components/overflowViewRegistry.tsx | 2 +-
packages/dashboard/app/hooks/useDevServer.ts | 13 +-
7 files changed, 303 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-6926
Fusion-Task-Lineage: beb05a39-c9f1-4017-afcd-a8d361ef232c
Refresh the weekly test velocity report with the latest captured baseline.
- Update the latest baseline timestamp, metric deltas, quarantine counts, and #leads posting text.
- Append the 2026-06-23 test velocity history row with wall times and slowest test files.
Files changed:
docs/test-velocity-baseline.md | 20 +++----
scripts/test-velocity-history.json | 111 +++++++++++++++++++++++++++++++++++++
2 files changed, 121 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-6948
Fusion-Task-Lineage: 7b2d265a-b6c9-494c-aa87-31ae2c71c5f0
Remove the orphaned session-cross-tab quarantine ledger entry after confirming the test remains active and rescued.
- Document FN-6937's rescue proof and ledger/config lockstep expectation in testing guidance.
- Keep the dashboard Vitest quarantine list empty with a note explaining the stale ledger-only cleanup.
- Remove the session-cross-tab row from the flaky-test quarantine ledger.
Files changed:
docs/testing.md | 8 ++++++--
packages/dashboard/vitest.config.ts | 3 +++
scripts/lib/test-quarantine.json | 8 +-------
3 files changed, 10 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6937
Fusion-Task-Lineage: 34a67bf3-2a7f-49ea-93ab-68fadc81f893
Refresh the documentation to match the reshuffled dashboard navigation model.
- Clarify that desktop/tablet content destinations live in the left sidebar while inline tools live in the right dock.
- Update Planning, Import Tasks, Git Manager Recovery, and plugin view navigation instructions across docs.
- Remove stale Header overflow, duplicate dock/sidebar, and standalone Stash Recovery wording.
Files changed:
docs/architecture.md | 2 +-
docs/dashboard-guide.md | 55 +++++++++++++++++++++++++++----------------------
docs/getting-started.md | 4 ++--
docs/task-management.md | 4 ++--
4 files changed, 35 insertions(+), 30 deletions(-)
Fusion-Task-Id: FN-6897
Fusion-Task-Lineage: d0009a23-c197-4c1b-8c54-5fe4a8dca03c
- Resolve the stash-pop conflicts in command-center CSS/test by keeping the current branch's newer FN-6784 responsive clamps, Team heartbeat docs, and recharts assertions (the stashed snapshot was older).
- Land the stashed workflow-selection refactor (Board/NewTaskModal/WorkflowSwitcher; remove lastSelectedWorkflow util).
- Rename Command Center -> Dashboard (i18n source) and move it to the top of the left sidebar; workflow switcher chevron sized to match the project selector.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
New Task now inherits the project's current or last valid workflow lane.
- Persist explicit Board and List workflow switcher selections per project.
- Seed the New Task workflow selector from the cached valid lane without marking the pristine dialog dirty.
- Preserve default-workflow inheritance when no remembered lane exists or the remembered lane was deleted.
- Cover quick-add parity, workflow defaulting, stale-lane fallback, and storage helper behavior in tests.
- Document New Task workflow selector defaulting in the dashboard guide.
Files changed:
docs/dashboard-guide.md | 2 +
packages/dashboard/app/components/Board.tsx | 12 +-
packages/dashboard/app/components/ListView.tsx | 12 +-
packages/dashboard/app/components/NewTaskModal.tsx | 21 ++-
.../app/components/__tests__/NewTaskModal.test.tsx | 142 ++++++++++++++++++++-
.../utils/__tests__/lastSelectedWorkflow.test.ts | 67 ++++++++++
.../dashboard/app/utils/lastSelectedWorkflow.ts | 31 +++++
7 files changed, 279 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-6923
Fusion-Task-Lineage: 6e3c8efd-3865-4975-a754-2f0d5ff89ab0
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
Add a non-measured build setup step so velocity baselines do not misclassify missing dist artifacts as lane time.
- Run a default `pnpm build` preflight before measured test velocity lanes, with an explicit skip flag for pre-built CI.
- Add injectable command-runner coverage for preflight ordering, failure reporting, and skip behavior.
- Document the preflight behavior in the generated baseline report and testing docs.
Files changed:
docs/test-velocity-baseline.md | 2 +
docs/testing.md | 4 +-
scripts/__tests__/test-velocity-baseline.test.mjs | 159 ++++++++++++++++++++++
scripts/test-velocity-baseline.mjs | 38 +++++-
4 files changed, 195 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-6905
Fusion-Task-Lineage: 3016a542-4395-4d06-9f2e-1a91f4939e07
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
Refresh the weekly test velocity report with the latest captured baseline data.
- Advance the documented baseline from 2026-W25 to 2026-W26.
- Record the latest gate, changed-only test, quarantine, and boot-smoke measurement status.
- Append the new measurement row to the persisted test velocity history.
Files changed:
docs/test-velocity-baseline.md | 22 +++----
scripts/test-velocity-history.json | 116 +++++++++++++++++++++++++++++++++++++
2 files changed, 127 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-6901
Fusion-Task-Lineage: 06f42104-b3c5-4a26-86ee-fb2791f7006d
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
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
Make runAiMerge (the FN-5633 clean-room AI merge path, already the default)
the sole merge path; soft-deprecate the legacy aiMergeTask pipeline. Phase 0
of the workspace-mode master plan — a standalone merge-consolidation refactor
that lands first so downstream workspace work targets one merge function.
U1 — collapse the dispatch: project-engine.ts now calls runAiMerge
unconditionally; the two direct callers that bypassed the dispatch
(dashboard.ts onMergeImpl in --no-engine mode, task.ts runTaskMerge /
`fn task merge`) now route to runAiMerge too. Export runAiMerge from
@fusion/engine.
U2 — soft-deprecate: aiMergeTask is @deprecated (body retained for a later
deletion pass; shared helpers runAiMerge imports, e.g.
captureSingleCommitLandedMetadata, left intact). merger.mode "deterministic"
is annotated deprecated and made inert (type + field kept — published
@runfusion/fusion surface); the dispatch logs a one-time deprecation warning
and routes to runAiMerge. Changeset added (minor).
U3 — R7 workspace merge-boundary guard: shared @fusion/core predicate
assertNotWorkspaceTaskMerge(task) rejects tasks with populated
workspaceWorktrees at all four merge entry points (dispatch, store.mergeTask,
onMergeImpl, runTaskMerge) with an error naming master-plan U6. Covers the
window until per-repo merge support lands; U6 removes it.
U4 — deterministic-mode blast-radius audit: no production project, CI config,
or seeded setting pins merger.mode "deterministic"; only four engine tests
used it to drive the dispatch to aiMergeTask as a mockable seam — migrated to
mock runAiMerge instead. Other module-level aiMergeTask mocks were dead under
the default "ai" mode or test aiMergeTask directly (body retained), so they
are unaffected.
Also removes an unused acquireWorkspaceRepoWorktree import inherited from the
foundation branch (executor.ts) that was failing lint; master-plan U1 re-adds
it with its per-repo usage.
Merge gate green: lint, typecheck (29 projects), build, test:gate
(649 + 58), plus the migrated (114) and new predicate (4) tests.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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
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
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
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