Commit Graph

24 Commits

Author SHA1 Message Date
gsxdsm
d37bebf8bf feat(FN-5516): merge fusion/fn-5516 2026-05-22 17:24:38 -07:00
gsxdsm
ed4d021d3d fix(dashboard): keep mobile nav visible on Android landscape and during keyboard
- Broaden mobile media query to include (max-height: 480px) so landscape
  phones (which exceed 768 CSS px wide) still render the bottom nav and
  mobile board layout instead of desktop horizontally-scrollable columns.
- Guard useMobileKeyboard against pinch-zoom (vv.scale > 1) — Android
  Chrome ignores user-scalable=no, and a focused textarea + zoom was
  false-positiving keyboard-open and hiding MobileNavBar.
- Read documentElement.clientHeight instead of stale window.innerHeight
  when computing keyboard overlap (Android multi-window can leave
  innerHeight cached at a wildly different value than the actual layout
  viewport — observed 2848 while html was 797).
- Add interactive-widget=resizes-content to the viewport meta so Android
  Chrome shrinks the layout viewport with the soft keyboard, matching iOS.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:12:36 -07:00
Fusion
09ad2b4edf feat(FN-4367): finalize structured workflow verdict contract
Fusion-Task-Id: FN-4367
Fusion-Task-Lineage: adbfac60-5cfe-4ae9-9706-1094dfe7d676
2026-05-14 11:15:47 -07:00
gsxdsm
db78679758 feat(FN-4367): add structured JSON verdict output for prompt-mode workflow steps
- Add verdict (PASS/FAIL) field to core WorkflowStepResult type
- Add parseWorkflowStepOutput() engine helper for json-workflow-verdict blocks
- Update executeWorkflowStep to extract structured verdict/notes from output
- Persist verdict and notes in runWorkflowSteps result entries
- Update agent prompt Feedback Format to require JSON verdict block
- Update WS-006 (Frontend UX Design) template prompt with structured fast-bail
- Add WorkflowResultsTab verdict badge and notes rendering with CSS
- Add 11 engine tests for verdict parsing edge cases
- Add 6 dashboard tests for verdict/notes rendering
- Create replace-ws006-prompt.mjs migration script for existing DBs
- Add changeset for @runfusion/fusion patch

Fusion-Task-Id: FN-4367
Fusion-Task-Lineage: adbfac60-5cfe-4ae9-9706-1094dfe7d676
2026-05-14 11:15:47 -07:00
Fusion
cb7f31e546 feat(FN-4368): complete Step 5 — surface advisory polish notes
Fusion-Task-Id: FN-4368
Fusion-Task-Lineage: ac9b12e6-2101-4b51-89a0-6422fd7850ed
2026-05-14 07:21:45 -07:00
Fusion
95d742abb3 feat(FN-4468): add workflow step gateMode advisory gating
Adds an "advisory" `gateMode` option for workflow steps: steps in advisory mode log findings but no longer block merge completion, while steps that must block can still be configured as blocking. The change covers the workflow step types and schema, executor gating logic, dashboard UI in WorkflowSte

Fusion-Task-Id: FN-4468
2026-05-14 05:35:12 -07:00
Fusion
9369c59ce6 fix(FN-4352): revert secondary mobile chat row inflation
Fusion-Task-Id: FN-4352
Fusion-Task-Lineage: 429612a4-fe44-4ac0-8d9b-d0d6c1743b36
2026-05-13 14:51:35 -07:00
Fusion
b06dc9a968 fix(FN-4352): resolve review findings for secondary mobile control reverts
Fusion-Task-Id: FN-4352
Fusion-Task-Lineage: 429612a4-fe44-4ac0-8d9b-d0d6c1743b36
2026-05-13 13:11:17 -07:00
Fusion
33c0b1a132 fix(FN-4352): correct compact secondary control sizing on mobile
Fusion-Task-Id: FN-4352
Fusion-Task-Lineage: 429612a4-fe44-4ac0-8d9b-d0d6c1743b36
2026-05-13 13:11:17 -07:00
Fusion
4d3f87c068 fix(FN-4352): finalize Step 2 mobile secondary-control reverts
Fusion-Task-Id: FN-4352
Fusion-Task-Lineage: 429612a4-fe44-4ac0-8d9b-d0d6c1743b36
2026-05-13 13:11:17 -07:00
Fusion
778a0bd47a fix(FN-4352): complete Step 2 — revert secondary-control mobile inflations
Fusion-Task-Id: FN-4352
Fusion-Task-Lineage: 429612a4-fe44-4ac0-8d9b-d0d6c1743b36
2026-05-13 13:11:17 -07:00
Fusion
9227a7aa2d feat(FN-4246): complete Step 1 — mobile fullscreen workflow output modal
Fusion-Task-Id: FN-4246
Fusion-Task-Lineage: 40ca0357-149d-423c-a9c0-79d2b0d77a13
2026-05-13 09:06:20 -07:00
Fusion
8be39301cc feat(FN-4240): complete Step 3 — reconcile workflow edit toggle CSS
Fusion-Task-Id: FN-4240
Fusion-Task-Lineage: 16d72dbb-a601-476a-be5c-fc132193e1a6
2026-05-13 06:29:36 -07:00
Fusion
9307a48c18 feat(FN-4236): complete Step 3 — fix mobile touch targets
Fusion-Task-Id: FN-4236
Fusion-Task-Lineage: ce535be6-d2a8-477c-b89a-fd25b337466b
2026-05-13 06:29:36 -07:00
Fusion
a6e04f2205 feat(FN-4209): add responsive header to WorkflowResultsTab
Completes the responsive header implementation for the WorkflowResultsTab component, adding mobile-aware styling in the co-located CSS module alongside test coverage for the responsive behavior.

Fusion-Task-Id: FN-4209
2026-05-13 06:29:35 -07:00
Fusion
a6e2a7d09c feat(FN-4206): complete Step 1 — fix name node shrink/wrapping
Fusion-Task-Id: FN-4206
Fusion-Task-Lineage: d8ba8e5c-5fcb-4980-9387-ee24fa7ce796
2026-05-13 06:29:35 -07:00
Fusion
ab8f3a5630 feat(FN-4137): add review markdown toggle to document view (FN-4137)
This large merge delivers substantial improvements across the dashboard, engine, and CI infrastructure. Key themes include GitHub tracking feature parity (mobile layout, card icons, header alignment, title derivation, restart persistence, untitled issue handling), chat/room UX enhancements (draft au

Fusion-Task-Id: FN-4137
2026-05-12 20:51:08 -07:00
Fusion
8220ec66b7 feat(FN-4238): export merger errors from engine and polish workflow results
Exports merger error types from the engine package for use in the dashboard and CLI. Adds tests for the engine barrel exports and fixes workflow results tab styling to align the edit toggle with button styles.

Fusion-Task-Id: FN-4238
2026-05-12 20:39:01 -07:00
Fusion
ba86e7a0de feat(FN-4104): wrap workflow result headers and warn on overlapping in-prog
Adds warning logic when overlapping in-progress step updates occur, and wraps workflow result table headers with proper text handling and styling in the dashboard UI.

Fusion-Task-Id: FN-4104
2026-05-12 17:04:33 -07:00
Fusion
9a7e5cabf5 feat(FN-3479): finalize workflow token styling and API docs updates
- Expand architecture documentation for git route and custom provider APIs
- Revise ListView styles to use updated design-token driven spacing and sizing
- Refresh WorkflowResultsTab styling to align with workflow token revisions
2026-05-05 01:34:40 -07:00
Fusion
f31539e24d feat(FN-3462): add workflow theme regression test for WorkflowResultsTab
Adds regression coverage for WorkflowResultsTab theme styling by moving a hardcoded box-shadow fallback into the global stylesheet and adding a test that validates the theme-specific status background renders correctly.

Fusion-Task-Id: FN-3462
2026-05-05 00:31:36 -07:00
Fusion
73bd1de238 feat(FN-2842): polish workflow result expand toggle styling
- Add dedicated styles for the workflow result expand icon button with token-based sizing and alignment
- Add hover and focus-visible states for clearer interaction feedback and keyboard accessibility
- Increase mobile touch target sizing for both workflow edit and expand toggles using design tokens
2026-04-28 14:25:55 -07:00
gsxdsm
cc8aa1f780 refactor(dashboard): extract component-specific mobile rules from styles.css
Sweep 1 of the styles.css split. Rules where the desktop counterpart already
lived in a component CSS file have been moved out of the global mobile @media
block in styles.css and appended to the matching component file's mobile
block. styles.css 4551 → 4488.

Affected components: Header, AgentsView, DocumentsView, ListView, QuickChatFAB,
QuickEntryBox, ScriptsModal, TaskDetailModal, TerminalModal, WorkflowResultsTab.

Truly global mobile rules (input font-size for iOS auto-zoom, html/body
overflow, root safe-area padding, base .btn touch targets, bare element
selectors) intentionally stay in styles.css. The remaining bulk of the mobile
block (settings, auth, board/card, inline-create) cannot move yet because
their desktop rules are still in styles.css — those will fall out as part of
the cards and settings extraction sweeps.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 08:43:54 -07:00
gsxdsm
c3d1716fdd refactor(dashboard): split monolithic styles.css into per-component files
Split app/styles.css from ~40k lines down to ~4.5k. Created 56 co-located
component CSS files in app/components/, each imported by its owning .tsx.
The remainder of styles.css holds genuinely global rules (design tokens,
.btn/.card/.modal/.form-input primitives, cross-component @media overrides).

- Lazy-load 13 heavy views (AgentsView, RoadmapsView, NodesView, etc.) via
  React.lazy + Suspense; prefetch all chunks on idle so first navigation is
  instant. Initial JS bundle: 1.58 MB → 1.16 MB (-26%). Initial CSS bundle:
  635 kB → 471 kB (-26%); the rest splits into 13 per-view chunks.

- Add app/test/cssFixture.ts exposing loadAllAppCss() + loadAllAppCssBaseOnly()
  so CSS regression tests load the full per-component bundle (mirroring Vite
  source order). Migrate 30+ tests off direct readFileSync('../styles.css').

- Enable test.css: { include: [/.+/] } in vitest.config.ts so component CSS
  imports actually inject styles in jsdom (fixes getComputedStyle assertions).

- Add ESLint rule (no-restricted-syntax) banning direct styles.css reads in
  dashboard test files; points at loadAllAppCss() instead.

- Restore lost utility classes (.text-muted, .text-secondary, .text-dim,
  .form-input) and rescue dropped chat tool-call rules into QuickChatFAB.css.

- Mobile fixes along the way: scroll containment for view containers
  (min-height:0 + -webkit-overflow-scrolling), QuickChatFAB full-screen on
  mobile (with safe-area-inset for iOS home bar), AgentsView single-row
  header layout, ActivityLogModal close button on right, model-combobox
  z-index above the mobile quick-chat panel.

- Bug fix: SkillsView toggle was display:none which hid the input from the
  accessibility tree; replaced with the visually-hidden pattern so screen
  readers + getByRole still find the checkbox.

- Bug fix: standalone Delete button in TaskDetailModal for triage-column
  tasks (Actions dropdown is hidden in triage state, so previously no way
  to delete a freshly-created task without status change first).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 19:39:20 -07:00