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
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
87e87a8f1a
FN-6693: enforce dashboard CSS token references
...
Extend the dashboard CSS token guard and replace stale custom-property references with defined design tokens.
- Add a dashboard-wide CSS token validity test that scans component/app CSS for undefined custom-property references.
- Include dashboard CSS tests in the dashboard Vitest config and document the guard in testing guidance.
- Remap undefined CSS variables across dashboard components and command-center styles to existing semantic or local tokens.
Files changed:
docs/testing.md | 3 +
.../dashboard-css-token-validity.css.test.ts | 165 +++++++++++++++++++++
.../dashboard/app/components/ActiveAgentsPanel.css | 10 +-
.../dashboard/app/components/AgentLogViewer.css | 2 +-
.../app/components/AgentReflectionsTab.css | 10 +-
packages/dashboard/app/components/AgentsView.css | 6 +-
.../dashboard/app/components/BranchGroupCard.css | 6 +-
packages/dashboard/app/components/ChatView.css | 12 +-
.../app/components/CliBinaryInstallBanner.css | 2 +-
.../dashboard/app/components/CliBinaryPanel.css | 2 +-
.../app/components/ConversationHistory.css | 12 +-
.../dashboard/app/components/DashboardLoader.css | 2 +-
.../dashboard/app/components/DesktopLaunchGate.css | 4 +-
.../dashboard/app/components/DirectoryPicker.css | 2 +-
.../dashboard/app/components/FileMentionPopup.css | 4 +-
.../dashboard/app/components/GitHubImportModal.css | 10 +-
packages/dashboard/app/components/GoalsView.css | 2 +-
.../dashboard/app/components/GroupTaskModal.css | 18 +--
packages/dashboard/app/components/InsightsView.css | 10 +-
packages/dashboard/app/components/Lane.css | 8 +-
.../dashboard/app/components/LanguageSelector.css | 8 +-
packages/dashboard/app/components/MailboxModal.css | 62 ++++----
.../app/components/MergeAdvanceNotice.css | 2 +-
.../dashboard/app/components/MissionManager.css | 10 +-
.../app/components/MobileWorkflowGraphView.css | 2 +-
.../app/components/ModelOnboardingModal.css | 12 +-
.../app/components/OnboardingDisclosure.css | 4 +-
.../dashboard/app/components/PlanningModeModal.css | 2 +-
.../dashboard/app/components/PluginManager.css | 58 ++++----
.../components/PostOnboardingRecommendations.css | 4 +-
.../dashboard/app/components/PullRequestView.css | 32 ++--
packages/dashboard/app/components/QuickChatFAB.css | 4 +-
.../dashboard/app/components/QuickEntryBox.css | 6 +-
.../dashboard/app/components/ReliabilityView.css | 6 +-
packages/dashboard/app/components/ScriptsModal.css | 34 ++---
.../dashboard/app/components/SessionTerminal.css | 28 ++--
.../dashboard/app/components/SettingsModal.css | 6 +-
.../dashboard/app/components/SkillMultiselect.css | 2 +-
packages/dashboard/app/components/TaskCard.css | 24 +--
.../dashboard/app/components/TaskDocumentsTab.css | 8 +-
.../dashboard/app/components/TaskFieldsSection.css | 20 +--
.../dashboard/app/components/TerminalModal.css | 22 +--
.../app/components/WorkflowFieldsPanel.css | 6 +-
.../app/components/WorkflowNodeEditor.css | 30 ++--
.../dashboard/app/components/WorkspaceSelector.css | 2 +-
.../components/command-center/CommandCenter.css | 106 ++++++-------
.../components/command-center/DateRangePicker.css | 18 +--
.../command-center/MissionControlPanel.css | 14 +-
.../app/components/command-center/SdlcFunnel.css | 2 +-
.../command-center/areas/SystemStatsArea.css | 24 +--
.../app/components/command-center/areas/areas.css | 62 ++++----
.../components/command-center/charts/charts.css | 104 ++++++-------
packages/dashboard/vitest.config.ts | 1 +
53 files changed, 592 insertions(+), 423 deletions(-)
Fusion-Task-Id: FN-6693
Fusion-Task-Lineage: e9ccf3e6-fee9-47e0-9474-7b5580adbf31
2026-06-19 04:27:01 -07:00
gsxdsm
14ed177d89
FN-6389: restore mobile board column swiping
...
Restore horizontal touch panning for mobile board columns while keeping document-level drift containment.
- Opt board columns, column headers, and column bodies back into combined horizontal and vertical panning on mobile.
- Apply the same touch-action allowance to workflow and multi-lane column scrollers.
- Add CSS regression coverage for mobile board swipe targets, overscroll containment, and proximity snap behavior.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6389-mobile-board-column-swipe.md | 5 +
.../__tests__/board-mobile-column-swipe.test.ts | 123 +++++++++++++++++++++
packages/dashboard/app/components/Lane.css | 4 +
packages/dashboard/app/styles.css | 7 ++
4 files changed, 139 insertions(+)
Fusion-Task-Id: FN-6389
Fusion-Task-Lineage: 0d337b43-34b1-4ccd-a9d9-d25cc9326945
2026-06-13 16:30:28 -07:00
gsxdsm
eea33639ee
FN-6378: contain mobile board overscroll
...
Contain horizontal overscroll on mobile kanban board scrollers so iOS edge drags do not rubber-band columns off screen.
- Add horizontal overscroll containment to board, workflow column, and lane column scrollers while preserving proximity snap scrolling.
- Add CSS fixture regression coverage for mobile/base board and lane overscroll containment.
- Document the iOS horizontal overscroll containment root cause and fix.
Files changed:
...-board-ios-horizontal-overscroll-containment.md | 64 +++++++++++++++++++++
.../board-mobile-overscroll-containment.test.ts | 65 ++++++++++++++++++++++
packages/dashboard/app/components/Lane.css | 2 +
packages/dashboard/app/styles.css | 1 +
4 files changed, 132 insertions(+)
Fusion-Task-Id: FN-6378
Fusion-Task-Lineage: 70b4852b-feb0-42b5-81ba-13bfd143e0bc
2026-06-13 11:53:44 -07:00
gsxdsm
b90f966a98
FN-6374: fix workflow board tablet fill height
...
Keep workflow-mode board columns stretched through the tablet viewport.
- Preserve a definite height chain from the workflow board wrapper to the column rows.
- Ensure workflow columns stretch and keep internal overflow ownership at tablet widths.
- Extend board layout tests to cover workflow-mode empty and populated tablet states.
- Document the footer-safe workflow fill-height invariant.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/Lane.css | 12 ++
.../__tests__/board-mobile-initial-render.test.tsx | 121 ++++++++++++++++++++-
3 files changed, 129 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6374
Fusion-Task-Lineage: 9b7042cf-c8bc-4d69-8599-42dafc333b15
2026-06-13 10:36:24 -07:00
gsxdsm
d67f61d03e
FN-6135: remove workflow toolbar collapse toggle
...
Simplify the workflow board toolbar by removing its collapse state and persistence.
- remove the workflow toolbar collapse toggle, handlers, and scoped localStorage persistence from Board
- drop collapse-specific workflow toolbar styling and mobile collapsed-layout rules
- replace collapse-focused board tests with assertions that the toolbar renders without a collapse affordance
- remove the unused workflow toolbar storage key and update project storage expectations
Files changed:
packages/dashboard/app/components/Board.tsx | 129 +++++---------
packages/dashboard/app/components/Lane.css | 36 ----
.../app/components/__tests__/Board.test.tsx | 187 +++------------------
.../app/utils/__tests__/projectStorage.test.ts | 3 +-
packages/dashboard/app/utils/projectStorage.ts | 1 -
5 files changed, 60 insertions(+), 296 deletions(-)
Fusion-Task-Id: FN-6135
Fusion-Task-Lineage: 11c17edf-bbed-4ec5-a06e-00a2537ffac1
2026-06-09 16:02:08 -07:00
gsxdsm
dfb037edd8
FN-6133: fix workflow toolbar toggle accessibility
...
Replace the empty workflow toolbar icon toggle with an accessible text control.
- move workflow toolbar collapse/expand handling into shared click and keyboard callbacks
- make the expanded toolbar itself clickable while rendering a focusable "Workflow" label in collapsed mode
- update toolbar styling and Board tests to cover keyboard toggling, single-workflow cases, and the absence of empty icon buttons
Files changed:
packages/dashboard/app/components/Board.tsx | 51 ++++++++---
packages/dashboard/app/components/Lane.css | 19 +++-
.../app/components/__tests__/Board.test.tsx | 100 +++++++++++++++++++--
3 files changed, 147 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-6133
Fusion-Task-Lineage: 6dd217a0-ede0-424a-8ab7-cdde39d2b6ce
2026-06-09 15:05:25 -07:00
gsxdsm
17312c9fae
FN-6118: make workflow lane headers tappable
...
Replace the empty lane toggle button with an accessible tappable header for workflow rows on mobile.
- make the full workflow lane header act as the collapse toggle
- add keyboard support plus hover and focus-visible states for the header control
- update Lane tests to cover header click, keyboard toggles, and removal of the empty icon button
Files changed:
packages/dashboard/app/components/Lane.css | 11 +++++++
packages/dashboard/app/components/Lane.tsx | 30 +++++++++++--------
packages/dashboard/app/components/__tests__/Lane.test.tsx | 35 +++++++++++++++++++---
3 files changed, 60 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-6118
Fusion-Task-Lineage: 0cc1b632-1e59-4d1d-b274-f1da53a503f4
2026-06-09 12:51:20 -07:00
gsxdsm
4366a933da
FN-6046: add collapsible workflow selectors
...
Add collapsible workflow selectors for board workflow controls and inline task creation.
- add a collapsible board workflow toolbar with persisted per-project state
- make the inline create workflow selector collapsible and store its expanded state per project
- update workflow selector styling, storage key allowlist, and regression coverage for collapse behavior
Files changed:
packages/dashboard/app/components/Board.tsx | 104 +++++++++++++--------
.../dashboard/app/components/InlineCreateCard.css | 9 ++
.../dashboard/app/components/InlineCreateCard.tsx | 3 +
packages/dashboard/app/components/Lane.css | 23 +++++
.../dashboard/app/components/WorkflowSelector.css | 20 +++-
.../dashboard/app/components/WorkflowSelector.tsx | 81 ++++++++++++++--
.../app/components/__tests__/Board.test.tsx | 101 ++++++++++++++++++--
.../components/__tests__/InlineCreateCard.test.tsx | 57 ++++++++++-
.../components/__tests__/WorkflowSelector.test.tsx | 73 ++++++++++++++-
.../app/utils/__tests__/projectStorage.test.ts | 4 +-
packages/dashboard/app/utils/projectStorage.ts | 2 +
11 files changed, 420 insertions(+), 57 deletions(-)
Fusion-Task-Id: FN-6046
Fusion-Task-Lineage: 07cbe7a8-5740-479d-94a3-b178c72a5273
2026-06-09 02:09:31 -07:00
gsxdsm
59c613cf38
FN-6052: move hold-task promote action into task cards
...
Move hold-column promotion into the shared task card action row.
- pass hold-column promote handlers and loading state through Column into TaskCard
- render a card-level Promote button with shared action styling and loading behavior
- remove the separate hold-column wrapper/button styling in Lane.css
- update Column and Lane tests to target the card-level promote control and add TaskCard coverage
Files changed:
packages/dashboard/app/components/Column.tsx | 64 ++++++++------------
packages/dashboard/app/components/Lane.css | 9 ---
packages/dashboard/app/components/TaskCard.css | 37 ++++++++++++
packages/dashboard/app/components/TaskCard.tsx | 32 +++++++++-
.../app/components/__tests__/Column.test.tsx | 16 +++--
.../app/components/__tests__/Lane.test.tsx | 16 +++--
.../app/components/__tests__/TaskCard.test.tsx | 70 ++++++++++++++++++++++
7 files changed, 187 insertions(+), 57 deletions(-)
Fusion-Task-Id: FN-6052
Fusion-Task-Lineage: b2f98e06-cd3f-4f49-b540-68b56753c1fb
2026-06-09 01:29:47 -07:00
gsxdsm
56b194383d
fix: address workflow PR feedback
2026-06-07 23:30:16 -07:00
gsxdsm
e138971030
fix: stabilize workflow board and loop recovery
2026-06-07 23:30:16 -07:00
gsxdsm
65c915bb36
fix(ci): lane columns snap-align center per mobile scroll-snap convention
2026-06-04 03:52:45 -07:00
gsxdsm
3aa8d2d28b
feat(dashboard): flag-gated multi-lane board — lane per workflow, trait-keyed columns, typed drag rejections, hold promote (U9)
2026-06-04 01:49:51 -07:00