gsxdsm
ea93f68ad9
FN-7301: add icon workflow picker to new task form
...
Add an icon-capable New Task workflow picker that preserves create-time workflow selection semantics.
- Replace the native workflow select in TaskForm with a styled dropdown showing workflow icons, default badges, duplicate-name IDs, and explicit No workflow opt-out.
- Wire the inline workflow chip to reveal and open the new picker while keeping workflowId payload handling unchanged.
- Add dropdown layout styles, dashboard docs, release notes, and regression coverage for modal create flows and TaskForm selection behavior.
Files changed:
.changeset/fn-7301-new-task-workflow-dropdown.md | 7 +
docs/dashboard-guide.md | 3 +
packages/dashboard/app/components/NewTaskModal.css | 75 ++++++++++
packages/dashboard/app/components/TaskForm.tsx | 166 ++++++++++++++++-----
.../app/components/__tests__/NewTaskModal.test.tsx | 61 ++++++--
.../app/components/__tests__/TaskForm.test.tsx | 128 +++++++++++-----
6 files changed, 351 insertions(+), 89 deletions(-)
Fusion-Task-Id: FN-7301
Fusion-Task-Lineage: f3d534a2-48bd-416a-88a6-f85410ee4f85
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 14:03:50 -07:00
gsxdsm
3dd02dd011
FN-7300: hide local-only Quick Add node pickers
...
Hide the Quick Add node picker whenever local execution is the only available route.
- Gate QuickEntryBox and InlineCreateCard node controls behind meaningful remote or multi-node choices.
- Clear stale node overrides when the hidden picker no longer offers a valid selection.
- Cover local-only and multi-node picker behavior in Quick Add component tests.
- Add a patch changeset for the published Fusion package.
Files changed:
...n-7300-hide-local-only-quick-add-node-button.md | 7 ++
.../dashboard/app/components/InlineCreateCard.tsx | 121 ++++++++++++---------
.../dashboard/app/components/QuickEntryBox.tsx | 102 ++++++++++-------
.../components/__tests__/InlineCreateCard.test.tsx | 74 +++++++++++++
.../components/__tests__/QuickEntryBox.test.tsx | 89 +++++++++++++++
5 files changed, 303 insertions(+), 90 deletions(-)
Fusion-Task-Id: FN-7300
Fusion-Task-Lineage: 83ef956f-7993-4f58-8497-49da15509c08
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 13:53:01 -07:00
gsxdsm
211b18b073
FN-7299: make Shadcn Ember the default dashboard theme
...
Set Shadcn Ember as the default dashboard theme while keeping Shadcn Gray available as an alternate.
- Add Shadcn Ember theme metadata, CSS variables, and boot-time defaults for dashboard and desktop shells.
- Update persisted settings types, schema defaults, and theme selection UI to prefer Ember.
- Cover Ember defaults and theme-option ordering with core, hook, and dashboard component tests.
- Add a published package changeset for the operator-facing default theme change.
Files changed:
.changeset/fn-7299-shadcn-ember-default.md | 7 ++
.../core/src/__tests__/global-settings.test.ts | 23 +++-
packages/core/src/__tests__/store-settings.test.ts | 10 +-
packages/core/src/settings-schema.ts | 6 +-
packages/core/src/types.ts | 4 +-
.../app/__tests__/shadcn-ember-theme.test.ts | 107 ++++++++++++++++
.../app/__tests__/shadcn-gray-theme.test.ts | 2 +-
.../dashboard/app/components/ThemeSelector.css | 15 +++
.../dashboard/app/components/ThemeSelector.tsx | 6 +-
.../components/__tests__/ThemeDropdown.test.tsx | 20 ++-
.../components/__tests__/ThemeSelector.test.tsx | 24 +++-
packages/dashboard/app/components/themeOptions.ts | 7 +-
.../dashboard/app/hooks/__tests__/useTheme.test.ts | 18 ++-
packages/dashboard/app/hooks/useTheme.ts | 8 +-
packages/dashboard/app/index.html | 10 +-
packages/dashboard/app/public/theme-data.css | 137 +++++++++++++++++++++
packages/desktop/src/renderer/index.html | 42 ++++++-
17 files changed, 409 insertions(+), 37 deletions(-)
Fusion-Task-Id: FN-7299
Fusion-Task-Lineage: 7e175752-b8fc-4ba9-8534-cb485f6eb18a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 13:43:28 -07:00
gsxdsm
2132a1cefc
FN-7298: fix mobile terminal font metric refits
...
Rework mobile terminal preference refits so small font sizes keep correct xterm cell metrics.
- Wait for settled terminal font metrics after live preference changes before refitting and refreshing xterm surfaces.
- Guard asynchronous metric waits from overwriting newer SessionTerminal font preferences.
- Cover keyboard-open 10px mobile terminal behavior and stale preference races with regression tests.
- Add a patch changeset for the published Fusion CLI package.
Files changed:
.../fn-7298-mobile-terminal-character-spacing.md | 7 +++
.../dashboard/app/components/SessionTerminal.tsx | 58 +++++++++++++++----
.../dashboard/app/components/TerminalModal.tsx | 59 ++++++++++++++++----
.../__tests__/SessionTerminal.mobile.test.tsx | 50 +++++++++++++++++
.../components/__tests__/SessionTerminal.test.tsx | 16 +++++-
.../components/__tests__/TerminalModal.test.tsx | 65 ++++++++++++++++++++++
6 files changed, 232 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-7298
Fusion-Task-Lineage: b1d6dbf1-8f2c-41e9-b7ee-aa758355345b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 13:36:11 -07:00
gsxdsm
7f3bd80dbe
FN-7297: include ephemeral agents in activity stats
...
Count ephemeral task-worker runs in dashboard activity analytics so active-agent stats reflect task execution.
- Include agentRuns agent ids alongside usage_events when computing active-agent range totals and daily series.
- Preserve distinct per-agent counting across both activity sources and handle missing agentRuns tables.
- Cover activity analytics, API route fixtures, and Command Center UI expectations for run-only task workers.
- Document the Command Center activity semantics and add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-7297-ephemeral-activity.md | 7 ++
docs/dashboard-guide.md | 5 +-
.../core/src/__tests__/activity-analytics.test.ts | 70 ++++++++++++--
packages/core/src/activity-analytics.ts | 101 ++++++++++++++++++---
.../__tests__/CommandCenter.test.tsx | 32 ++++++-
.../register-command-center-routes.test.ts | 47 +++++++++-
6 files changed, 234 insertions(+), 28 deletions(-)
Fusion-Task-Id: FN-7297
Fusion-Task-Lineage: 51e46b3c-64f3-4546-954f-97d82b8426fb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 13:30:28 -07:00
gsxdsm
c5dd8c50b7
FN-7295: refresh retry state immediately
...
Refresh task retry state immediately after the retry API confirms success.
- Replace matching local task rows with the normalized retried task before waiting for SSE or polling.
- Update or clear the project task SWR cache to prevent stale retry snapshots from reappearing.
- Add hook coverage for duplicate task rows, missing rows, cache handling, stale in-flight fetches, and rejected retries.
- Record a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7295-retry-refresh.md | 7 +
.../dashboard/app/hooks/__tests__/useTasks.test.ts | 216 +++++++++++++++++++++
packages/dashboard/app/hooks/useTasks.ts | 38 +++-
3 files changed, 260 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7295
Fusion-Task-Lineage: db205b19-ad8f-4312-a364-c7bd7758df41
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 13:25:35 -07:00
gsxdsm
2335a07620
FN-7291: add Claude Sonnet 5 Anthropic support
...
Adds Claude Sonnet 5 to Anthropic model catalogs, pricing, and pi execution paths.
- Register supplemental direct Anthropic model metadata for Claude Sonnet 5 with deduping.
- Surface the model through dashboard model routes and engine session creation for non-Claude-CLI pi sessions.
- Add Claude CLI provider metadata, pricing coverage, tests, and a published package changeset.
Files changed:
.changeset/fn-7291-sonnet-5-anthropic.md | 7 ++
packages/core/src/__tests__/model-pricing.test.ts | 28 +++++
packages/core/src/anthropic-models.ts | 127 +++++++++++++++++++++
packages/core/src/index.ts | 7 ++
packages/core/src/model-pricing.ts | 13 ++-
.../dashboard/src/__tests__/routes-auth.test.ts | 67 +++++++++++
packages/dashboard/src/routes.ts | 6 +-
.../dashboard/src/routes/register-model-routes.ts | 5 +-
.../src/__tests__/pi-create-fn-agent.test.ts | 67 +++++++++++
.../src/cli-agent/adapters/__tests__/pi.test.ts | 16 +++
packages/engine/src/pi.ts | 2 +
packages/pi-claude-cli/index.ts | 13 +++
.../src/__tests__/process-manager.test.ts | 4 +-
.../pi-claude-cli/src/__tests__/provider.test.ts | 31 ++++-
14 files changed, 384 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7291
Fusion-Task-Lineage: 6494fce8-4101-47f5-9137-306408fd7920
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 13:20:27 -07:00
gsxdsm
7e74fe3a9b
FN-7293: honor workflow review revision overrides
...
Allow workflow review steps to opt into unbounded or capped revision retries while keeping recovery caps accurate.
- Add workflow settings for Plan Review and Code Review max revisions with display, docs, and changeset coverage.
- Resolve optional-step revision budgets through workflow settings, node overrides, and existing fallback limits.
- Track revision attempts per workflow step and hydrate slim self-healing rows before enforcing retry caps.
- Cover unbounded, capped, per-step, and slim-row recovery behavior with focused tests.
Files changed:
.changeset/fn-7293-unbounded-review-revisions.md | 7 +
docs/settings-reference.md | 12 +-
docs/workflow-editor.md | 4 +-
docs/workflow-steps.md | 3 +-
.../builtin-workflow-settings-triage.test.ts | 28 +++-
.../core/src/__tests__/builtin-workflows.test.ts | 29 ++++-
.../__tests__/workflow-settings-resolver.test.ts | 73 +++++++++++
packages/core/src/builtin-plan-review-group.ts | 6 +-
packages/core/src/builtin-workflow-settings.ts | 30 +++++
packages/core/src/index.ts | 5 +
packages/core/src/workflow-ir-types.ts | 15 ++-
packages/core/src/workflow-ir.ts | 5 +-
packages/core/src/workflow-settings-resolver.ts | 49 ++++++-
.../__tests__/WorkflowSettingsPanel.test.tsx | 52 ++++++++
.../app/components/workflow-setting-display.ts | 18 +++
packages/engine/src/__tests__/self-healing.test.ts | 143 ++++++++++++++++++++-
.../workflow-graph-optional-step-fix.test.ts | 130 ++++++++++++++++++-
packages/engine/src/executor.ts | 77 +++++++++--
packages/engine/src/self-healing.ts | 82 ++++++++++--
packages/engine/src/workflow-graph-executor.ts | 5 +-
20 files changed, 725 insertions(+), 48 deletions(-)
Fusion-Task-Id: FN-7293
Fusion-Task-Lineage: 19ee533f-ab8d-4e20-9a27-9cf0cf6dfec9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 13:12:27 -07:00
gsxdsm
01e04333ce
FN-7294: pass user context into workflow reviewers
...
Pass operator-authored task context into reviewer and workflow gate prompts.
- Include de-duped user comments and legacy steering in Plan Review, code review, and workflow-step prompt agents.
- Preserve reviewer comment context on reduced context-limit retry prompts and refresh comments before in-session review calls.
- Document workflow prompt-agent comment behavior, add regression coverage, and add a patch changeset.
Files changed:
.changeset/FN-7294-reviewer-comment-context.md | 7 +
docs/workflow-steps.md | 7 +
.../src/__tests__/agent-user-comments.test.ts | 81 ++++++++--
.../executor-review-step-indexing.test.ts | 165 ++++++++++++++++++++-
.../src/__tests__/reviewer-workspace.test.ts | 39 +++++
packages/engine/src/__tests__/reviewer.test.ts | 26 +++-
packages/engine/src/__tests__/triage.test.ts | 49 ++++++
packages/engine/src/agent-user-comments.ts | 42 ++++--
packages/engine/src/executor.ts | 31 +++-
packages/engine/src/reviewer.ts | 10 +-
packages/engine/src/triage.ts | 20 ++-
11 files changed, 443 insertions(+), 34 deletions(-)
Fusion-Task-Id: FN-7294
Fusion-Task-Lineage: ea5ff33e-99ba-4fdd-9257-9778849b91bb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 12:56:03 -07:00
gsxdsm
7beb64eba5
FN-7296: show quick-add workflow icons
...
Improve the quick-add workflow selector so workflow choices are easier to identify before creating a task.
- Render shared workflow icons in the quick-add trigger and workflow option list.
- Widen the workflow selector/menu with tokenized responsive CSS while avoiding empty custom icon shells.
- Cover built-in, custom, and iconless workflow rendering plus widened CSS expectations.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7296-quick-add-workflow-icons.md | 7 ++++
.../dashboard/app/components/QuickEntryBox.css | 45 ++++++++++++++++++++--
.../dashboard/app/components/QuickEntryBox.tsx | 15 +++++++-
.../components/__tests__/QuickEntryBox.test.tsx | 41 +++++++++++++++++---
4 files changed, 98 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7296
Fusion-Task-Lineage: e493eb27-6957-4fbd-bfb9-903f9ec43b29
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 12:47:11 -07:00
gsxdsm
658b3511c7
FN-7293: scope external evidence to per-step review
2026-06-30 12:25:43 -07:00
gsxdsm
5f67c85fea
FN-7285: add workflow icons and trim built-in labels
...
Adds workflow icon metadata while preserving readable workflow names without built-in suffixes.
- Store and validate compact plain-text workflow icons across core APIs, imports, exports, tools, and analytics.
- Render Fusion marks for built-in workflows and custom text icons beside existing workflow labels on board, switcher, detail, and editor surfaces.
- Update workflow editor creation/copy flows, docs, release notes, and tests for icon metadata and shorter built-in names.
Files changed:
.changeset/fn-7285-workflow-icons.md | 7 ++
docs/dashboard-guide.md | 12 +--
.../cli/skill/fusion/references/extension-tools.md | 2 +
.../core/src/__tests__/builtin-workflows.test.ts | 8 +-
packages/core/src/__tests__/db-migrate.test.ts | 7 +-
.../core/src/__tests__/workflow-analytics.test.ts | 15 +--
.../__tests__/workflow-definition-store.test.ts | 31 ++++++
packages/core/src/builtin-workflows.ts | 20 ++--
packages/core/src/db.ts | 11 +-
packages/core/src/index.ts | 4 +
packages/core/src/store.ts | 24 ++++-
packages/core/src/workflow-analytics.ts | 7 +-
packages/core/src/workflow-definition-types.ts | 31 ++++++
packages/dashboard/app/api/legacy.ts | 2 +
packages/dashboard/app/components/Board.tsx | 18 ++--
packages/dashboard/app/components/Column.tsx | 2 +-
packages/dashboard/app/components/TaskCard.tsx | 7 +-
.../dashboard/app/components/TaskDetailModal.tsx | 20 ++--
packages/dashboard/app/components/WorkflowIcon.css | 42 ++++++++
packages/dashboard/app/components/WorkflowIcon.tsx | 49 +++++++++
.../app/components/WorkflowNodeEditor.css | 32 ++++++
.../app/components/WorkflowNodeEditor.tsx | 113 ++++++++++++++++-----
.../dashboard/app/components/WorkflowSwitcher.css | 9 ++
.../dashboard/app/components/WorkflowSwitcher.tsx | 15 ++-
.../dashboard/app/components/WorktreeGroup.tsx | 2 +-
.../app/components/__tests__/Board.test.tsx | 12 +--
.../app/components/__tests__/Lane.test.tsx | 6 +-
.../__tests__/WorkflowNodeEditor.test.tsx | 57 +++++++++--
.../components/__tests__/WorkflowSwitcher.test.tsx | 68 ++++++++-----
.../__tests__/board-mobile-initial-render.test.tsx | 2 +-
.../__tests__/CommandCenter.test.tsx | 4 +-
.../command-center/areas/WorkflowArea.tsx | 2 +
.../areas/__tests__/WorkflowArea.test.tsx | 6 +-
.../settings/sections/GeneralSection.tsx | 6 +-
.../register-command-center-routes.test.ts | 2 +-
.../__tests__/workflow-import-export.test.ts | 32 +++++-
packages/dashboard/src/routes/board-workflows.ts | 6 +-
.../src/routes/register-workflow-routes.ts | 32 +++++-
packages/engine/src/__tests__/agent-tools.test.ts | 4 +-
packages/engine/src/agent-tools.ts | 6 +-
40 files changed, 590 insertions(+), 145 deletions(-)
Fusion-Task-Id: FN-7285
Fusion-Task-Lineage: 0fa689a2-f19d-4d1b-9a40-cc0b2181200a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 12:21:25 -07:00
gsxdsm
9460497dd5
FN-7292: bridge Anthropic subscription auth into runtime requests
...
Anthropic model requests now resolve subscription OAuth credentials when no raw API key is present.
- Route Anthropic runtime auth through raw API keys, legacy OAuth, subscription OAuth, models.json, and fallback resolver sources with explicit logout precedence.
- Refresh subscription OAuth using the Anthropic OAuth provider while persisting rotated tokens under the subscription storage id.
- Cover subscription alias resolution, logout behavior, fallback visibility, refresh persistence, and reload behavior with auth-storage tests.
- Add a patch changeset for the published Fusion CLI package.
Files changed:
.../fn-7292-anthropic-subscription-runtime-auth.md | 7 +
packages/engine/src/__tests__/auth-storage.test.ts | 357 +++++++++++++++++++++
packages/engine/src/auth-storage.ts | 266 ++++++++++++---
3 files changed, 577 insertions(+), 53 deletions(-)
Fusion-Task-Id: FN-7292
Fusion-Task-Lineage: c98c2f1c-8297-4473-ba66-5b6320bc0c00
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 12:09:09 -07:00
gsxdsm
70d7dcaa6c
FN-7290: skip unchanged plugin builds
...
Add a git-backed plugin build cache to make root workspace builds skip safe unchanged plugin packages.
- Route root pnpm build through a workspace build planner that always builds non-plugin packages and selectively skips cached plugin packages.
- Hash plugin inputs with declared local workspace dependencies plus root build tooling/config and require dist outputs before skipping.
- Cover cache planning and invalidation behavior with script tests and document the operator-facing build behavior.
Files changed:
.changeset/fn-7290-plugin-build-cache.md | 7 +
docs/testing.md | 5 +-
package.json | 2 +-
scripts/__tests__/build-workspace.test.mjs | 253 +++++++++++++++++
scripts/build-workspace.mjs | 427 +++++++++++++++++++++++++++++
5 files changed, 692 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7290
Fusion-Task-Lineage: a91861c7-385d-4e9c-bc43-11ed0ff188c8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 11:08:55 -07:00
gsxdsm
8f65186bdc
FN-7289: fix folded-phone terminal keyboard spacing
...
Preserve mobile terminal geometry when folded phones open with the keyboard already visible.
- Use layout viewport height when computing keyboard overlap so focused keyboard-open folded postures keep a valid baseline.
- Allow keyboard-closed width/posture changes at short folded heights to refresh the terminal viewport baseline.
- Add regression coverage for TerminalModal and SessionTerminal folded-phone keyboard spacing and document the recurrence.
Files changed:
.../fn-7289-mobile-terminal-folded-keyboard.md | 7 ++
.../mobile-terminal-folded-viewport-baseline.md | 11 +-
.../dashboard/app/components/TerminalModal.tsx | 20 ++--
.../__tests__/SessionTerminal.mobile.test.tsx | 30 +++++
.../components/__tests__/TerminalModal.test.tsx | 127 +++++++++++++++++++++
5 files changed, 183 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-7289
Fusion-Task-Lineage: 82134835-ca72-4796-89da-c8d071efc481
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 10:53:47 -07:00
gsxdsm
3cd5695f52
FN-7288: remove quick-add Plan buttons
...
Remove quick-add planning buttons from board create surfaces while preserving other planning entry points.
- Remove the Plan button, icon imports, handlers, test id, disabled state, tooltip, and click targets from QuickEntryBox and InlineCreateCard.
- Update quick-add and mobile board tests to assert the Plan affordance is absent while task creation and Subtask behavior remain available.
- Refresh dashboard docs and add a patch changeset describing the quick-add Plan removal.
Files changed:
.changeset/fn-7288-remove-quick-add-plan-button.md | 7 +
docs/dashboard-guide.md | 4 +-
docs/getting-started.md | 2 +-
docs/workflow-steps.md | 2 +-
.../dashboard/app/components/InlineCreateCard.tsx | 38 +---
.../dashboard/app/components/QuickEntryBox.tsx | 38 +---
.../components/__tests__/InlineCreateCard.test.tsx | 56 +++---
.../components/__tests__/QuickEntryBox.test.tsx | 196 +++++----------------
.../app/components/__tests__/board-mobile.test.tsx | 6 +-
9 files changed, 97 insertions(+), 252 deletions(-)
Fusion-Task-Id: FN-7288
Fusion-Task-Lineage: b4a5d6b6-83e7-4b0c-a38d-6ff36d8cd97e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 10:40:49 -07:00
gsxdsm
f0a15db85c
FN-7286: add productivity duration trends
...
Expose completed-task duration trends in Command Center productivity analytics.
- Add daily average and median active-duration buckets to productivity analytics.
- Render a duration-over-time line chart when qualifying completed-task history exists.
- Extend chart formatting and tests for duration labels, empty trend states, and analytics aggregation.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7286-duration-trend.md | 7 +++
.../src/__tests__/productivity-analytics.test.ts | 50 +++++++++++++++++++++
packages/core/src/productivity-analytics.ts | 39 +++++++++++++++-
.../command-center/areas/ProductivityArea.tsx | 52 +++++++++++++++++++++-
.../areas/__tests__/areas.test-harness.tsx | 16 +++++++
.../command-center/areas/__tests__/areas.test.tsx | 46 +++++++++++++++++++
.../command-center/charts/recharts/LineChart.tsx | 21 +++++++--
7 files changed, 225 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7286
Fusion-Task-Lineage: f9c486d0-dd8c-4736-9e8a-e658b7faecc1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 10:30:57 -07:00
gsxdsm
6b3eec0a53
FN-7287: collapse custom shadcn color controls
...
Collapse dashboard shadcn color overrides behind an accessible shared toggle by default.
- Add an icon-only expand/collapse affordance with aria state for the shared shadcn color picker.
- Move reset and color override inputs into the expanded controls panel with responsive styling.
- Cover collapsed and expanded picker behavior across theme selector surfaces.
- Add a patch changeset for the dashboard theme control fix.
Files changed:
.changeset/fn-7287-collapse-shadcn-colors.md | 7 ++
.../dashboard/app/components/ShadcnColorPicker.css | 26 +++++-
.../dashboard/app/components/ShadcnColorPicker.tsx | 104 +++++++++++++--------
.../__tests__/ShadcnColorPicker.test.tsx | 48 +++++++++-
.../components/__tests__/ThemeDropdown.test.tsx | 11 +++
.../components/__tests__/ThemeSelector.test.tsx | 11 +++
6 files changed, 163 insertions(+), 44 deletions(-)
Fusion-Task-Id: FN-7287
Fusion-Task-Lineage: 315ef23e-07e1-473c-8187-a40d0516960e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 10:26:23 -07:00
gsxdsm
a92f15efaa
FN-7284: remove Quick Add Plan icon
...
Remove the extra Quick Add Plan icon while preserving the text button planning flow.
- Drop the Lightbulb icon from the QuickEntryBox Plan action and document the text-only affordance requirement.
- Extend QuickEntryBox coverage to assert the Plan action remains text-only and still trims the draft for planning handoff.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/remove-quick-add-plan-icon.md | 7 +++++++
packages/dashboard/app/components/QuickEntryBox.tsx | 2 +-
.../dashboard/app/components/__tests__/QuickEntryBox.test.tsx | 8 ++++++--
3 files changed, 14 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-7284
Fusion-Task-Lineage: 331eaf54-d51e-4f37-8434-1a0590edf7a1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 10:14:47 -07:00
gsxdsm
7eca99c8b1
FN-7283: clear optional workflow steps in fast mode
...
Fast mode now treats optional workflow steps as opt-out by default while preserving manual reselection.
- Clear default-on optional workflow steps when switching task creation forms into Fast mode.
- Submit explicit empty optional-step selections in Fast mode to prevent store defaults from reappearing.
- Allow explicitly enabled optional workflow groups to run under Fast mode and during recovery.
- Document the Fast-mode optional-step contract and add regression coverage for dashboard and engine flows.
Files changed:
.changeset/FN-7283-fast-mode-optional-steps.md | 7 ++
docs/workflow-steps.md | 15 ++-
packages/dashboard/app/components/NewTaskModal.tsx | 27 +++--
.../dashboard/app/components/QuickEntryBox.tsx | 29 ++++-
packages/dashboard/app/components/TaskForm.tsx | 42 +++++--
.../app/components/__tests__/NewTaskModal.test.tsx | 58 +++++++++
.../components/__tests__/QuickEntryBox.test.tsx | 84 +++++++++++++
.../app/components/__tests__/TaskForm.test.tsx | 85 ++++++++++++-
.../__tests__/executor-fast-mode-workflows.test.ts | 134 +++++++++++++++++++++
packages/engine/src/executor.ts | 107 ++++++++++------
packages/engine/src/workflow-graph-executor.ts | 14 ++-
11 files changed, 539 insertions(+), 63 deletions(-)
Fusion-Task-Id: FN-7283
Fusion-Task-Lineage: e7028af8-3d05-4db7-8db9-a16c7f7575de
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 09:46:26 -07:00
gsxdsm
b450dd493d
FN-7282: fix mobile terminal workspace menu
...
Keep the terminal workspace picker visible and usable on narrow mobile screens.
- Portal the workspace listbox to the viewport and position it from the trigger with visual viewport bounds.
- Constrain the menu width and height with scroll-safe mobile CSS while preserving workspace selection actions.
- Cover mobile rendering, loading/error picker behavior, and document the viewport-safe menu expectation.
Files changed:
.../fn-7282-mobile-terminal-worktree-menu.md | 7 ++
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/TerminalModal.css | 21 +++--
.../dashboard/app/components/TerminalModal.tsx | 101 ++++++++++++++++++++-
.../components/__tests__/TerminalModal.test.tsx | 72 ++++++++++++++-
5 files changed, 186 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-7282
Fusion-Task-Lineage: ca6f7b2b-2d04-41c3-b2eb-d3195e3a1ff5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 09:13:48 -07:00
gsxdsm
ac87b1e8e4
FN-7281: fix folded terminal viewport baselines
...
Keep mobile terminals sized against the settled folded viewport before keyboard overlap is applied.
- Re-baseline terminal keyboard metrics when folded devices settle to a new closed-posture width.
- Avoid replacing the baseline from focused keyboard-open samples that would erase real keyboard overlap.
- Cover TerminalModal and SessionTerminal mobile keyboard spacing behavior with regression tests.
- Document the folded-phone terminal spacing fix and add a patch changeset.
Files changed:
.changeset/fn-7281-mobile-terminal-spacing.md | 7 ++
.../mobile-terminal-folded-viewport-baseline.md | 56 +++++++++++++++
.../dashboard/app/components/TerminalModal.tsx | 57 ++++++++++++++--
.../__tests__/SessionTerminal.mobile.test.tsx | 39 +++++++++++
.../components/__tests__/TerminalModal.test.tsx | 79 ++++++++++++++++++++++
.../app/hooks/__tests__/useMobileKeyboard.test.ts | 53 ++++++++++++++-
packages/dashboard/app/hooks/useMobileKeyboard.ts | 31 +++++++--
7 files changed, 309 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-7281
Fusion-Task-Lineage: 90ab7398-c583-4312-8cf6-0ef7d6328c8d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 09:09:29 -07:00
gsxdsm
082dd55967
FN-7280: persist all-workflows board view
...
Persist the Board aggregate workflow view so refreshes restore the operator's last board selection.
- Store the All workflows sentinel in project-scoped board view preferences while filtering it out for real workflow consumers.
- Restore all-workflows selection on remount/project changes and clear it when workflow mode is unavailable.
- Cover refresh persistence, project scoping, hooks, utilities, and cross-surface behavior with tests.
- Document the refresh-persistent All workflows behavior and add a patch changeset.
Files changed:
.changeset/fn-7280-all-workflows-board-view.md | 7 +++
docs/dashboard-guide.md | 7 +--
.../workflow-selection-cross-surface.test.tsx | 15 ++++++
packages/dashboard/app/components/Board.tsx | 31 +++++++++---
.../app/components/__tests__/Board.test.tsx | 58 ++++++++++++++++++++--
.../app/hooks/__tests__/useBoardWorkflows.test.ts | 11 ++++
.../utils/__tests__/boardWorkflowSelection.test.ts | 13 +++++
.../dashboard/app/utils/boardWorkflowSelection.ts | 13 ++++-
8 files changed, 137 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-7280
Fusion-Task-Lineage: 12d83b05-5b2b-4435-9383-30b35c07c087
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 09:04:03 -07:00
gsxdsm
6c8884e67b
FN-7276: add quick-add workflow selection
...
Add workflow-aware quick task creation across Board and List quick-add surfaces.
- Add a quick-add workflow picker that filters out the aggregate workflow sentinel.
- Route create, planning, subtask, and optional-step flows through the selected real workflow.
- Resolve workflow-specific intake columns for Board/List quick creates and cover behavior with component tests.
- Add a minor changeset for the published CLI package.
Files changed:
.changeset/fn-7276-quick-add-workflow-selector.md | 7 +
packages/dashboard/app/components/Board.tsx | 43 +++++-
packages/dashboard/app/components/Column.tsx | 12 +-
packages/dashboard/app/components/ListView.tsx | 20 ++-
.../dashboard/app/components/QuickEntryBox.css | 51 +++++++
.../dashboard/app/components/QuickEntryBox.tsx | 169 +++++++++++++++++++--
.../app/components/__tests__/Board.test.tsx | 42 ++++-
.../app/components/__tests__/ListView.test.tsx | 67 +++++++-
.../components/__tests__/QuickEntryBox.test.tsx | 73 +++++++++
9 files changed, 453 insertions(+), 31 deletions(-)
Fusion-Task-Id: FN-7276
Fusion-Task-Lineage: 422f0359-c71f-4610-8fdb-39d7a21a2a52
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 08:52:51 -07:00
gsxdsm
85e925a12a
FN-7279: move workflow badges to task timestamps
...
Move the task-detail workflow badge into the Updated timestamp metadata row.
- Render one canonical workflow badge in the timestamp group for desktop and mobile task details.
- Remove desktop/mobile workflow badge variants and keep timestamp layout from wrapping on mobile.
- Update rendering and responsive CSS tests for the new badge ownership.
- Add a patch changeset for the published Fusion package.
Files changed:
.../fn-7279-task-detail-workflow-timestamps.md | 7 ++++
.../dashboard/app/components/TaskDetailModal.css | 43 ++++++++++------------
.../dashboard/app/components/TaskDetailModal.tsx | 7 +---
.../__tests__/TaskDetailModal.rendering.test.tsx | 25 ++++++++-----
...etailModal.responsive-and-dependencies.test.tsx | 27 ++++++++------
5 files changed, 58 insertions(+), 51 deletions(-)
Fusion-Task-Id: FN-7279
Fusion-Task-Lineage: a1f11f51-99c9-42c7-bbb6-bb58384594a2
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 08:40:14 -07:00
gsxdsm
5814049023
FN-7278: harden desktop mission swipe-back coverage
...
Clarify the desktop swipe-back regression test so it proves mission navigation never mutates browser history.\n\n- Select a mission before asserting desktop history behavior.\n- Cover both activity and structure tab switching with no pushState calls.\n- Rename the test to reflect post-selection desktop navigation coverage.\n\nFiles changed:\n .../__tests__/MissionManager.swipe-back.test.tsx | 14 +++++++++++---\n 1 file changed, 11 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-7278
Fusion-Task-Lineage: aba55b01-dd9e-4714-b169-55b30ad5b580
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 08:35:07 -07:00
gsxdsm
52e4a260c4
FN-7277: move workflow badges to card footers
...
Move aggregate workflow identity below task-card footer content so it stays anchored at the bottom-left.
- Reposition the optional workflow badge out of the meta-badge row and into its own bottom-left row.
- Add responsive styling so long workflow names wrap within the card footer area without creating extra actions.
- Expand TaskCard layout tests for badge ordering across metadata, footer, and action surfaces.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7277-workflow-badge-bottom-left.md | 7 ++++
packages/dashboard/app/components/TaskCard.css | 22 +++++++++-
packages/dashboard/app/components/TaskCard.tsx | 31 ++++++++------
.../__tests__/TaskCard.badge-wrap.test.tsx | 16 +++++++
.../__tests__/TaskCard.footer-wrap.test.tsx | 33 +++++++++++++++
.../app/components/__tests__/TaskCard.test.tsx | 49 +++++++++++++++++++++-
6 files changed, 143 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-7277
Fusion-Task-Lineage: 5dd05d2a-1728-49d3-8cbf-b99d6293730b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 08:30:38 -07:00
gsxdsm
c848ce11de
FN-7273: fix mobile engine controls menu placement
...
Keep the footer engine controls reachable on constrained mobile and tablet viewports.
- Render footer engine controls as a fixed full-width bottom panel through tablet widths while preserving the desktop anchored popover.
- Account for executor footer, mobile navigation, safe-area, standalone, and ICB offsets in panel placement.
- Add CSS regression coverage, dashboard documentation, and a patch changeset.
Files changed:
.changeset/fn-7273-mobile-engine-controls-menu.md | 7 ++
docs/dashboard-guide.md | 3 +-
.../dashboard/app/components/EngineControlMenu.css | 38 +++++++++-
.../__tests__/EngineControlMenu.css.test.ts | 88 +++++++++++++++++++++-
4 files changed, 128 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-7273
Fusion-Task-Lineage: d4764555-c8eb-4086-9130-d2f568727ae1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 08:25:21 -07:00
gsxdsm
8f0fde8b82
FN-7275: fix mobile task-detail swipe-back dismissal
...
Harden mobile navigation history so reopened task detail surfaces remain dismissible after stale back events.
- Reconcile duplicate navigation entries with replaceState while preserving existing history state.
- Treat stale or desynced popstate navIndex values as a top-entry dismiss instead of a no-op.
- Cover close-and-quick-reopen swipe-back races across the hook, task-detail modal, and app navigation tests.
- Add the navigation history tests to the dashboard quality test allowlists and include a patch changeset.
Files changed:
.changeset/fn-7275-swipe-back-reliability.md | 7 ++
.../__tests__/TaskDetail.swipe-back.test.tsx | 14 +++-
.../__tests__/navigation-history.test.tsx | 18 +++--
.../hooks/__tests__/useNavigationHistory.test.ts | 43 +++++++++-
.../dashboard/app/hooks/useNavigationHistory.ts | 92 ++++++++++++++--------
packages/dashboard/vitest.config.ts | 3 +-
6 files changed, 128 insertions(+), 49 deletions(-)
Fusion-Task-Id: FN-7275
Fusion-Task-Lineage: f01e46c3-e6ad-45ef-a848-e8e2012ea3d1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 08:20:07 -07:00
gsxdsm
4441b72bbc
fix(FN-7273): prevent stale step resume regressions
2026-06-30 08:07:40 -07:00
gsxdsm
94ddfe1064
FN-7274: document workflow tools in Fusion skill
...
Document the workflow-authoring tool surface in the packaged Fusion skill references.
- Add workflow tools to the generated Fusion skill category and capability tables.
- Teach the skill sync script to read workflow tool specs from extension and engine agent tool sources.
- Cover workflow tool documentation and cache inputs with sync tests.
- Add a changeset for the published CLI skill update.
Files changed:
.changeset/fn-7274-workflow-skill-tools.md | 7 +
packages/cli/skill/fusion/SKILL.md | 1 +
.../cli/skill/fusion/references/engine-tools.md | 4 +-
.../cli/skill/fusion/references/extension-tools.md | 83 +++++++++-
.../skill/fusion/references/fusion-capabilities.md | 8 +
packages/cli/src/__tests__/skill-sync.test.ts | 60 ++++++-
scripts/__tests__/skill-sync-cache.test.mjs | 5 +
scripts/sync-fusion-skill-tools.mjs | 172 ++++++++++++++++++---
8 files changed, 312 insertions(+), 28 deletions(-)
Fusion-Task-Id: FN-7274
Fusion-Task-Lineage: e1cd6bd8-aecc-49ca-96ed-a937a15a18a4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 08:04:12 -07:00
gsxdsm
a039c93f57
FN-7260: consolidate Done actions into column menu
...
Move Done column archive and sort controls into the shared column actions menu.
- Replace separate Done sort and archive header controls with menu items.
- Preserve Done sort mode selection and archive-all confirmation behavior for standard and workflow complete columns.
- Update menu styling, dashboard docs, release notes, and Column component coverage.
Files changed:
.changeset/fn-7260-done-actions-menu.md | 7 ++
docs/dashboard-guide.md | 5 +-
packages/dashboard/app/components/Column.tsx | 93 ++++++++++------
.../app/components/__tests__/Column.test.tsx | 118 ++++++++++++---------
packages/dashboard/app/styles.css | 61 +++++------
5 files changed, 168 insertions(+), 116 deletions(-)
Fusion-Task-Id: FN-7260
Fusion-Task-Lineage: e336aa55-9dda-47bf-b8a7-9d9bbf6a33ef
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 07:58:55 -07:00
gsxdsm
d04ee5b4c3
FN-7271: move mobile workflow badge into timestamp row
...
Move the mobile task-detail workflow badge next to the updated timestamp while preserving desktop placement.
- Add separate desktop and mobile workflow badge render targets in the task detail modal.
- Hide the header badge on mobile and reveal the timestamp-row badge with scoped responsive styles.
- Cover the mobile badge placement and CSS guardrails in task detail tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7271-mobile-workflow-badge.md | 7 +++++++
.../dashboard/app/components/TaskDetailModal.css | 18 ++++++++++++++++++
.../dashboard/app/components/TaskDetailModal.tsx | 7 ++++++-
.../__tests__/TaskDetailModal.rendering.test.tsx | 10 ++++++++--
...DetailModal.responsive-and-dependencies.test.tsx | 21 +++++++++++++++++----
5 files changed, 56 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-7271
Fusion-Task-Lineage: def0b5c5-b881-45f8-aa7c-80243d8de8ec
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 07:52:54 -07:00
gsxdsm
5ec04ec5cb
fix(FN-7271): keep fast coding tasks from skipping implementation
2026-06-30 07:31:59 -07:00
gsxdsm
924bcb97d5
FN-7255: add task card context menus
...
Add shared task action menus across board and list task surfaces.
- Add reusable task context menu UI with open, copy, archive, delete, pause, duplicate, retry, refine, and dependency actions.
- Wire board cards, swimlanes, worktree groups, and list rows to expose consistent menu behavior.
- Reuse task-detail action handlers and cover menu interactions with dashboard tests.
- Document the new task context menu behavior and add a patch changeset.
Files changed:
.changeset/fn-7255-card-context-menu.md | 7 +
docs/dashboard-guide.md | 6 +
packages/dashboard/app/App.tsx | 2 +
packages/dashboard/app/components/Board.tsx | 61 ++-
packages/dashboard/app/components/Column.tsx | 43 +-
packages/dashboard/app/components/Lane.tsx | 11 +-
packages/dashboard/app/components/ListView.css | 25 ++
packages/dashboard/app/components/ListView.tsx | 438 ++++++++++++++++++-
packages/dashboard/app/components/TaskCard.css | 12 +
packages/dashboard/app/components/TaskCard.tsx | 472 ++++++++++++++++++++-
.../dashboard/app/components/TaskContextMenu.css | 57 +++
.../dashboard/app/components/TaskContextMenu.tsx | 346 +++++++++++++++
.../dashboard/app/components/TaskDetailModal.tsx | 235 ++++------
.../dashboard/app/components/WorktreeGroup.tsx | 60 ++-
.../app/components/__tests__/ListView.test.tsx | 159 ++++++-
.../__tests__/TaskCard.cli-states.test.tsx | 1 +
.../app/components/__tests__/TaskCard.test.tsx | 180 +++++++-
.../components/__tests__/TaskContextMenu.test.tsx | 205 +++++++++
.../app/components/__tests__/board-mobile.test.tsx | 1 +
.../app/components/dashboard/MainContent.tsx | 12 +
.../__tests__/MainContent.graph-popout.test.tsx | 1 +
.../dashboard/app/components/dashboard/types.ts | 1 +
packages/dashboard/app/hooks/useAppSettings.ts | 8 +
23 files changed, 2178 insertions(+), 165 deletions(-)
Fusion-Task-Id: FN-7255
Fusion-Task-Lineage: 5b5714a9-3eb5-4df1-a466-0d2f839b6bd9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 01:57:09 -07:00
gsxdsm
ebb805d253
FN-7261: add global modal dismissal setting
...
Add a global dashboard preference that keeps modal backdrop dismissal off by default while allowing operators to opt in.
- Add dismissModalsOnOutsideClick to global settings defaults, schema, docs, and save handling.
- Provide the modal dismissal preference through App and gate shared overlay mouse/touch dismissal on it.
- Expose the preference in Global General settings and update modal dismissal tests.
- Add a changeset for the published CLI package.
Files changed:
.changeset/fn-7261-global-modal-outside-dismiss.md | 7 ++++
docs/settings-reference.md | 1 +
.../core/src/__tests__/settings-defaults.test.ts | 9 +++++
packages/core/src/settings-schema.ts | 5 +++
packages/core/src/types.ts | 5 +++
packages/dashboard/app/App.tsx | 16 +++++----
.../app/components/AgentErrorDetailsModal.tsx | 4 ++-
.../__tests__/AgentErrorDetailsModal.test.tsx | 28 +++++++++++++++-
.../__tests__/SettingsModal.general.test.tsx | 23 ++++++++++++-
.../app/components/settings/save-split.ts | 1 +
.../settings/sections/GlobalGeneralSection.tsx | 5 +++
.../app/hooks/__tests__/useOverlayDismiss.test.tsx | 38 ++++++++++++++++++----
packages/dashboard/app/hooks/useAppSettings.ts | 5 +++
packages/dashboard/app/hooks/useOverlayDismiss.ts | 36 +++++++++++++++++---
14 files changed, 163 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-7261
Fusion-Task-Lineage: 4fd5195f-c759-46b4-b567-0d5a9d5b92e3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 01:50:52 -07:00
gsxdsm
04f06e6b70
FN-7269: preserve workflow settings and prompts across import
...
Workflow exports now carry project-specific settings and prompt overrides through import.
- Add settingValues and promptOverrides to workflow export envelopes and client API types.\n- Restore imported setting values and prompt overrides onto the freshly created workflow with validation and rollback on failure.\n- Cover custom and built-in workflow round-trips plus invalid restore-map rejection cases.\n- Document portable workflow exports and add a patch changeset.\n\nFiles changed:\n ...7269-workflow-export-import-settings-prompts.md | 7 ++\n docs/workflow-editor.md | 4 +-\n packages/dashboard/app/api/legacy.ts | 10 +-\n .../__tests__/workflow-import-export.test.ts | 113 ++++++++++++++++++++-\n .../src/routes/register-workflow-routes.ts | 86 +++++++++++++++-\n 5 files changed, 210 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7269
Fusion-Task-Lineage: 718f42d0-c72d-4818-8f8c-979d01e960af
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 01:28:33 -07:00
gsxdsm
b5da5d310a
FN-7263: refresh custom provider model lists
...
Refresh persisted custom-provider model lists from saved endpoints and expose manual refresh controls.
- Add dashboard API helpers and routes to refresh one or all custom-provider model lists while preserving concurrent settings edits.
- Start background model refresh from serve, dashboard, and daemon startup paths after the server begins listening.
- Add Settings UI refresh actions, row-level status messaging, styles, docs, and regression coverage for refresh behavior.
Files changed:
.changeset/fn-7263-custom-provider-model-refresh.md | 7 +
docs/dashboard-guide.md | 6 +-
docs/settings-reference.md | 2 +-
packages/cli/src/commands/__tests__/daemon.test.ts | 59 +++++
.../cli/src/commands/__tests__/dashboard.test.ts | 51 ++++
packages/cli/src/commands/__tests__/serve.test.ts | 59 ++++-
packages/cli/src/commands/daemon.ts | 39 +++-
packages/cli/src/commands/dashboard.ts | 10 +
packages/cli/src/commands/serve.ts | 11 +-
.../app/__tests__/api-custom-providers.test.ts | 43 ++++
packages/dashboard/app/api/legacy.ts | 11 +
.../app/components/CustomProvidersSection.css | 41 +++-
.../app/components/CustomProvidersSection.tsx | 68 +++++-
.../__tests__/CustomProvidersSection.test.tsx | 227 ++++++++++++++++++
packages/dashboard/src/index.ts | 6 +
.../__tests__/custom-provider-routes.test.ts | 255 ++++++++++++++++++++
.../src/routes/__tests__/custom-providers.test.ts | 12 +
.../src/routes/register-custom-provider-routes.ts | 259 ++++++++++++++++-----
18 files changed, 1101 insertions(+), 65 deletions(-)
Fusion-Task-Id: FN-7263
Fusion-Task-Lineage: 60ee0637-ac85-409f-a376-c01f4bc8e8c5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 01:23:09 -07:00
gsxdsm
273553429c
FN-7262: restore terminal shortcut handling
...
Restore reliable copy, paste, and input gating for embedded session terminals.
- Add platform-aware copy handling so selected text copies while no-selection Ctrl+C reaches the shell.
- Gate xterm stdin, mobile controls, cursor blink, and input sends on authoritative attach-ticket writability.
- Keep mobile send submission on one form path and cover shortcut/input behavior across desktop, modal, and mobile tests.
- Document embedded terminal shortcut semantics and add a patch changeset for @runfusion/fusion.
Files changed:
.changeset/fn-7262-terminal-shortcuts.md | 7 ++
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/SessionTerminal.tsx | 76 +++++++++++++----
.../__tests__/SessionTerminal.mobile.test.tsx | 34 ++++++--
.../components/__tests__/SessionTerminal.test.tsx | 96 +++++++++++++++++++++-
.../components/__tests__/TerminalModal.test.tsx | 33 ++++++++
6 files changed, 221 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-7262
Fusion-Task-Lineage: 8a7af0a4-0b52-44fe-b949-63486068fa97
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 01:18:16 -07:00
gsxdsm
3e0391eada
FN-7267: expose MCP tools to planning sessions
...
Expose configured MCP session tools to read-only planning and mission lanes while keeping other read-only sessions locked down.
- Add an explicit allowMcpToolsInReadonly option to createFnAgent and apply it only to connected MCP tools.
- Opt planning, streaming planning, mission, milestone, and slice interview sessions into read-only MCP tools.
- Expand regression coverage for MCP forwarding, read-only filtering, and session tool disposal behavior.
- Document the read-only MCP opt-in model and add a published package changeset.
Files changed:
.changeset/fn-7267-planning-mission-mcp.md | 7 +++
docs/mcp.md | 4 +-
.../src/__tests__/mcp-lane-forwarding.test.ts | 4 ++
.../dashboard/src/milestone-slice-interview.ts | 4 ++
packages/dashboard/src/mission-interview.ts | 4 ++
packages/dashboard/src/planning.ts | 4 ++
.../src/__tests__/mcp-surface-coverage.test.ts | 25 +++++++-
.../src/__tests__/pi-create-fn-agent.test.ts | 67 ++++++++++++++++++++++
.../src/__tests__/pi-mcp-session-tools.test.ts | 6 +-
.../workflow-step-readonly-allowlist.test.ts | 17 +++++-
packages/engine/src/pi.ts | 17 +++++-
packages/engine/src/workflow-step-tool-policy.ts | 15 ++++-
12 files changed, 163 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-7267
Fusion-Task-Lineage: 8d9cac1a-edcc-453d-bda1-9abb58de7f86
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 00:09:36 -07:00
gsxdsm
46232118e1
FN-7253: add worktree picker to terminal sessions
...
Terminal sessions can now start from a selected safe project worktree.
- Add a Terminal modal worktree selector with searchable branch/path context and responsive styling.
- Thread worktree selection through session hooks, terminal routes, and terminal service creation.
- Centralize safe git worktree discovery and reuse it from git and terminal routes.
- Cover the picker, hook behavior, service worktree validation, and route wiring with tests.
- Document the terminal worktree picker and add a release changeset.
Files changed:
.changeset/fn-7253-terminal-worktree-picker.md | 7 +
docs/dashboard-guide.md | 13 +-
.../dashboard/app/components/TerminalModal.css | 189 +++++++++++++++-
.../dashboard/app/components/TerminalModal.tsx | 190 ++++++++++++++++-
.../components/__tests__/TerminalModal.test.tsx | 169 +++++++++++++++
.../hooks/__tests__/useTerminalSessions.test.ts | 237 ++++++++++++++++++++-
.../dashboard/app/hooks/useTerminalSessions.ts | 59 +++--
.../src/__tests__/routes-automation.test.ts | 37 ++--
.../src/__tests__/terminal-service.test.ts | 125 +++++++++++
packages/dashboard/src/git-worktree-safety.ts | 113 ++++++++++
.../dashboard/src/routes/register-git-github.ts | 54 +----
.../src/routes/register-messaging-scripts.ts | 1 +
.../src/routes/register-terminal-routes.ts | 1 +
packages/dashboard/src/terminal-service.ts | 66 ++++--
14 files changed, 1157 insertions(+), 104 deletions(-)
Fusion-Task-Id: FN-7253
Fusion-Task-Lineage: 6a0c0b4f-74cc-42b3-8bbd-2ca94c4c26d9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 00:03:37 -07:00
gsxdsm
7427fa3faa
FN-7249: show optional block child connectors
...
Show optional workflow block children as connected without persisting synthetic topology.
- Add visual-only optional-group boundary edges and refresh them after editor graph changes.
- Prevent manual connections from reserved boundary handles and exclude visual edges from IR saves/cycle checks.
- Cover built-in/custom optional block connector rendering across canvas and mobile graph tests.
- Document optional block boundary connector behavior and add a patch changeset.
Files changed:
.../fn-7249-optional-block-subnode-connections.md | 7 +
docs/dashboard-guide.md | 5 +-
.../app/components/WorkflowNodeEditor.tsx | 103 ++++--
.../__tests__/WorkflowNodeEditor.test.tsx | 90 ++++-
.../__tests__/workflow-flow-mapping.test.ts | 379 ++++++++++++++++++++-
.../__tests__/workflow-mobile-graph.test.ts | 14 +-
.../app/components/nodes/WorkflowNodeTypes.tsx | 15 +
.../app/components/workflow-flow-mapping.ts | 245 ++++++++++++-
.../app/components/workflow-mobile-graph.ts | 2 +
9 files changed, 799 insertions(+), 61 deletions(-)
Fusion-Task-Id: FN-7249
Fusion-Task-Lineage: edd5d37d-a0a9-4788-9b57-8e7d4649f459
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 23:41:51 -07:00
gsxdsm
41ff08a158
fix(FN-7261): prevent premature fast workflow merges
...
Block the merge requester when fast workflow traversal reaches merge before implementation steps are complete, and recover stale no-op merge proof by requeuing executable work instead of looping in blocked finalization.
Fusion-Task-Id: FN-7261
2026-06-29 23:36:34 -07:00
gsxdsm
a0b35c13af
FN-7266: open simple workflow step inspectors
...
Restore simple workflow editor row selections so editable steps reveal their details consistently across compact and mobile views.
- Show the node inspector in desktop compact simple-editor mode when an inspectable row is selected.
- Keep mobile inspector collapse behavior intact while allowing subsequent row selections to reopen details.
- Cover row and pencil selection paths for mobile, custom, built-in, and end-node cases.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7266-simple-workflow-inspector.md | 7 +++
.../app/components/WorkflowNodeEditor.tsx | 4 +-
.../__tests__/MobileWorkflowGraphView.test.tsx | 7 ++-
.../__tests__/WorkflowNodeEditor.test.tsx | 61 ++++++++++++++++++++--
4 files changed, 73 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7266
Fusion-Task-Lineage: 91e7f8d4-b56b-48a1-ad24-fb527c2730d4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 23:31:52 -07:00
gsxdsm
eb83c81ffb
fix(FN-7265): align per-step review workflow
2026-06-29 23:25:17 -07:00
gsxdsm
ea0707c573
FN-7264: add opt-in absolute file-browser paths
...
Add an opt-in project setting that lets the workspace file browser use slash-prefixed absolute paths while preserving existing confined defaults.
- Add the allowAbsoluteFileBrowserPaths project setting, docs, and changeset release note.
- Thread absolute-path validation through workspace file-browser listing, editing, file operations, and downloads without widening other path APIs.
- Add Settings UI controls and keep settings-specific file pickers project-relative.
- Cover absolute-path browsing, percent-literal paths, root navigation, and settings picker behavior with tests.
Files changed:
.changeset/fn-7264-absolute-file-browser-paths.md | 7 +
docs/settings-reference.md | 3 +
.../core/src/__tests__/settings-parity.test.ts | 8 +
packages/core/src/settings-schema.ts | 5 +
packages/core/src/types.ts | 5 +
.../app/__tests__/settings-sections.test.tsx | 41 +++++
packages/dashboard/app/components/FileBrowser.tsx | 26 ++-
.../dashboard/app/components/FileBrowserModal.tsx | 7 +
.../dashboard/app/components/SettingsModal.tsx | 34 +++-
.../components/__tests__/FileBrowserModal.test.tsx | 18 ++
.../__tests__/SettingsModal.general.test.tsx | 17 ++
.../settings/sections/GeneralSection.tsx | 9 +
.../__tests__/useWorkspaceFileBrowser.test.ts | 18 ++
.../dashboard/app/hooks/useWorkspaceFileBrowser.ts | 20 ++-
.../dashboard/src/__tests__/file-service.test.ts | 199 ++++++++++++++++++++-
packages/dashboard/src/file-service.ts | 129 ++++++++-----
16 files changed, 489 insertions(+), 57 deletions(-)
Fusion-Task-Id: FN-7264
Fusion-Task-Lineage: ec71facd-0345-4490-a3df-244b98e24c2d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 23:17:49 -07:00
gsxdsm
17fce43205
FN-7259: add mobile task popup setting
...
Add an opt-in mobile board-card route that opens task details in the existing popup.
- Add the openMobileTasksInPopup project setting, defaults, types, docs, and changeset.
- Expose the Appearance setting and include it in dashboard settings persistence.
- Route mobile board-card clicks without deep tabs into the task FloatingWindow while preserving dock and main-panel behavior.
- Add coverage for settings defaults, Appearance controls, mobile routing, and task popup sizing.
Files changed:
.changeset/fn-7259-mobile-task-popups.md | 7 ++++
docs/dashboard-guide.md | 5 ++-
docs/settings-reference.md | 1 +
.../core/src/__tests__/settings-defaults.test.ts | 13 ++++++
packages/core/src/settings-schema.ts | 5 +++
packages/core/src/types.ts | 7 ++++
packages/dashboard/app/App.tsx | 45 ++++++++++++++++++--
.../__tests__/App.openTasksInRightSidebar.test.ts | 48 +++++++++++++++++++++-
.../dashboard/app/components/FloatingWindow.css | 28 +++++++++++++
.../dashboard/app/components/SettingsModal.tsx | 1 +
.../components/__tests__/FloatingWindow.test.tsx | 22 ++++++++++
.../settings/sections/AppearanceSection.tsx | 7 ++++
.../sections/__tests__/AppearanceSection.test.tsx | 19 +++++++++
packages/dashboard/app/hooks/useAppSettings.ts | 5 +++
14 files changed, 206 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-7259
Fusion-Task-Lineage: 05f22978-ede7-4d13-940c-5108390959f7
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 23:12:56 -07:00
gsxdsm
2a5a108123
FN-7265: preserve workflow on refinements
...
Preserve workflow context when creating refinement tasks from completed or reviewed work.
- Inherit explicit source workflow selections when creating refinement tasks and seed the new card into the workflow entry column.
- Write task rows and workflow-selection rows atomically so refinements cannot be stranded outside their intended board.
- Clear successful done-task chat refinement composer bubbles and document the dashboard behavior.
- Add core and dashboard regression coverage for refinement workflow preservation.
Files changed:
.changeset/fuzzy-refinements-dance.md | 7 +
.changeset/preserve-refinement-workflow.md | 7 +
docs/dashboard-guide.md | 3 +-
.../src/__tests__/workflow-selection-store.test.ts | 159 +++++++++++++++++++--
packages/core/src/store.ts | 55 ++++++-
.../workflow-selection-cross-surface.test.tsx | 41 +++++-
packages/dashboard/app/components/TaskChatTab.tsx | 5 +
.../app/components/__tests__/TaskChatTab.test.tsx | 27 +++-
.../TaskDetailModal.definition-actions.test.tsx | 52 +++++++
9 files changed, 335 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-7265
Fusion-Task-Lineage: 48700e3e-9f3a-474e-806c-47db0b75fca1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 22:54:50 -07:00
gsxdsm
cfd9d5b32e
test(FN-7249): cover phantom worktree recovery
2026-06-29 22:30:23 -07:00
gsxdsm
9e23d6c403
fix(FN-7265): stop duplicate graph plan reviews
2026-06-29 22:29:22 -07:00