Commit Graph

15 Commits

Author SHA1 Message Date
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