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
gsxdsm
5a6d110483
fix(engine): stop phantom-reservation audit churn and preserve worktree on phantom reclaim
...
reconcilePhantomCommittedReservations emitted a task:reconcile-phantom-committed-reservation audit row every maintenance tick for the same orphaned committed reservations even when zero child rows were pruned (~19k no-op writes/day). Gate the audit emission on actual pruned work; the FN-7069 contract is unchanged (committed reservation stays committed so the ID is never reused).
clearPhantomExecutorBinding unconditionally unregistered held worktree paths from activeSessionRegistry, defeating the moveTask(preserveWorktree:true) the self-healing phantom reclaim pairs it with: re-dispatch then acquired a brand-new worktree instead of reattaching (FN-7249 lost its first worktree this way). Add a preserveWorktrees option that clears only the stale in-memory executor/lock bookkeeping and leaves the session-registry path entries intact; the self-healing caller opts in. Non-self-healing callers keep the default full-clear behavior.
2026-06-29 21:56:14 -07:00
gsxdsm
095007c640
fix(FN-7262): honor step session setting
2026-06-29 21:51:13 -07:00
gsxdsm
09687f723c
fix(FN-7261): confirm AI no-op merge finalization
2026-06-29 21:38:57 -07:00
gsxdsm
d05ca2154f
FN-7258: restore mobile board scroll on return
...
Preserve the board lane position when mobile users return from full-panel task detail.
- Capture and restore board, column, project-content, and document scroll offsets for board detail navigation.
- Retry board scroll restoration across bounded animation frames after remount and hydration.
- Cover mobile and desktop Back to board behavior with focused tests and document the mobile scroll contract.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7258-mobile-board-scroll.md | 7 ++
docs/dashboard-guide.md | 2 +
.../__tests__/navigation-history.test.tsx | 111 ++++++++++++++++++---
.../hooks/__tests__/useBoardScrollRestore.test.ts | 43 +++++++-
.../dashboard/app/hooks/useBoardScrollRestore.ts | 45 ++++++---
.../utils/__tests__/boardScrollSnapshot.test.ts | 91 +++++++++++++++--
.../dashboard/app/utils/boardScrollSnapshot.ts | 41 +++++++-
7 files changed, 305 insertions(+), 35 deletions(-)
Fusion-Task-Id: FN-7258
Fusion-Task-Lineage: 97faf031-4244-4117-9948-45491c364134
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 21:02:34 -07:00
gsxdsm
9fb706944e
FN-7257: dismiss task details on Android Back
...
Route Android Back through Fusion's mobile navigation stack before native fallback.
- Dispatch a cancelable native-back event from the Capacitor shell before browser-history or app-exit fallback.
- Handle the native-back event in dashboard navigation history so mobile task details dismiss like browser Back and swipe-back.
- Cover Android Back behavior across native shell and task-detail navigation tests.
- Add a patch changeset for the published CLI/mobile bundle.
Files changed:
.changeset/fn-7257-android-back-task-detail.md | 7 +
.../__tests__/TaskDetail.swipe-back.test.tsx | 214 +++++++++++++++++++++
.../dashboard/app/hooks/useNavigationHistory.ts | 15 ++
packages/mobile/src/__tests__/native-shell.test.ts | 151 ++++++++++++++-
packages/mobile/src/index.ts | 7 +-
packages/mobile/src/plugins/native-shell.ts | 103 +++++++++-
6 files changed, 494 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-7257
Fusion-Task-Lineage: 90d0bc32-8968-4876-a5b4-51b34888d480
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 20:50:14 -07:00
gsxdsm
480d4d03fd
FN-7254: add worktree commit history targets
...
Allow Git Manager users to inspect commits and diffs from registered worktrees without changing mutation targets.
- Add read-only worktreePath targeting to Git commit list and commit diff APIs with registered-worktree validation.
- Add a Commits history target selector and Worktrees "View commits" shortcuts that clear stale diff state when targets change.
- Document the read-only scope and cover API, UI, responsive layout, and mutation-target invariants with tests.
Files changed:
.changeset/fn-7254-git-manager-worktree-commits.md | 7 +
.changeset/fn-7254-worktree-commit-target-ui.md | 7 +
.changeset/fn-7254-worktree-commits.md | 7 +
docs/dashboard-guide.md | 6 +-
packages/dashboard/app/api/legacy.ts | 15 +-
.../dashboard/app/components/GitManagerModal.tsx | 133 ++++++++++++++--
packages/dashboard/app/components/ScriptsModal.css | 113 ++++++++++++++
.../components/__tests__/GitManagerModal.test.tsx | 167 +++++++++++++++++++++
.../dashboard/src/__tests__/routes-git.test.ts | 34 +++++
.../dashboard/src/routes/register-git-github.ts | 31 +++-
10 files changed, 497 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-7254
Fusion-Task-Lineage: 37314175-fef4-4f8d-8268-cf27fee09857
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 20:24:24 -07:00
gsxdsm
45dd8082b3
FN-7256: reuse fresh task snapshots on board return
...
Reuse fresh task data when users return to Board or List views.
- Track the confirmed task snapshot context and freshness window before deciding whether task-view re-entry needs a catch-up fetch.
- Preserve SSE reconnect, stale snapshot, query, archive, project-change, missing-data, and error recovery fetch paths.
- Cover fresh, stale, empty, failed, no-snapshot, project-scoped, and reconnect return behavior in useTasks tests.
- Document the Board/List return cache behavior and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7256-board-return-cache.md | 7 +
docs/dashboard-guide.md | 2 +
.../dashboard/app/hooks/__tests__/useTasks.test.ts | 221 ++++++++++++++++++++-
packages/dashboard/app/hooks/useTasks.ts | 34 +++-
4 files changed, 258 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7256
Fusion-Task-Lineage: 14dd91c4-bf06-4dcf-8324-2572828fd2ee
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 20:16:41 -07:00
gsxdsm
224e8b4065
FN-7252: Preserve selected file across worktree switches
...
Keep the Files modal focused on the selected file when users switch worktrees.
- Preserve selected file state during workspace changes and restore the sidebar to the file parent directory.\n- Keep mobile users in the editor pane when switching worktrees with an active file.\n- Cover desktop and mobile worktree-switch reload behavior in FileBrowserModal tests.\n- Add a patch changeset for the Files modal fix.\n\nFiles changed:\n .changeset/fn-7252-file-browser-worktree-reload.md | 7 +\n .../dashboard/app/components/FileBrowserModal.tsx | 21 ++-\n .../components/__tests__/FileBrowserModal.test.tsx | 153 +++++++++++++++++++++\n .../dashboard/app/hooks/useWorkspaceFileBrowser.ts | 4 +\n 4 files changed, 182 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-7252
Fusion-Task-Lineage: b791e3d7-6a68-48aa-aeb4-c826cec7f760
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 19:51:38 -07:00
gsxdsm
f01e5c9651
FN-7247: document current workflow behavior
...
Refresh workflow documentation to match the latest runtime, dashboard, and agent tool behavior.
- Add a current workflow behavior inventory covering built-ins, fail-closed runtime semantics, optional gates, settings, tools, routing, and create forwarding.
- Clarify dashboard All workflows aggregation, workflow badges, and workflow-aware task creation behavior.
- Expand editor, agent, CLI, and settings docs for governed workflow authoring, values, trait inspection, and selection boundaries.
- Add docs drift tests requiring workflow docs index coverage and current behavior markers.
Files changed:
docs/agents.md | 5 +-
docs/cli-reference.md | 11 ++-
docs/dashboard-guide.md | 10 ++-
docs/settings-reference.md | 5 ++
docs/workflow-editor.md | 15 +++-
docs/workflow-steps.md | 48 ++++++++---
.../cli/src/__tests__/docs-readme-index.test.ts | 4 +
.../src/__tests__/workflow-docs-current.test.ts | 95 ++++++++++++++++++++++
8 files changed, 172 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-7247
Fusion-Task-Lineage: 72bf0c89-80a3-440c-b6aa-1aea315279f5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 19:46:23 -07:00
gsxdsm
e4a9dc6df5
FN-7250: remove deleted tasks from shared task state
...
Keep board and right-dock task lists in sync immediately after a task delete succeeds.
- Remove deleted ids from useTasks state as soon as the delete API call resolves.
- Update or clear the project task SWR cache to avoid stale remount hydration.
- Invalidate older refreshes so late pre-delete snapshots cannot resurrect removed cards.
- Cover board columns, right-dock rows, cache updates, rejection handling, archived rows, and late refresh behavior.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7250-delete-refresh.md | 7 +
.../app/components/__tests__/Board.test.tsx | 35 ++++
.../app/components/__tests__/DockTaskList.test.tsx | 30 ++++
.../dashboard/app/hooks/__tests__/useTasks.test.ts | 190 +++++++++++++++++++++
packages/dashboard/app/hooks/useTasks.ts | 33 +++-
5 files changed, 294 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7250
Fusion-Task-Lineage: f2271366-7494-402c-9a8b-9927dbe4401c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 19:36:01 -07:00
gsxdsm
ffe2092109
FN-7248: require confirmation for footer concurrency edits
...
Footer concurrency controls now require explicit confirmation before persisting scheduler-capacity changes.
- Add local pending state for global and project footer concurrency slider edits so dismissals revert instead of saving.
- Reuse Command Center confirmation copy for single and grouped concurrency changes.
- Cover confirm, cancel, close, Escape, outside-click, loading, and error behaviors in EngineControlMenu tests.
- Document the footer confirmation and dismissal semantics and add a patch changeset.
Files changed:
.../fn-7248-footer-concurrency-confirmation.md | 7 +
docs/dashboard-guide.md | 3 +-
.../dashboard/app/components/EngineControlMenu.tsx | 235 ++++++++++++++---
.../__tests__/EngineControlMenu.test.tsx | 287 +++++++++++++++++++--
4 files changed, 478 insertions(+), 54 deletions(-)
Fusion-Task-Id: FN-7248
Fusion-Task-Lineage: cbcd21fa-62c3-4c05-ac3d-67a641cf47c8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 19:29:36 -07:00
gsxdsm
be9e231004
fix(FN-7248): skip completed steps on resume
2026-06-29 19:23:38 -07:00
gsxdsm
ed21597690
FN-7251: suppress missing skill-pattern info logs
...
Suppress non-actionable missing configured skill-pattern messages while preserving resolver diagnostics.
- Filter configured skill-pattern miss diagnostics out of pi runtime logging paths.
- Keep missing configured patterns available as resolver diagnostics for programmatic visibility.
- Cover direct skill resolution and fn-agent creation logging with regression tests.
- Add a patch changeset for the published Fusion CLI package.
Files changed:
.../fn-7251-suppress-missing-skill-pattern-logs.md | 7 +++
.../src/__tests__/pi-create-fn-agent.test.ts | 21 ++++++---
.../engine/src/__tests__/skill-resolver.test.ts | 50 ++++++++++++++++++----
packages/engine/src/pi.ts | 1 +
packages/engine/src/skill-resolver.ts | 13 ++++++
5 files changed, 78 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-7251
Fusion-Task-Lineage: 3c61c349-f216-410b-9ead-24c310bb2415
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 19:17:37 -07:00
gsxdsm
797b30ce5d
FN-7242: add all-workflows board view and workflow badges
...
Adds an aggregate workflow board mode with workflow-name context on mixed-workflow task surfaces.
- Add a dashboard-only All workflows switcher option that unions visible workflow columns without persisting the sentinel as a real workflow selection.
- Thread workflow metadata into board cards, worktree groups, and task detail headers so mixed workflow views show the task workflow name.
- Update workflow status counts, quick-create targeting, docs, changesets, and regression coverage for aggregate board and badge behavior.
Files changed:
.changeset/fn-7242-all-workflows-board.md | 7 +
.changeset/fn-7242-task-detail-workflow-badge.md | 7 +
.changeset/fn-7242-workflow-badges.md | 7 +
docs/dashboard-guide.md | 8 +-
.../workflow-selection-cross-surface.test.tsx | 6 +-
packages/dashboard/app/components/Board.tsx | 295 +++++++++++++++++++--
packages/dashboard/app/components/Column.tsx | 6 +-
packages/dashboard/app/components/TaskCard.css | 16 +-
packages/dashboard/app/components/TaskCard.tsx | 23 +-
.../dashboard/app/components/TaskDetailModal.css | 14 +-
.../dashboard/app/components/TaskDetailModal.tsx | 43 ++-
.../dashboard/app/components/WorkflowSwitcher.tsx | 38 ++-
.../dashboard/app/components/WorktreeGroup.tsx | 5 +
.../app/components/__tests__/Board.test.tsx | 192 +++++++++++++-
.../__tests__/TaskCard.badge-wrap.test.tsx | 2 +
.../app/components/__tests__/TaskCard.test.tsx | 38 +++
.../__tests__/TaskDetailModal.rendering.test.tsx | 161 ++++++++++-
.../components/__tests__/WorkflowSwitcher.test.tsx | 50 ++++
.../__tests__/workflowStatusCounts.test.ts | 26 +-
.../app/components/workflowStatusCounts.ts | 16 +-
20 files changed, 887 insertions(+), 73 deletions(-)
Fusion-Task-Id: FN-7242
Fusion-Task-Lineage: 7ff9d35a-83ef-406c-88f4-a8846edad381
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 18:54:28 -07:00
gsxdsm
9fd286b1d3
fix(FN-7242): keep code review remediation recovering
2026-06-29 18:41:43 -07:00
gsxdsm
03d4f95e8a
FN-7224: separate Anthropic subscription and API-key auth
...
Separate Claude subscription OAuth from raw Anthropic API-key authentication surfaces.
- Add synthetic Anthropic Subscription and Anthropic API Key provider IDs while preserving upstream credential storage compatibility.\n- Map dashboard auth routes, CLI auth storage, Settings, and onboarding flows so OAuth login/logout and API-key save/clear no longer share one user-facing card.\n- Extend auth tests, docs, icons, and the release changeset for the split Anthropic authentication behavior.\n\nFiles changed:\n .changeset/fn-7224-separate-anthropic-api-key.md | 7 +\n docs/dashboard-guide.md | 2 +-\n docs/settings-reference.md | 2 +-\n .../src/commands/__tests__/provider-auth.test.ts | 233 +++++++++++++++++++--\n packages/cli/src/commands/provider-auth.ts | 202 +++++++++++++++---\n packages/dashboard/app/api/legacy.ts | 2 -\n .../app/components/ModelOnboardingModal.tsx | 146 ++++---------\n packages/dashboard/app/components/ProviderIcon.tsx | 7 +\n .../__tests__/AuthenticationSection.test.tsx | 89 ++++----\n .../__tests__/SettingsModal.models-auth.test.tsx | 77 ++++---\n .../components/__tests__/onboarding-flow.test.tsx | 29 ++-\n .../components/__tests__/settings-mobile.test.tsx | 17 +-\n .../settings/sections/AuthenticationSection.tsx | 20 +-\n .../dashboard/src/__tests__/routes-auth.test.ts | 111 ++++++----\n .../dashboard/src/routes/register-auth-routes.ts | 93 +++++---\n 15 files changed, 713 insertions(+), 324 deletions(-)
Fusion-Task-Id: FN-7224
Fusion-Task-Lineage: a2db2cf6-3452-4516-81e5-41dcdf47e1d2
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 18:32:36 -07:00
gsxdsm
90b62b7884
FN-7246: preserve explicit empty step dependencies
...
Preserve authored empty workflow step dependencies so parallel roots remain independent.
- Keep parser and TaskStep projections from dropping explicit empty dependsOn arrays.
- Treat missing dependsOn as the legacy previous-step fallback while allowing [] to mean no dependencies.
- Cover heading and JSON parsers plus parallel foreach scheduling with regression tests and docs.
Files changed:
.changeset/fn-7246-workflow-depends-on-empty.md | 7 +++++++
docs/workflow-steps.md | 4 ++--
packages/core/src/__tests__/step-parsers.test.ts | 8 ++++----
packages/core/src/step-parsers.ts | 30 +++++++++++++++++++++---------
packages/core/src/types.ts | 13 +++++++++----
packages/engine/src/__tests__/workflow-parse-steps.test.ts | 12 ++++++++++++
packages/engine/src/__tests__/workflow-step-parallel.test.ts | 30 +++++++++++++++++++++++++++++-
packages/engine/src/workflow-graph-foreach.ts | 9 +++++++--
packages/engine/src/workflow-node-handlers.ts | 6 +++++-
9 files changed, 96 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-7246
Fusion-Task-Lineage: a75687fa-5711-4509-b60f-43669323a6c0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 18:05:44 -07:00
gsxdsm
6f2b8ab6e5
FN-7244: retry unavailable Plan Review without replanning
...
Preserve existing task specs when Plan Review retries after reviewer outages.
- Route plan-review-unavailable triage tasks through the Plan Review/finalization path instead of the planner.
- Validate existing PROMPT.md content and fail clearly when it is missing, empty, or invalid.
- Preserve retry status across interrupted triage work and cover retry behavior with engine tests.
- Document the retry lifecycle and add a patch changeset.
Files changed:
.../fn-7244-plan-review-unavailable-retry.md | 7 +
docs/architecture.md | 2 +
docs/workflow-steps.md | 2 +
.../triage-plan-review-unavailable-retry.test.ts | 251 +++++++++
packages/engine/src/__tests__/triage.test.ts | 604 +++++++++++++++++++++
packages/engine/src/triage.ts | 108 +++-
6 files changed, 945 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-7244
Fusion-Task-Lineage: 80e790e3-d2b9-4309-beec-3dbf6a03db39
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 17:40:00 -07:00
gsxdsm
72e50ac8c6
fix(artifacts): support task image artifact previews ( #1821 )
...
## Summary
Task image artifacts can now complete the full loop: agents and chat
flows can register base64 image bytes, and task details can display
those artifacts with an expandable preview instead of leaving them as
undiscoverable metadata.
This keeps binary payloads on the existing managed artifact storage
path, validates that base64 payloads are real non-empty image data, and
documents the new `dataBase64` field for engine-tool callers. The task
details artifacts gallery now treats image cards as expandable while
leaving document, audio, video, and generic artifact cards on their
existing behavior.
## Validation
- `pnpm --filter @fusion/dashboard exec vitest run
app/components/__tests__/TaskDocumentsTab.test.tsx
src/routes/__tests__/artifacts-route-integration.test.ts
--silent=passed-only --reporter=dot`
- `pnpm --filter @fusion/engine exec vitest run
src/__tests__/agent-artifact-tools.test.ts --silent=passed-only
--reporter=dot`
---
[](https://github.com/EveryInc/compound-engineering-plugin )

<!-- stage-review-badge-begin -->
---
<a href="https://stagereview.app/Runfusion/Fusion/pull/1821 ">
<picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://stagereview.app/assets/gh-open-in-stage-dark.svg ">
<img src="https://stagereview.app/assets/gh-open-in-stage-light.svg "
alt="Open in Stage">
</picture>
</a>
<!-- stage-review-badge-end -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added inline base64 (`dataBase64`) support for registering image
artifacts from agent tools, including task-scoped chat registration.
* Task details now allow expanding image media artifacts in a preview
lightbox with accessible keyboard interaction.
* **Bug Fixes**
* Improved verification for media streaming by validating raw binary
responses; added HTTP 200/404 coverage for image endpoints.
* **Documentation**
* Updated `fn_artifact_register` tool documentation to include the
optional `dataBase64` parameter.
* **Tests**
* Added coverage for base64 validation/error handling and lightbox
expand/close behavior (including Escape and Tab focus trapping).
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-29 17:33:50 -07:00
gsxdsm
9440a00ced
Merge branch 'main' into fix/external-review-checkout
2026-06-29 17:33:03 -07:00
gsxdsm
e975b7f1a8
test: stabilize dashboard PR repository fixtures ( #1824 )
...
## Summary
- Mocks `git remote get-url origin` for dashboard PR lifecycle tests via
`execFileSync`, matching the production repository resolver.
- Keeps the missing-repository error covered for cases where no project
remote is resolvable.
- Tightens dashboard PR lifecycle assertions so PR status checks use the
resolved owner/repo.
## Verification
- `corepack pnpm build` — pass
- `corepack pnpm --filter @runfusion/fusion exec vitest run
src/commands/__tests__/dashboard.test.ts --silent=passed-only
--reporter=dot --no-color` — pass, 86 tests
- `corepack pnpm --filter @runfusion/fusion exec vitest run
src/commands/__tests__/dashboard.test.ts -t
"processPullRequestMergeTask|PR-first auto-merge queue"
--silent=passed-only --reporter=dot --no-color` — pass, 7 tests
- Clean rebuilt stale bundled plugin dist, then `corepack pnpm --filter
@runfusion/fusion exec vitest run --changed
24d78816a0 --passWithNoTests
--silent=passed-only --reporter=dot --no-color` — pass, 75 files / 1186
tests
- `corepack pnpm check:changesets` — pass
- `corepack pnpm lint` — pass
- `corepack pnpm typecheck` — pass
No changeset: test-only fixture coverage; no package runtime behavior
changed.
## CI note
The current Gate failure is the pre-existing engine-core workflow
expectation drift fixed by PR #1822 . Lint, Typecheck, Build, CodeRabbit,
and Greptile passed on this PR.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Tests**
* Expanded dashboard and pull request merge coverage to verify
repository detection and merge-status handling across merge lifecycle
paths.
* Added a failure-path assertion for when the app can’t determine the
current repository, ensuring the operation stops and surfaces the
expected error.
* Improved assertions for auto-merge and manual merge flows to confirm
the correct repository lookup occurs in each scenario.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Current Gate status
`Gate` is failing on current `origin/main` before these PR changes. I
reproduced the same engine-core failures directly on `origin/main`
(`task-pipeline-smoke.test.ts` and
`workflow-graph-executor-parity.test.ts`, caused by the new
`completion-summary` / `post-merge-verification` default workflow
nodes). The PR-local review feedback is addressed and focused validation
passes; the remaining Gate failure should be fixed in the upstream
workflow-test drift PR, not copied into this PR branch.
2026-06-29 17:32:46 -07:00
Phil Larson
4c31441f58
fix: reset PR fixture git remote mock consistently
2026-06-29 17:18:59 -07:00
copilot-swe-agent[bot]
8544b5b08b
fix(FN-7143): simplify base64 validation and improve error messages
2026-06-30 00:18:04 +00:00
Phil Larson
06b863ed2f
fix: address external review checkout review feedback
2026-06-29 17:17:59 -07:00
Phil Larson
b829821dd9
fix(engine): review explicit external checkouts
2026-06-29 17:17:59 -07:00
Phil Larson
6763584f64
fix: align dashboard PR fixture cwd mock
2026-06-29 17:17:35 -07:00
Phil Larson
bdd0a1cc2c
test(cli): stabilize dashboard pr repository fixtures
2026-06-29 17:17:35 -07:00
copilot-swe-agent[bot]
1bf8d83bc1
Merge remote-tracking branch 'origin/main' into fusion/fn-7143
2026-06-30 00:14:37 +00:00
Phil Larson
af99a353f0
test(engine): align workflow gate expectations
2026-06-29 17:13:15 -07:00
Phil Larson
90756f92b0
fix(core): await secrets store close during TaskStore shutdown
2026-06-29 17:11:59 -07:00
gsxdsm
d7f26bb6cf
fix(FN-7219): stabilize compound engineering workflow
2026-06-29 16:42:11 -07:00
gsxdsm
42226edde1
FN-7245: expose workflow authoring tools to agents
...
Expose workflow authoring and selection tools through agent-visible extension surfaces.
- Register workflow list/get/create/update/delete/settings/select and trait-list tools in the published pi extension.
- Export shared workflow tool schemas/factories and include workflow settings in centralized authoring tool sets.
- Update action-gate classifications, permission examples, docs, tests, and the changeset for the new agent workflow surface.
Files changed:
.changeset/FN-7245-workflow-tools.md | 7 +
docs/agents.md | 4 +-
docs/cli-reference.md | 17 ++
docs/workflow-steps.md | 9 +-
.../src/__tests__/extension-workflow-tools.test.ts | 244 +++++++++++++++++++++
packages/cli/src/__tests__/extension.test.ts | 8 +
packages/cli/src/extension.ts | 142 ++++++++++++
packages/core/src/types.ts | 6 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 9 +-
.../planning-document-tools-exposure.test.ts | 19 +-
.../engine/src/__tests__/agent-action-gate.test.ts | 8 +
.../agent-workflow-tools-exposure.test.ts | 30 ++-
.../src/__tests__/gating-classifications.test.ts | 13 +-
.../src/__tests__/permanent-agent-gating.test.ts | 4 +-
packages/engine/src/agent-tools.ts | 13 +-
packages/engine/src/gating-classifications.ts | 6 +-
packages/engine/src/index.ts | 7 +
17 files changed, 506 insertions(+), 40 deletions(-)
Fusion-Task-Id: FN-7245
Fusion-Task-Lineage: 82501602-7177-4ee8-a67b-32de35aa73de
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 16:35:51 -07:00
gsxdsm
5b668d297f
FN-7238: add Done column sort modes
...
Add Done-column controls for choosing descending completion-date or task-ID order.
- Add a Done-only sort selector shared by legacy and workflow complete columns.
- Extend task display sorting with completion-date and task-ID descending modes.
- Cover board, column, and sorting behavior with regression tests and docs.
- Add a minor changeset for the published CLI package.
Files changed:
.changeset/fn-7238-done-column-sort.md | 7 +
docs/dashboard-guide.md | 5 +-
packages/dashboard/app/components/Board.tsx | 28 +++-
packages/dashboard/app/components/Column.tsx | 33 ++++-
.../app/components/__tests__/Board.test.tsx | 133 ++++++++++++++++-
.../app/components/__tests__/Column.test.tsx | 158 +++++++++++++++++++++
.../app/components/__tests__/taskSorting.test.ts | 114 +++++++++++++++
packages/dashboard/app/components/taskSorting.ts | 39 ++++-
packages/dashboard/app/styles.css | 35 +++++
9 files changed, 538 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-7238
Fusion-Task-Lineage: 143722e9-0b59-41e5-954d-810263f18ba9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 15:46:35 -07:00
gsxdsm
0ff60a79d1
FN-7243: focus auth token recovery on unauthorized
...
Focus daemon authorization failures on auth-token recovery instead of engine remediation.
- Pass auth-token recovery state into dashboard banners so engine unavailable and status remediation banners stay hidden while recovery is open.
- Improve auth recovery dialog focus styling and tests for unauthorized daemon responses.
- Add release notes for focused auth-token recovery behavior.
Files changed:
.changeset/auth-token-recovery-focus.md | 7 ++
.changeset/fn-7243-auth-recovery-banner.md | 7 ++
packages/dashboard/app/App.tsx | 1 +
packages/dashboard/app/__tests__/auth.test.ts | 31 ++++-
.../app/components/AuthTokenRecoveryDialog.css | 7 +-
.../__tests__/AuthTokenRecoveryDialog.test.tsx | 41 +++++-
.../app/components/dashboard/DashboardBanners.tsx | 14 ++-
.../dashboard/__tests__/DashboardBanners.test.tsx | 138 ++++++++++++++++++++-
.../dashboard/app/components/dashboard/types.ts | 1 +
.../hooks/__tests__/useAuthTokenRecovery.test.ts | 9 +-
10 files changed, 238 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-7243
Fusion-Task-Lineage: 8292080d-a310-4fdc-9b5f-baa17a592bad
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 15:34:06 -07:00
gsxdsm
c6c4a003f9
FN-7241: add per-block task chat timestamps
...
Show relative timestamps throughout task-detail chat transcript blocks.
- Add reusable timestamp rendering for text, tool, thinking, and user message blocks.
- Align timestamp styling with quiet, responsive task chat metadata treatments.
- Cover empty, loading, invalid timestamp, block timestamp, and tool fallback cases.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7241-task-chat-block-timestamps.md | 7 ++
packages/dashboard/app/components/TaskChatTab.css | 44 +++++++++++-
packages/dashboard/app/components/TaskChatTab.tsx | 65 +++++++++++++++---
.../app/components/__tests__/TaskChatTab.test.tsx | 80 ++++++++++++++++++++--
4 files changed, 179 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-7241
Fusion-Task-Lineage: 87470de1-4113-4c6a-832d-ced4b1675a76
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 15:28:46 -07:00
gsxdsm
3886e585dd
fix(FN-7143): show compound workflow node progress
...
Record skill-backed workflow nodes into workflowStepResults and teach task progress surfaces to include those graph-node records without re-showing disabled optional workflow checks.
2026-06-29 14:59:16 -07:00