gsxdsm
b591430e12
docs(workspace): Phase D plan (U8/U9 self-healing + e2e), forks resolved
2026-06-22 01:19:29 -07:00
gsxdsm
edd79a87dc
docs(workspace): Phase C plan — per-repo merge loop (U5/U6/U7), forks resolved
2026-06-21 23:15:38 -07:00
gsxdsm
0367fa54d9
docs(workspace): Phase B implementation plan (U3/U4)
2026-06-21 22:44:53 -07:00
gsxdsm
1fa3691f1f
docs(workspace): Phase A implementation plan (U1/U2/U10)
2026-06-21 21:07:32 -07:00
gsxdsm
a6252e518d
refactor(merger): unify on runAiMerge as the sole merge path (U0)
...
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 >
2026-06-21 18:58:06 -07:00
gsxdsm
7e478fb473
Merge pull request #1703 from Runfusion/gsxdsm/workflow-optional-steps
...
feat(dashboard): workflow optional steps — authoring, full-modal parity, stepwise seam
2026-06-21 09:04:39 -07:00
gsxdsm
c7b56a5ab7
FN-6832: preserve default workflow routing
...
Preserve the default workflow unless users explicitly request workflow routing changes.
- Update triage and fast-planning prompt guidance to stop inferring alternate workflows from task type or no-commit markers.
- Refresh workflow docs and prompt tests to assert explicit-request-only workflow selection.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6832-workflow-routing.md | 5 +++++
docs/workflow-steps.md | 5 ++++-
packages/core/src/agent-prompts.ts | 20 +++++++++++++-------
.../src/__tests__/triage-threshold-settings.test.ts | 7 +++++--
packages/engine/src/__tests__/triage.test.ts | 13 +++++--------
5 files changed, 32 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-6832
Fusion-Task-Lineage: 5a7ad103-2081-4c4c-ac32-fd5e4f6adfda
2026-06-21 09:00: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
c18e827b90
FN-6839: await CLI cached store shutdown
...
Rescue the retained CLI quarantine by making TaskStore shutdown deterministic before fixture cleanup.
- Await cached extension TaskStore closes and clear the cache before asynchronous shutdown drains.
- Update CLI fixtures to await direct and cached store closure, with a regression proving cached close is awaited.
- Remove rescued CLI quarantine entries/excludes and document the loaded-suite rescue with a patch changeset.
Files changed:
.changeset/fn-6839-close-cached-stores.md | 5 ++
CLAUDE.md | 1 +
docs/testing.md | 4 ++
.../extension-agent-set-instructions.test.ts | 2 +-
.../__tests__/extension-goal-tools-audit.test.ts | 2 +-
.../cli/src/__tests__/extension-goal-tools.test.ts | 2 +-
.../cli/src/__tests__/extension-insights.test.ts | 6 +--
.../__tests__/extension-mission-goal-tools.test.ts | 2 +-
.../cli/src/__tests__/extension-task-tools.test.ts | 16 ++++---
packages/cli/src/__tests__/extension.test.ts | 56 +++++++++++-----------
.../src/__tests__/research-extension-tools.test.ts | 4 +-
packages/cli/src/extension.ts | 16 +++----
packages/cli/vitest.config.ts | 6 +--
scripts/lib/test-quarantine.json | 15 ------
14 files changed, 68 insertions(+), 69 deletions(-)
Fusion-Task-Id: FN-6839
Fusion-Task-Lineage: ea0c7c77-bb59-4db4-931d-5e052a1043e5
2026-06-21 09:00:40 -07:00
gsxdsm
fbce59b707
FN-6777: add artifact registry storage
...
Add a core artifact registry for storing metadata and task-scoped artifact payloads.\n\n- Add artifact types, schema, migrations, store APIs, and exports for registering/listing artifact metadata.\n- Persist binary artifact payloads under task or project artifact directories and hydrate artifacts during worktree acquisition.\n- Cover registry behavior, DB schema, and worktree hydration with tests and document storage semantics.\n\nFiles changed:\n .changeset/fn-6777-artifact-registry.md | 5 +\n docs/storage.md | 8 +\n packages/core/src/__tests__/artifacts.test.ts | 257 +++++++++++++++++++++\n packages/core/src/__tests__/db.test.ts | 5 +\n packages/core/src/db.ts | 59 ++++-\n packages/core/src/index.ts | 2 +-\n packages/core/src/store.ts | 220 +++++++++++++++++-\n packages/core/src/types.ts | 75 ++++++\n .../engine/src/__tests__/executor-test-helpers.ts | 1 +\n .../engine/src/__tests__/executor-worktree.test.ts | 2 +\n .../__tests__/worktree-acquisition-backend.test.ts | 2 +-\n .../worktree-acquisition-secrets-env.test.ts | 2 +-\n .../worktree-acquisition-worktrunk.test.ts | 2 +-\n .../src/__tests__/worktree-acquisition.test.ts | 2 +-\n .../src/__tests__/worktree-db-hydrate.test.ts | 59 +++++\n packages/engine/src/worktree-acquisition.ts | 2 +-\n packages/engine/src/worktree-db-hydrate.ts | 42 +++-\n 17 files changed, 732 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-6777
Fusion-Task-Lineage: 42cdcdcf-6388-42fe-8de1-6857ef20839d
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
cb64e874de
docs: enrich engine singleton-lock learning after PR #1704 review
...
- Fix frontmatter enums (root_cause: logic_error, component: tooling); add #1699
to related_prs and last_updated
- Reflect post-review behavior: external marker cleared at lock-acquire time;
reconcile/startAll/onProjectAccessed swallow EngineAlreadyRunningError
- Add rejected approach (don't merge has()/hasRunningEngine) and the
keep-them-distinct invariant
- Tighten socket-name detail (sha1[:16]); cross-link the browser-testing doc
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-21 03:35:16 -07:00
gsxdsm
7d312b416d
docs: capture engine singleton-lock learning (EngineAlreadyRunningError != no engine)
...
Document the false "engine not running" banner root cause and fix as a
docs/solutions learning, and add an "Engine Singleton Lock" entry to
CONCEPTS.md: a failed per-machine lock acquisition is proof an engine is
running elsewhere, not "no engine."
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-21 03:15:22 -07:00
gsxdsm
9479f0b313
docs(solutions): capture eslint exhaustive-deps CI-lint gotcha
2026-06-21 03:10:21 -07:00
gsxdsm
275e97edc1
Merge pull request #1699 from Runfusion/codex/start-engines-by-default
...
[codex] Start Fusion engines by default
2026-06-21 02:35:13 -07:00
gsxdsm
eafe6f7b28
Merge pull request #1696 from Runfusion/gsxdsm/ce-workflow-skill-loading
...
fix: make the compound-engineering workflow actually load skills and run the full CE flow
2026-06-21 02:04:17 -07:00
gsxdsm
40cea655b8
Merge main into validator behavioral verification
...
Resolve conflicts from main's analytics schema additions (plugin
activations, per-model token buckets) against the PR's contract-assertion
type column:
- db.ts: renumber behavioral-verification migration 124 -> 126, bump
SCHEMA_VERSION to 126 so it follows main's migrations 124/125
- core/roadmap tests: adopt main's SCHEMA_VERSION-constant assertions
instead of stale literal 124
- test-quarantine.json: keep all four quarantine entries from both sides
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-21 00:22:19 -07:00
gsxdsm
d4e91d4597
feat(core): add workflow-step seam + browser-verification optional step to stepwise workflow
...
The stepwise-coding IR had no workflow-step seam node, so a per-task
enabledWorkflowSteps entry (e.g. browser verification) would never execute.
Add the seam node on the success path (steps -> workflow-step -> review,
once post-foreach) and declare browser-verification as an optional step,
matching the coding workflow. Covers the dead-toggle gap with resolver and
engine execution-divergence tests.
2026-06-21 00:02:31 -07:00
gsxdsm
7ef381762a
feat: start engines by default
2026-06-20 23:57:37 -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
56ea618d72
docs(plans): add compound-engineering workflow skill-loading plan
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-20 23:01:09 -07:00
gsxdsm
9af9bf4fd9
docs(plans): add Full Suite engine/core watchdog-budget fix plan
2026-06-20 21:54:10 -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
c766bc9c95
FN-6811: keep terminal symbols out of xterm metrics
...
Keep terminal symbol fonts scoped away from xterm's measured text stacks across modal and session surfaces.
- add a scoped symbols @font-face to the session terminal CSS chunk
- defensively strip the symbols font from resolved xterm font-family presets
- expand modal, session, and CSS regression tests for symbols-free measurement and scoped glyph fallback
- document recurrence #6 and the remaining real-device iOS Safari verification gap
Files changed:
.../xterm-symbols-nerd-font-unicode-range.md | 13 ++++--
.../dashboard/app/__tests__/terminal-input.test.ts | 51 ++++++++++++++++++----
.../dashboard/app/components/SessionTerminal.css | 11 +++++
.../dashboard/app/components/TerminalModal.css | 3 ++
.../components/__tests__/SessionTerminal.test.tsx | 3 ++
.../components/__tests__/TerminalModal.test.tsx | 47 ++++++++++++++++++--
.../dashboard/app/utils/terminalPreferences.ts | 17 ++++++--
7 files changed, 127 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-6811
Fusion-Task-Lineage: 15a6fc1f-34c6-44d4-b9ea-8b5b3baae267
2026-06-20 21:02:51 -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
08d1f09107
FN-6796: preserve benign in-review pause aborts
...
Preserve completed in-review tasks when benign pause/resume aborts surface after executor handoff.
- Detect non-user hard-cancel pause aborts on clean completed in-review rows and clear the transient abort marker without moving the task.
- Let self-healing recover persisted safe in-review pause-abort parks in place while keeping hard-cancel, pause, autoMerge:false, terminal merge, and live-execution guards intact.
- Cover executor and self-healing recovery paths with regression tests, document the audit metadata, and add a patch changeset.
Files changed:
.../fn-6796-pause-resume-in-review-recovery.md | 5 ++
AGENTS.md | 1 +
docs/architecture.md | 2 +
.../engine/src/__tests__/executor-recovery.test.ts | 97 +++++++++++++++++++++-
.../active-worktree-removal-liveness.test.ts | 2 +-
.../self-healing-paused-abort-recovery.test.ts | 90 +++++++++++++++++++-
packages/engine/src/executor.ts | 35 ++++++++
packages/engine/src/self-healing.ts | 38 +++++++--
8 files changed, 257 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-6796
Fusion-Task-Lineage: d2fe6c6d-c118-4f2f-b19e-58e6f1b29384
2026-06-20 15:11:22 -07:00
gsxdsm
b2f564c2be
FN-6791: add i18n regression guardrails
...
Add focused i18n regression coverage for dashboard localization guardrails.
- Assert dashboard hardcoded-string lint ignores stay limited to non-shipping patterns.
- Verify real locale catalogs retain key parity across supported locales and namespaces.
- Cover fallback behavior for empty secondary translations, missing keys, unsupported locale tags, and Chinese locale normalization.
- Document that @fusion/i18n tests now protect lint-ignore scope and catalog parity drift.
Files changed:
docs/i18n-contributing.md | 2 +
.../i18n/src/__tests__/i18n-gate-coverage.test.ts | 65 +++++++++++++++++++
.../i18n/src/__tests__/locale-fallback.test.ts | 72 ++++++++++++++++++++++
3 files changed, 139 insertions(+)
Fusion-Task-Id: FN-6791
Fusion-Task-Lineage: 7f52113e-237a-415d-a109-51295fdc0372
2026-06-20 11:02:55 -07:00
gsxdsm
c0d78f19c5
FN-6795: update quarantine ledger after rescue triage
...
Refresh the test quarantine records after loaded-lane rescue verification.
- document the FN-6795 CLI and core quarantine triage outcomes
- rescue passing core and CLI test files by removing their ledger/config excludes
- retain CLI package-lane-only timeout quarantines and add the newly observed bin test flake
Files changed:
docs/testing.md | 4 ++++
packages/cli/vitest.config.ts | 10 +++++++---
packages/core/vitest.config.ts | 4 +++-
scripts/lib/test-quarantine.json | 25 +++++--------------------
4 files changed, 19 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-6795
Fusion-Task-Lineage: b4460fc7-848f-4d54-89b4-cfd4d4533d57
2026-06-20 10:28:25 -07:00
gsxdsm
61ff17a057
FN-6797: harden in-review dependency rebound audits
...
Harden in-review dependency drift reconciliation with explicit guarded no-action audit evidence.
- Emit no-action run-audit events when pause, auto-merge, live execution, checkout, or rebound mutation guards prevent an in-review dependency rebound.
- Preserve scheduler dependency satisfaction semantics so in-review dependencies remain non-blocking under merge-request shadow mode without accepted markers.
- Extend regression coverage and run-audit documentation for guarded in-review rebounds.
Files changed:
.changeset/fn-6797-in-review-dependency-drift.md | 5 +
AGENTS.md | 2 +-
docs/architecture.md | 4 +-
.../in-review-unmet-dependency-reconcile.test.ts | 18 ++-
packages/engine/src/__tests__/self-healing.test.ts | 79 +++++++++++--
packages/engine/src/self-healing.ts | 129 ++++++++++++++++-----
6 files changed, 190 insertions(+), 47 deletions(-)
Fusion-Task-Id: FN-6797
Fusion-Task-Lineage: f94c7875-619a-47be-88f5-320a4dda3b34
2026-06-20 10:21:26 -07:00
gsxdsm
eca96fbd0b
FN-6771: localize settings section copy
...
Localize dashboard settings section text and restore i18n lint coverage for those files.
- Replace hardcoded settings section labels, help text, placeholders, and status copy with i18n lookups.
- Add settings translation keys across supported app and common locale catalogs and refresh generated resource types.
- Remove the settings sections from the i18n lint deferral list and document that coverage requirement.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6771-localize-settings-sections.md | 5 +
docs/i18n-contributing.md | 3 +-
i18next.config.ts | 26 +-
.../settings/sections/AgentPermissionsSection.tsx | 55 +-
.../settings/sections/AppearanceSection.tsx | 91 +-
.../settings/sections/AuthenticationSection.tsx | 457 +++-------
.../settings/sections/BackupsSection.tsx | 229 ++---
.../settings/sections/CommandsSection.tsx | 49 +-
.../settings/sections/ExperimentalSection.tsx | 109 +--
.../settings/sections/GeneralSection.tsx | 487 ++++-------
.../settings/sections/GlobalGeneralSection.tsx | 183 +---
.../settings/sections/GlobalModelsSection.tsx | 525 ++++-------
.../components/settings/sections/MemorySection.tsx | 458 +++-------
.../components/settings/sections/MergeSection.tsx | 863 ++++++------------
.../settings/sections/NodeRoutingSection.tsx | 108 +--
.../settings/sections/NodeSyncSection.tsx | 105 +--
.../settings/sections/NotificationsSection.tsx | 484 ++++------
.../settings/sections/PluginsSection.tsx | 105 +--
.../settings/sections/ProjectModelsSection.tsx | 971 ++++++++-------------
.../components/settings/sections/RemoteSection.tsx | 560 +++++-------
.../settings/sections/ResearchGlobalSection.tsx | 314 ++-----
.../settings/sections/ResearchProjectSection.tsx | 226 ++---
.../settings/sections/RuntimesSections.tsx | 40 +-
.../settings/sections/ScheduledEvalsSection.tsx | 169 ++--
.../settings/sections/SchedulingSection.tsx | 381 ++------
.../settings/sections/WorktreesSection.tsx | 330 ++-----
packages/i18n/locales/en/app.json | 698 ++++++++++++++-
packages/i18n/locales/en/common.json | 8 +
packages/i18n/locales/es/app.json | 698 ++++++++++++++-
packages/i18n/locales/es/common.json | 8 +
packages/i18n/locales/fr/app.json | 698 ++++++++++++++-
packages/i18n/locales/fr/common.json | 8 +
packages/i18n/locales/ko/app.json | 698 ++++++++++++++-
packages/i18n/locales/ko/common.json | 8 +
packages/i18n/locales/zh-CN/app.json | 698 ++++++++++++++-
packages/i18n/locales/zh-CN/common.json | 8 +
packages/i18n/locales/zh-TW/app.json | 698 ++++++++++++++-
packages/i18n/locales/zh-TW/common.json | 8 +
packages/i18n/src/resources.d.ts | 706 ++++++++++++++-
39 files changed, 7178 insertions(+), 5097 deletions(-)
Fusion-Task-Id: FN-6771
Fusion-Task-Lineage: cdf9b36f-414e-4084-b661-b578a4c27314
2026-06-20 08:57:45 -07:00
gsxdsm
52924ba23d
FN-6759: add built-in lead-generation workflow
...
Add a selectable business workflow for managing lead-generation tasks.
- Register a built-in lead-generation workflow with custom business columns, lead fields, and stage prompts.
- Cover workflow registration, column traits, field metadata, compilation, and IR round-tripping with core tests.
- Document the workflow catalog entry and add a minor changeset for the published CLI package.
Files changed:
.changeset/fn-6759-lead-generation-workflow.md | 5 +
docs/workflow-steps.md | 4 +
.../builtin-lead-generation-workflow-ir.test.ts | 123 ++++++++++++++++++
.../core/src/__tests__/builtin-workflows.test.ts | 10 ++
.../src/builtin-lead-generation-workflow-ir.ts | 141 +++++++++++++++++++++
packages/core/src/builtin-workflows.ts | 20 +++
packages/core/src/index.ts | 1 +
7 files changed, 304 insertions(+)
Fusion-Task-Id: FN-6759
Fusion-Task-Lineage: 6c724f84-a6a6-4b01-93ec-cabb9387be2f
2026-06-20 08:43:35 -07:00
gsxdsm
281ce35829
FN-6761: add built-in marketing workflow
...
Add a content-focused workflow while preserving standard Fusion lifecycle and merge behavior.
- Register builtin:marketing in the built-in workflow catalog and default-enabled workflow order.
- Define marketing-specific columns, content brief/draft/editorial prompts, lifecycle traits, and merge primitives.
- Cover the marketing workflow in built-in workflow tests and document it in workflow-step docs.
- Add a minor changeset for the published Fusion package.
Files changed:
.changeset/fn-6761-marketing-workflow.md | 5 +
docs/workflow-steps.md | 3 +
.../core/src/__tests__/builtin-workflows.test.ts | 64 +++++++++++-
packages/core/src/builtin-marketing-workflow-ir.ts | 116 +++++++++++++++++++++
packages/core/src/builtin-workflows.ts | 24 +++++
packages/core/src/index.ts | 1 +
6 files changed, 209 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6761
Fusion-Task-Lineage: 3242eceb-570f-47f8-8750-dc3acc971bbd
2026-06-20 08:20:39 -07:00
gsxdsm
d2fc70ac91
FN-6793: enforce dependency gates before review
...
Dependency gating now blocks executor and review recovery paths when dependencies remain unmet.
- Re-check unmet scheduling dependencies before workflow graph or authoritative executor dispatch and requeue blocked tasks with blockedBy.
- Rebound auto-merge-eligible in-review tasks with live unmet dependencies back to todo while preserving progress, worktree, and resume state.
- Add run-audit documentation, a patch changeset, and regression coverage for executor, scheduler, and self-healing behavior.
Files changed:
.changeset/fn-6793-dependency-gating.md | 7 +
AGENTS.md | 1 +
docs/architecture.md | 2 +
.../engine/src/__tests__/executor-core.test.ts | 68 +++++++++
.../in-review-unmet-dependency-reconcile.test.ts | 115 +++++++++++++++
packages/engine/src/__tests__/scheduler.test.ts | 36 +++++
packages/engine/src/__tests__/self-healing.test.ts | 159 +++++++++++++++++++++
packages/engine/src/executor.ts | 46 ++++++
packages/engine/src/self-healing.ts | 112 +++++++++++++++
9 files changed, 546 insertions(+)
Fusion-Task-Id: FN-6793
Fusion-Task-Lineage: b209264c-faae-41aa-a024-c33e0d8b61be
2026-06-20 08:13:33 -07:00
gsxdsm
083ebf8134
FN-6780: make i18n status check key parity
...
Make i18n status enforce catalog key parity while allowing empty fallback placeholders.
- Add a reusable i18n parity checker that reports missing and orphaned keys across secondary locales.
- Route pnpm i18n:status through the project parity gate and keep the upstream completeness report as i18n:status:report.
- Document that empty secondary locale strings are valid fallback placeholders and cover parity behavior with tests.
Files changed:
docs/i18n-contributing.md | 18 +++-
i18next.config.ts | 13 ++-
package.json | 3 +-
packages/i18n/scripts/check-i18n-parity.mjs | 110 +++++++++++++++++++++++
packages/i18n/src/__tests__/config.test.ts | 2 +-
packages/i18n/src/__tests__/parity.test.ts | 130 ++++++++++++++++++++++++++++
packages/i18n/src/parity.ts | 126 +++++++++++++++++++++++++++
7 files changed, 393 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6780
Fusion-Task-Lineage: f687586a-bc09-4f9d-843f-b7205eb40a58
2026-06-20 06:46:35 -07:00
gsxdsm
254f31ebb6
FN-6790: quiesce deferred task-created writes on close
...
Rescue task-document coverage by making TaskStore teardown stop late deferred task-created filesystem work.
- Track deferred title write and task-created hook phases so close can drain active work.
- Skip late deferred task-created work once a store is closing to avoid recreating removed fixture roots.
- Update task-document regression coverage, harness teardown awaiting, and rescue documentation while keeping task-documents loaded.
Files changed:
docs/testing.md | 4 ++
packages/core/src/__tests__/store-test-helpers.ts | 2 +-
packages/core/src/__tests__/task-documents.test.ts | 39 ++++++++++-
packages/core/src/store.ts | 75 +++++++++++++++-------
packages/core/vitest.config.ts | 3 +
5 files changed, 96 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-6790
Fusion-Task-Lineage: c458fc4a-b2b4-4cc4-9d88-da8c43f6916d
2026-06-20 05:53:46 -07:00
gsxdsm
7f3e94292c
FN-6760: add built-in design workflow
...
Add a built-in workflow path for UI-heavy implementation work with a required design review gate.
- Register builtin:design as a selectable built-in workflow after implementation and before standard review/merge.
- Define design review criteria covering hierarchy, spacing, typography, design tokens, component reuse, responsiveness, and design-language fit.
- Add catalog coverage and update workflow documentation to list the new Design workflow.
- Add a minor changeset for the published Fusion package.
Files changed:
.changeset/fn-6760-design-workflow.md | 5 +++++
docs/getting-started.md | 2 +-
docs/workflow-editor.md | 4 ++++
docs/workflow-steps.md | 1 +
.../core/src/__tests__/builtin-workflows.test.ts | 23 +++++++++++++++++++++
packages/core/src/builtin-workflows.ts | 24 ++++++++++++++++++++++
6 files changed, 58 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6760
Fusion-Task-Lineage: 2682ce3f-a89d-4237-b2cf-675439eea1d6
2026-06-20 05:14:25 -07:00
gsxdsm
c32c925321
FN-6783: recover orphaned task dirs into the task index
...
Reconcile on-disk task.json records that are missing from SQLite without resurrecting tombstoned IDs.
- Add TaskStore orphaned task directory scanning with metadata validation, FTS-safe insertion, cache updates, lifecycle events, and run-audit entries.
- Run the reconcile during store init and self-healing maintenance for tasks created after startup.
- Cover recovery, skip, and maintenance behavior with core and engine regression tests.
- Document task index reconciliation and add the published package changeset.
Files changed:
.changeset/fn-6783-orphaned-task-dir-reconcile.md | 5 +
AGENTS.md | 1 +
docs/architecture.md | 2 +
docs/storage.md | 8 +
.../store-orphaned-task-dir-reconcile.test.ts | 179 +++++++++++++++++++++
packages/core/src/store.ts | 170 ++++++++++++++++++-
.../self-healing-orphaned-task-dirs.test.ts | 40 +++++
packages/engine/src/self-healing.ts | 14 ++
8 files changed, 412 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-6783
Fusion-Task-Lineage: 5c8d4690-5278-4c29-8f02-32d9f01d581d
2026-06-20 04:40:31 -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
gsxdsm
7559883940
FN-6765: fix mobile nav mailbox duplication
...
Keep Mailbox as a single top-level entry while Todos stays in overflow navigation.
- Remove the duplicate Mailbox action from the mobile More sheet while preserving its primary-tab badges.
- Cover desktop, tablet, and mobile navigation placement expectations for Todos and Mailbox.
- Update dashboard docs to describe compact Header and mobile bottom-nav mailbox indicators.
Files changed:
docs/dashboard-guide.md | 2 +-
.../mobile-feature-access-regression.test.tsx | 3 +-
packages/dashboard/app/components/MobileNavBar.tsx | 22 +++---------
.../app/components/__tests__/Header.test.tsx | 19 +++++++----
.../app/components/__tests__/MobileNavBar.test.tsx | 39 ++++++++++++++++++----
5 files changed, 52 insertions(+), 33 deletions(-)
Fusion-Task-Id: FN-6765
Fusion-Task-Lineage: e32f271e-7dab-43e0-b824-da598641aa77
2026-06-20 01:34:51 -07:00