gsxdsm
ec0fa960d7
FN-7382: add triage plan auto-approve toggle
...
Add a board-column shortcut for toggling project plan auto-approval.
- Surface an Auto-approve plan switch in Triage and workflow intake/hold column menus.
- Wire the dashboard setting hook to persist planApprovalMode between workflow and auto-approve-all with optimistic rollback.
- Cover legacy and workflow board propagation plus column menu behavior with tests.
- Document the shortcut and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7382-triage-auto-approve-toggle.md | 7 ++
docs/dashboard-guide.md | 2 +
docs/settings-reference.md | 2 +-
packages/dashboard/app/App.tsx | 4 +
packages/dashboard/app/components/Board.tsx | 7 +-
packages/dashboard/app/components/Column.tsx | 35 ++++++-
.../app/components/__tests__/Board.test.tsx | 55 +++++++++-
.../app/components/__tests__/Column.test.tsx | 75 ++++++++++++++
.../app/components/dashboard/MainContent.tsx | 6 ++
.../dashboard/app/components/dashboard/types.ts | 2 +
.../app/hooks/__tests__/useAppSettings.test.ts | 114 +++++++++++++++++++++
packages/dashboard/app/hooks/useAppSettings.ts | 39 +++++++
12 files changed, 343 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7382
Fusion-Task-Lineage: 1db96b50-3a8f-4074-b957-c30d1745aa23
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 11:01:50 -07:00
gsxdsm
af6e671e72
FN-7385: preserve live worktrees with fresh fallback
...
Preserve active worktree owners by retrying acquisition on a fresh sibling checkout.
- Add executor fallback that detects active cleanup refusals and creates bounded sibling branches in fresh generated worktrees.\n- Cover DB-only, same-task workflow-step, existing-branch, and exhausted-suffix conflict paths with regression tests.\n- Document the live worktree conflict fallback and add a patch changeset for the published CLI package.\n\nFiles changed:\n .../fn-7385-active-worktree-fresh-fallback.md | 7 +\n docs/architecture.md | 1 +\n .../__tests__/executor-worktree-conflict.test.ts | 103 +++++++++++++-\n .../engine/src/__tests__/executor-worktree.test.ts | 153 ++++++++++++++++++---\n packages/engine/src/executor.ts | 90 ++++++++----\n 5 files changed, 312 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-7385
Fusion-Task-Lineage: 02c31656-1248-49c0-9063-0750cc8e41c6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 10:55:57 -07:00
gsxdsm
d94c3591d3
FN-7381: honor project auto plan approval
...
Honor project-level auto plan approval across fresh and recovered triage finalization.
- Merge effective workflow settings during approved-task recovery before resolving the manual plan approval gate.
- Keep release authorization and Workflow Plan Review independent from manual plan approval bypasses.
- Add regression coverage for stored workflow approval settings overridden by project auto approval.
- Document the planApprovalMode precedence and release the fix as a patch.
Files changed:
.changeset/fn-7381-auto-plan-approval.md | 7 ++++
docs/settings-reference.md | 2 +-
docs/workflow-steps.md | 2 ++
.../src/__tests__/effective-settings-merge.test.ts | 12 +++++++
.../triage-plan-review-unavailable-retry.test.ts | 27 +++++++++++++-
packages/engine/src/__tests__/triage.test.ts | 42 ++++++++++++++++++++++
packages/engine/src/triage.ts | 13 ++++---
7 files changed, 99 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7381
Fusion-Task-Lineage: c00fd0d9-ec0a-4dc5-8d6f-b49640157365
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 10:49:58 -07:00
gsxdsm
e341c0673f
FN-7379: render planner questions outside tool groups
...
Make planner clarification prompts stay answerable when assistant messages include other tool calls.
- Extract fn_ask_question cards before grouping generic chat tool calls.
- Keep non-question tools in the existing grouped tool-call details.
- Cover persisted and streamed mixed-tool planner transcripts with actionable question assertions.
- Add a patch changeset for the planner-chat fix.
Files changed:
.changeset/fn-7379-planner-question-cards.md | 7 +++
.../app/components/StandardChatSurface.tsx | 73 +++++++++++++++-------
.../app/components/TaskPlannerChatTab.tsx | 3 +
.../__tests__/TaskPlannerChatTab.test.tsx | 48 ++++++++++++--
4 files changed, 103 insertions(+), 28 deletions(-)
Fusion-Task-Id: FN-7379
Fusion-Task-Lineage: 5e88f991-cbcf-49d8-a815-fc44d49bad10
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 10:45:19 -07:00
gsxdsm
37027632e0
FN-7378: upgrade pi SDK dependencies
...
Upgrade the bundled pi SDK packages and compatibility imports for the 0.80.3 release.
- Bump @earendil-works/pi-ai and @earendil-works/pi-coding-agent consumers to ^0.80.3.
- Update pi SDK import paths for the new compatibility and API export map layout.
- Refresh dependency contract tests and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7378-pi-sdk-upgrade.md | 7 ++
packages/cli/package.json | 4 +-
packages/cli/src/__tests__/package-config.test.ts | 8 +-
packages/dashboard/package.json | 2 +-
packages/engine/package.json | 4 +-
.../custom-providers-openai-completions.test.ts | 8 +-
pnpm-lock.yaml | 108 ++++++++++-----------
7 files changed, 72 insertions(+), 69 deletions(-)
Fusion-Task-Id: FN-7378
Fusion-Task-Lineage: ed8847dc-2adf-4ede-aa75-045f2e2436a0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 10:37:44 -07:00
gsxdsm
a4ef439212
FN-7376: preserve planner chat stop icon
...
Keep Planner Chat mobile action text hiding from clipping the streaming stop icon.
- Narrow the mobile Planner Chat send-button label selector to leave the shared stop icon span visible.
- Add regression coverage for send and stop icon visibility during planner thinking.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7376-planner-chat-stop-icon.md | 7 ++++
.../app/components/TaskPlannerChatTab.css | 6 +++-
.../__tests__/TaskPlannerChatTab.test.tsx | 41 ++++++++++++++++++++++
3 files changed, 53 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7376
Fusion-Task-Lineage: 45ef720e-5ae1-4890-a2ed-afc4f97a8bb0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 10:30:45 -07:00
gsxdsm
427ce04a6f
FN-7374: stop advertising Claude Sonnet 5 statically
...
Stop Fusion from statically offering Claude Sonnet 5 when account availability is unknown.
- Remove the supplemental direct Anthropic Claude Sonnet 5 model registration and static pricing row.
- Keep Claude CLI supplemental metadata from force-adding Sonnet 5 while preserving other extra Claude models.
- Update model registry, pricing, adapter, and provider tests to expect unavailable or upstream-only Sonnet 5 handling.
- Add a patch changeset for the operator-facing fix.
Files changed:
.changeset/fn-7374-anthropic-sonnet-5-404.md | 7 ++++++
packages/core/src/__tests__/model-pricing.test.ts | 20 +++++++---------
packages/core/src/anthropic-models.ts | 24 +++----------------
packages/core/src/model-pricing.ts | 11 ++-------
.../dashboard/src/__tests__/routes-auth.test.ts | 13 ++++++----
.../src/__tests__/pi-create-fn-agent.test.ts | 28 ++++++----------------
.../src/cli-agent/adapters/__tests__/pi.test.ts | 6 ++---
packages/pi-claude-cli/index.ts | 13 ++--------
.../src/__tests__/process-manager.test.ts | 4 ++--
.../pi-claude-cli/src/__tests__/provider.test.ts | 12 ++--------
10 files changed, 44 insertions(+), 94 deletions(-)
Fusion-Task-Id: FN-7374
Fusion-Task-Lineage: 9c498bb4-c4c1-4dd8-ae80-869dfb1d4c2c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 10:23:39 -07:00
gsxdsm
919420e11a
FN-7373: enforce active worktree cap
...
Enforce maxWorktrees at the task-store transition boundary so active execution worktrees cannot exceed the operator cap.
- Reject allocated moves into in-progress when existing active or pending holders already meet maxWorktrees.
- Count in-progress tasks and pending in-progress transitions while excluding the task being moved.
- Cover scheduler and hold-release paths with regression tests and document the hard-cap invariant.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7373-max-worktrees-cap.md | 7 ++
docs/architecture.md | 2 +-
packages/core/src/__tests__/store-movement.test.ts | 80 +++++++++++++++++++++-
packages/core/src/store.ts | 50 ++++++++++++++
packages/engine/src/__tests__/hold-release.test.ts | 52 ++++++++++++++
.../__tests__/scheduler-workflow-cutover.test.ts | 53 ++++++++++++++
6 files changed, 242 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7373
Fusion-Task-Lineage: be4a9649-f6ae-475f-9395-07433e98de5c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 10:18:32 -07:00
gsxdsm
17505231d6
FN-7372: add GitHub tracking context menu action
...
Expose GitHub tracking enablement from task context menus while reusing existing task update paths.
- Add an Enable GitHub tracking action to the shared task context menu model for untracked tasks with update-capable hosts.
- Wire board cards and list rows to PATCH githubTracking, refresh local snapshots, close stale menus, and show task-detail toasts.
- Extend context-menu/card/list tests and add a changeset for the published CLI package.
Files changed:
.../fn-7372-enable-github-tracking-context-menu.md | 7 +++
packages/dashboard/app/components/Column.tsx | 2 +-
packages/dashboard/app/components/ListView.tsx | 20 ++++++++-
packages/dashboard/app/components/TaskCard.tsx | 27 +++++++++---
.../dashboard/app/components/TaskContextMenu.tsx | 16 ++++++-
.../app/components/__tests__/ListView.test.tsx | 51 +++++++++++++++++++++-
.../app/components/__tests__/TaskCard.test.tsx | 41 +++++++++++++++++
.../components/__tests__/TaskContextMenu.test.tsx | 38 ++++++++++++++++
packages/dashboard/app/hooks/useTasks.ts | 2 +-
9 files changed, 193 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-7372
Fusion-Task-Lineage: 0d2a05fb-6152-4e29-ac2c-88dd055132ee
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 10:13:33 -07:00
gsxdsm
627c5fb0bd
FN-7371: clarify CI mode regression guard
...
Clarifies the test-infrastructure regression guard for CI mode selection.\n\n- Update the FNXC rationale for the CI=true --print-mode subprocess test.\n- Document that full-suite mode remains an explicit opt-in via --full or FUSION_TEST_FULL.\n\nFiles changed:\n scripts/__tests__/test-changed.test.mjs | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7371
Fusion-Task-Lineage: b7482ef1-4db7-4003-85f7-3466470d3dff
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 10:04:55 -07:00
gsxdsm
6d1507aa8f
FN-7380: Close task detail on delete
...
Close task detail hosts immediately after delete confirmation.
- Wire the embedded list split-detail host to clear selected task state when detail content requests close.
- Keep task-detail delete close idempotent across initial delete failures and follow-up prompts.
- Add regression coverage for split-detail closing and optimistic delete failure handling.
- Add a patch changeset for the operator-visible delete detail behavior.
Files changed:
.changeset/fn-7380-task-detail-delete-close.md | 7 ++++
packages/dashboard/app/components/ListView.tsx | 15 +++++++
.../dashboard/app/components/TaskDetailModal.tsx | 4 +-
.../app/components/__tests__/ListView.test.tsx | 22 ++++++++++
.../components/__tests__/TaskDetailModal.test.tsx | 49 ++++++++++++++++++++++
5 files changed, 95 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7380
Fusion-Task-Lineage: 0b7fa676-cf89-4116-aa64-c10840b6fb07
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 10:00:14 -07:00
gsxdsm
a9e2baa9f8
FN-7367: link imported GitHub issues to tracking
...
Imported GitHub issues can now adopt their source issue as the tracking issue without changing ordinary task defaults.
- Add the project-scoped githubLinkImportedIssuesToTracking setting with docs, Settings UI, and defaults.
- Honor the import-only setting across dashboard, CLI, and extension GitHub issue import paths.
- Cover saved settings and import tracking behavior with CLI, dashboard, and parity tests.
- Add a minor changeset for the published CLI package.
Files changed:
.changeset/fn-7367-github-import-tracking.md | 7 +++
docs/settings-reference.md | 3 +-
packages/cli/src/__tests__/extension.test.ts | 73 ++++++++++++++++++++++
.../task-command-github-import-tracking.test.ts | 16 +++++
packages/cli/src/commands/__tests__/task.test.ts | 28 +++++++++
packages/cli/src/commands/task.ts | 45 +++++++------
packages/cli/src/extension.ts | 45 +++++++------
.../core/src/__tests__/settings-parity.test.ts | 4 ++
packages/core/src/settings-schema.ts | 1 +
packages/core/src/types.ts | 6 ++
.../app/__tests__/settings-save-split.test.ts | 19 ++++++
.../dashboard/app/components/SettingsModal.tsx | 6 ++
.../__tests__/SettingsModal.general.test.tsx | 59 +++++++++++++++++
.../__tests__/SettingsModal.test-harness.tsx | 1 +
.../settings/sections/GeneralSection.tsx | 9 +++
.../dashboard/src/__tests__/routes-github.test.ts | 45 +++++++++++++
.../dashboard/src/routes/register-git-github.ts | 7 +++
17 files changed, 325 insertions(+), 49 deletions(-)
Fusion-Task-Id: FN-7367
Fusion-Task-Lineage: 43671cdf-7e0d-4b7a-9ba2-54c9a367dfec
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 09:50:57 -07:00
gsxdsm
12ee9a92d2
FN-7361: add exact tool permission overrides
...
Add exact tool-name permission overrides for permanent agent tool usage.
- Add persisted toolRules policy support with normalization, project-default inheritance, and escalation comparison.
- Enforce exact tool dispositions before category rules in engine gating and permanent-agent decisions.
- Extend the permission editor, agent/settings routes, translations, docs, and tests for fine-grained tool controls.
Files changed:
.changeset/fn-7361-tool-permissions.md | 7 +
docs/agents.md | 18 ++-
docs/settings-reference.md | 12 +-
.../agent-permission-policy-resolution.test.ts | 58 +++++++-
.../src/__tests__/agent-permission-policy.test.ts | 17 +++
...settings-schema-agent-permission-policy.test.ts | 6 +-
packages/core/src/agent-permission-policy.ts | 87 ++++++++++--
packages/core/src/index.ts | 2 +-
packages/core/src/types.ts | 19 ++-
.../dashboard/app/components/AgentDetailView.tsx | 17 +--
.../app/components/AgentPermissionPolicyEditor.css | 59 +++++++-
.../app/components/AgentPermissionPolicyEditor.tsx | 156 ++++++++++++++++++++-
.../__tests__/AgentPermissionPolicyEditor.test.tsx | 92 +++++++++++-
.../settings/sections/AgentPermissionsSection.tsx | 6 +-
.../dashboard/src/__tests__/routes-agents.test.ts | 79 +++++++++++
.../src/__tests__/routes-settings.test.ts | 21 +++
.../src/routes/register-agent-core-routes.ts | 37 +++--
.../agent-action-gate-project-default.test.ts | 34 +++++
.../engine/src/__tests__/agent-action-gate.test.ts | 43 ++++++
.../src/__tests__/gating-classifications.test.ts | 55 ++++++++
packages/engine/src/agent-action-gate.ts | 17 ++-
packages/engine/src/permanent-agent-gating.ts | 11 +-
packages/i18n/locales/en/app.json | 15 +-
packages/i18n/locales/es/app.json | 15 +-
packages/i18n/locales/fr/app.json | 15 +-
packages/i18n/locales/ko/app.json | 15 +-
packages/i18n/locales/zh-CN/app.json | 15 +-
packages/i18n/locales/zh-TW/app.json | 15 +-
28 files changed, 878 insertions(+), 65 deletions(-)
Fusion-Task-Id: FN-7361
Fusion-Task-Lineage: 006e4311-91a5-4792-9a54-feaba892129a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 09:45:30 -07:00
gsxdsm
914c7c189f
FN-7377: hide failed banner in expanded planner chat
...
Hide failed-task alert chrome while the task planner chat is maximized.
- Gate the failed-task banner on Planner Chat expansion state so the expanded conversation gets the full detail surface.\n- Preserve failed-banner visibility for normal detail, collapsed Planner Chat, and expanded Activity views.\n- Add dashboard regression coverage and a patch changeset for the published CLI package.\n\nFiles changed:\n .changeset/fn-7377-planner-chat-failed-banner.md | 7 ++\n .../dashboard/app/components/TaskDetailModal.tsx | 7 +-\n .../components/__tests__/TaskDetailModal.test.tsx | 101 +++++++++++++++++++++\n 3 files changed, 114 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7377
Fusion-Task-Lineage: 5cd8c846-a27d-4040-8124-ecf547300c78
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 09:35:21 -07:00
gsxdsm
67f93cedd9
FN-7370: show thinking effort in model log markers
...
Display configured thinking effort alongside runtime task-log model markers.
- Add a shared formatter for model marker annotations and use it for triage, executor, reviewer, and workflow-step logs.
- Teach dashboard model parsing to ignore parenthesized marker diagnostics while preserving provider/model resolution.
- Cover thinking-effort markers with engine and dashboard tests, docs, and a patch changeset.
Files changed:
.changeset/fn-7370-thinking-effort-model-logs.md | 7 +++
docs/agents.md | 2 +
packages/dashboard/app/components/TaskChatTab.tsx | 7 +--
.../app/components/__tests__/TaskChatTab.test.tsx | 6 +--
...skDetailModal.models-progress-workflow.test.tsx | 6 +--
.../__tests__/WorkflowResultsTab.test.tsx | 6 +--
.../__tests__/effective-model-resolution.test.ts | 17 ++++--
.../app/components/effective-model-resolution.ts | 23 +++++---
.../src/__tests__/executor-model-marker.test.ts | 62 ++++++++++++++++++++++
.../engine/src/__tests__/executor-test-helpers.ts | 4 ++
.../__tests__/executor-workflow-step-model.test.ts | 23 +++++++-
packages/engine/src/__tests__/pi.test.ts | 12 ++++-
packages/engine/src/__tests__/reviewer.test.ts | 37 +++++++++++++
packages/engine/src/__tests__/triage.test.ts | 20 ++++++-
packages/engine/src/executor.ts | 17 ++++--
packages/engine/src/pi.ts | 19 +++++++
packages/engine/src/reviewer.ts | 7 +--
packages/engine/src/triage.ts | 4 +-
18 files changed, 244 insertions(+), 35 deletions(-)
Fusion-Task-Id: FN-7370
Fusion-Task-Lineage: 2c94a20c-77e1-41db-8af0-76239b30e3c4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 09:30:00 -07:00
gsxdsm
4805182d0c
FN-7369: add custom answers to Planning Mode confirms
...
Planning Mode confirm prompts can now preserve a user-authored Other answer instead of forcing Yes or No.
- Add an Other option with a textarea to confirm-style Planning Mode questions.
- Submit confirm Other answers with the shared `_other` payload and render them in agent/history formatting.
- Cover confirm Other behavior in modal flow and formatter tests.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7369-confirm-other.md | 7 ++
.../dashboard/app/components/PlanningModeModal.css | 10 ++
.../dashboard/app/components/PlanningModeModal.tsx | 74 +++++++++---
.../PlanningModeModal.planning-flow.test.tsx | 125 +++++++++++++++++++++
.../planning-interview-formatters.test.ts | 27 +++++
packages/dashboard/src/planning.ts | 10 +-
6 files changed, 234 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-7369
Fusion-Task-Lineage: 67b4d943-8ff3-4502-bca1-7e74eb95ac06
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 09:24:50 -07:00
gsxdsm
7e5d908efa
FN-7375: fix Activity dropdown clipping
...
Keep the task Activity view selector visible without blanking the mobile tab strip.
- Portal the Activity view menu to the document body and clamp its fixed position to the visual viewport.
- Close and refocus the menu safely across task changes, scrolling, resizing, keyboard selection, and outside clicks.
- Add regression coverage for mobile clipping, tab-strip preservation, and the changeset release note.
Files changed:
.changeset/fn-7375-activity-dropdown-overlay.md | 7 +
.../dashboard/app/components/TaskDetailModal.css | 15 +-
.../dashboard/app/components/TaskDetailModal.tsx | 186 ++++++++++++++++++---
.../__tests__/TaskDetailModal.css.test.ts | 7 +-
...etailModal.responsive-and-dependencies.test.tsx | 12 +-
.../TaskDetailModal.task-activity-chat.test.tsx | 61 +++++++
6 files changed, 254 insertions(+), 34 deletions(-)
Fusion-Task-Id: FN-7375
Fusion-Task-Lineage: 5999507a-edd3-4485-935a-885f7c143ed4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 09:18:47 -07:00
gsxdsm
c194248d4b
FN-7366: restore planner chat in-flight state
...
Planner chat now resumes active generations when task detail is reopened.\n\n- Rehydrate in-flight planner chat snapshots and reattach to the session stream after tab/modal remounts.\n- Preserve accepted optimistic user turns across provider failures while rolling back pre-acceptance failures.\n- Add regression coverage for remount reattachment, attached completion/error refresh, and accepted error reconciliation.\n- Add a patch changeset for the published Fusion package.\n\nFiles changed:\n .changeset/fn-7366-planner-chat-resume.md | 7 +\n .../app/components/TaskPlannerChatTab.tsx | 334 +++++++++++++--------\n .../__tests__/TaskPlannerChatTab.test.tsx | 189 +++++++++++-\n 3 files changed, 382 insertions(+), 148 deletions(-)
Fusion-Task-Id: FN-7366
Fusion-Task-Lineage: b13b9c5e-9295-461f-b44b-f2b5a9008b4f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 09:12:30 -07:00
gsxdsm
24279c9aee
fix(FN-7360): trust landed task merge proof
...
Auto-merge finalization now ignores stale branch-only residue once durable merge proof exists, so squash-landed tasks do not stay stuck in review because their task branch history is noisy.
Fusion-Task-Id: FN-7360
2026-07-01 09:06:01 -07:00
gsxdsm
fed60ecff6
FN-7364: hide task chats from common feed by default
...
Hide task-detail planner chats from the common Chat feed unless a project opts in.
- Add a project setting and Settings UI toggle for showing populated task chats in the common feed.
- Filter task-planner sessions on chat list routes and avoid stale cached/SSE planner rows in the Chat hook.
- Cover default-hidden and opt-in behavior with route, hook, settings, and parity tests.
- Document the Chat feed behavior and include a patch changeset.
Files changed:
.changeset/fn-7364-task-chat-feed-setting.md | 7 ++
docs/dashboard-guide.md | 2 +
.../core/src/__tests__/settings-parity.test.ts | 8 +++
packages/core/src/settings-schema.ts | 5 ++
packages/core/src/types.ts | 5 ++
.../__tests__/SettingsModal.general.test.tsx | 18 +++++
.../settings/sections/GeneralSection.tsx | 9 +++
.../dashboard/app/hooks/__tests__/useChat.test.ts | 65 +++++++++++++++++
packages/dashboard/app/hooks/useChat.ts | 22 ++++--
.../dashboard/src/__tests__/chat-routes.test.ts | 82 +++++++++++++++++++++-
.../dashboard/src/routes/register-chat-routes.ts | 13 +++-
11 files changed, 227 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7364
Fusion-Task-Lineage: 79a0706c-ba7f-4417-b88b-c5282ae7877c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 08:50:29 -07:00
gsxdsm
88bcbce0fe
fix(FN-7360): prevent contaminated task branch bases
...
Pin fresh task worktree creation to the resolved integration branch when no explicit executionStartBranch is present, so ambient root checkout state cannot leak sibling task commits into new branches.
Use task baseCommitSha for merge-finalization branch proof when available, allowing already-landed mergeConfirmed tasks to finalize even if historical branch ancestry contains foreign commits.
Fusion-Task-Id: FN-7360
2026-07-01 08:39:58 -07:00
gsxdsm
d93fac0cc0
FN-7365: allow task popups on every viewport
...
Broaden board task popup routing so the existing popup setting works outside mobile.
- Route ordinary board-card opens to the task popup on desktop, tablet, and mobile when the popup setting is enabled.
- Rename the Appearance setting copy while preserving the stored openMobileTasksInPopup key for compatibility.
- Update tests, documentation, settings schema comments, and the published package changeset for the all-viewport behavior.
Files changed:
.changeset/fn-7365-task-popups-all-viewports.md | 7 ++++
docs/dashboard-guide.md | 6 ++--
docs/settings-reference.md | 2 +-
packages/core/src/settings-schema.ts | 4 +--
packages/core/src/types.ts | 6 ++--
packages/dashboard/app/App.tsx | 6 ++--
.../__tests__/App.openTasksInRightSidebar.test.ts | 42 +++++++++++++++++-----
.../settings/sections/AppearanceSection.tsx | 5 +--
.../sections/__tests__/AppearanceSection.test.tsx | 10 +++---
9 files changed, 62 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-7365
Fusion-Task-Lineage: 58713922-3ff8-4cc9-8f81-26c1e982819e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 08:32:29 -07:00
gsxdsm
62c58402ff
fix(workflow): raise step review timeout default
2026-07-01 08:22:04 -07:00
gsxdsm
e4eb8b6190
FN-7363: prevent mobile task long-press text selection
...
Prevent Board task long-press gestures from selecting card text while preserving editing controls.
- Disable native text selection and WebKit touch callouts on non-editing task cards.
- Prevent touch/pen pointer-down defaults before the long-press context-menu timer starts.
- Cover the mobile selection behavior with component and CSS regression tests and document the Board behavior.
Files changed:
.changeset/fn-7363-mobile-board-text-selection.md | 7 ++++
docs/dashboard-guide.md | 5 +--
packages/dashboard/app/components/TaskCard.css | 17 ++++++++++
packages/dashboard/app/components/TaskCard.tsx | 5 +++
.../app/components/__tests__/TaskCard.test.tsx | 39 ++++++++++++++++++++++
.../app/components/__tests__/board-mobile.test.tsx | 24 +++++++++++++
6 files changed, 95 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7363
Fusion-Task-Lineage: c683ab3b-2caa-4b45-a455-0cc163fd52cc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 08:10:05 -07:00
gsxdsm
1f3a15ec1c
FN-7360: fix Windows desktop runtime packaging
...
Fix packaged Windows desktop startup by preserving Node-safe runtime dependencies and dashboard registry assets.
- Externalize Electron main/preload npm packages so CommonJS updater dependencies load natively.
- Load the dashboard plugin registry manifest through file IO and copy it into dashboard server dist from all build paths.
- Split Windows NSIS and portable artifact names and verify required Electron runtime resources in CI.
- Cover the packaging/runtime invariants with desktop and dashboard regression tests.
Files changed:
.changeset/fn-7360-desktop-windows.md | 7 +++
.github/workflows/desktop-windows.yml | 21 ++++++++
packages/dashboard/package.json | 2 +-
.../src/__tests__/plugin-registry-dist.test.ts | 32 ++++++++++++
.../src/__tests__/routes-plugin-registry.test.ts | 10 ++--
packages/dashboard/src/plugin-routes.ts | 27 +++++++++-
packages/desktop/README.md | 5 +-
packages/desktop/electron-builder.yml | 9 ++++
packages/desktop/scripts/build.ts | 29 ++++++++--
packages/desktop/scripts/workspace-tools.ts | 4 ++
.../desktop/src/__tests__/build-bundling.test.ts | 61 ++++++++++++++++++++++
.../src/__tests__/electron-builder-config.test.ts | 15 ++++++
packages/desktop/src/__tests__/ipc.test.ts | 15 ++++++
.../desktop/src/__tests__/local-runtime.test.ts | 20 +++++++
14 files changed, 247 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7360
Fusion-Task-Lineage: a2d88130-c24f-43e2-932a-1e174b6afa35
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 08:01:59 -07:00
gsxdsm
a65633d878
FN-7368: keep accepted chat sends visible after provider errors
...
Preserve sent chat turns when provider failures arrive after the server accepts a stream.
- Track whether chat stream errors happen before or after server acceptance.
- Reconcile persisted user-message echoes with optimistic bubbles across global chat and planner chat.
- Preserve delivered room-chat messages when reply generation or recovery refresh fails.
- Cover accepted-error and pre-acceptance rollback behavior with focused dashboard tests.
Files changed:
.changeset/fn-7368-chat-provider-error.md | 7 ++
packages/dashboard/app/api/legacy.ts | 25 ++++--
.../app/components/TaskPlannerChatTab.tsx | 47 ++++++++++-
.../__tests__/TaskPlannerChatTab.test.tsx | 71 ++++++++++++++++
.../dashboard/app/hooks/__tests__/useChat.test.ts | 96 ++++++++++++++++++++++
.../app/hooks/__tests__/useChatRooms.test.ts | 25 ++++++
.../app/hooks/createChatStreamHandlers.ts | 10 +--
packages/dashboard/app/hooks/useChat.ts | 48 ++++++++---
packages/dashboard/app/hooks/useChatRooms.ts | 5 +-
9 files changed, 305 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-7368
Fusion-Task-Lineage: b7935c3f-3604-4ed5-b32e-a6ead536a991
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:50:52 -07:00
gsxdsm
f04f01db1d
FN-7362: Fix board task context menu clipping
...
Render Board task context menus as viewport overlays so column clipping no longer hides actions.
- Portal TaskCard context menus to document.body and position them with viewport coordinates.
- Clamp context menus after render and close them when the task identity or column changes.
- Update TaskCard coverage for overflow escape, keyboard/touch placement, and menu lifecycle behavior.
- Document the overlay behavior and add a patch changeset for @runfusion/fusion.
Files changed:
.changeset/fn-7362-board-context-menu-overlay.md | 7 +
docs/dashboard-guide.md | 5 +-
packages/dashboard/app/components/TaskCard.css | 6 +-
packages/dashboard/app/components/TaskCard.tsx | 38 ++--
.../app/components/__tests__/TaskCard.test.tsx | 242 ++++++++++++++++-----
5 files changed, 211 insertions(+), 87 deletions(-)
Fusion-Task-Id: FN-7362
Fusion-Task-Lineage: 8f2fc0b1-ad63-402e-a960-6a09cbe9c893
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:57 -07:00
gsxdsm
98ca9ac090
FN-7353: fix mobile task menu action taps
...
Fix task context menu touch activation so mobile popup actions complete reliably.
- Commit touch and pen menu actions on pointer release while preserving mouse click activation.
- Guard synthesized mobile clicks so each selected task action runs exactly once and closes the menu.
- Cover Board, List, shared context menu, and Task Detail mobile popup action selection in tests and docs.
- Add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-7353-mobile-popup-context-menu.md | 7 ++++
docs/dashboard-guide.md | 12 ++++---
.../dashboard/app/components/TaskContextMenu.tsx | 41 ++++++++++++++++++----
.../app/components/__tests__/ListView.test.tsx | 12 +++++--
.../app/components/__tests__/TaskCard.test.tsx | 26 +++++++++++---
.../components/__tests__/TaskContextMenu.test.tsx | 23 ++++++++++++
.../TaskDetailModal.definition-actions.test.tsx | 31 ++++++++++++++++
7 files changed, 133 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-7353
Fusion-Task-Lineage: 4de96306-1bcc-403d-88fa-be4ec0d9149d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
62c4aae038
FN-7358: recover Sonnet 5 chat fallbacks
...
Recover Sonnet 5 chat sends by applying configured fallback models and clearer failure context.
- Allow explicit dashboard chat model selections to use the configured fallback on retryable provider/model failures.
- Preserve selected provider/model context in no-fallback chat errors so operators can identify unavailable models.
- Expand provider not-found detection and regression coverage for Anthropic Sonnet 5 404 payloads.
- Document fallback behavior and add the published package changeset.
Files changed:
.changeset/fn-7358-sonnet-5-response-failed.md | 7 +++
docs/settings-reference.md | 2 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 71 +++++++++++++++++++---
packages/dashboard/src/chat.ts | 67 +++++++++++++++++---
packages/engine/src/__tests__/pi.test.ts | 71 +++++++++++++++++++++-
.../src/__tests__/transient-error-detector.test.ts | 4 ++
packages/engine/src/pi.ts | 4 +-
packages/engine/src/transient-error-detector.ts | 4 +-
8 files changed, 208 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-7358
Fusion-Task-Lineage: 095a3218-1d4a-4ccb-a8c9-c9f81822b084
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
7457f04287
FN-7355: reuse standard chat surface for planner
...
Task planner chat now renders through the shared Chat surface while preserving task-scoped behavior.
- Extract shared standard chat message, streaming, tool-call, and action-button rendering for reuse outside ChatView.
- Update TaskPlannerChatTab to use the shared surface for messages, thinking output, mobile send dedupe, and stop generation.
- Cover planner chat standard-surface rendering and mobile first-tap behavior in tests, docs, and a patch changeset.
Files changed:
.changeset/fn-7355-standard-planner-chat.md | 7 +
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 18 +
packages/dashboard/app/components/ChatView.tsx | 795 ++-------------------
.../app/components/StandardChatSurface.tsx | 417 +++++++++++
.../app/components/TaskPlannerChatTab.css | 39 +-
.../app/components/TaskPlannerChatTab.tsx | 246 ++++---
...etailModal.responsive-and-dependencies.test.tsx | 4 +-
.../__tests__/TaskPlannerChatTab.test.tsx | 52 ++
9 files changed, 693 insertions(+), 887 deletions(-)
Fusion-Task-Id: FN-7355
Fusion-Task-Lineage: 608ee0d7-3a1b-4f5f-a295-d3a4e62d759e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
72eb9af16c
FN-7351: Make Activity tab switch views
...
Make the Activity tab act as the Live, Feed, and Raw view picker in task details.
- Add an Activity tab dropdown with keyboard, outside-click, and Escape handling.
- Remove the duplicate in-panel Activity view selector while preserving legacy segment routing.
- Keep Activity view switching available in expanded mode and update responsive styling/tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7351-activity-tab-dropdown.md | 7 +
.../dashboard/app/components/TaskDetailModal.css | 84 +++++++++---
.../dashboard/app/components/TaskDetailModal.tsx | 148 +++++++++++++++------
.../TaskDetailModal.attachments-and-tabs.test.tsx | 49 +++++--
.../__tests__/TaskDetailModal.css.test.ts | 8 +-
...lModal.inline-editing-and-integrations.test.tsx | 2 +-
...skDetailModal.models-progress-workflow.test.tsx | 15 ++-
.../__tests__/TaskDetailModal.rendering.test.tsx | 2 +-
...etailModal.responsive-and-dependencies.test.tsx | 29 ++--
.../TaskDetailModal.task-activity-chat.test.tsx | 53 ++++++--
.../components/__tests__/TaskDetailModal.test.tsx | 30 ++++-
11 files changed, 318 insertions(+), 109 deletions(-)
Fusion-Task-Id: FN-7351
Fusion-Task-Lineage: 7b544505-953f-4c77-a92f-eadb2d9477f3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
b3b01bc25d
FN-7357: add all workflows to top-level selectors
...
Extend the dashboard aggregate workflow view across top-level workflow selectors without leaking its sentinel into task creation.
- Add All workflows as an aggregate option for List, Header, Planning/Missions, and Graph selectors.\n- Preserve real workflow handoffs for quick create, planning, missions, and workflow editor entry points.\n- Include aggregate workflow counts and cross-surface regression coverage, plus docs and a changeset.\n\nFiles changed:\n .changeset/fn-7357-all-workflows-selectors.md | 7 +++\n docs/dashboard-guide.md | 9 ++--\n .../workflow-selection-cross-surface.test.tsx | 20 ++++---\n .../app/components/GraphWorkflowSwitcherSlot.tsx | 12 +++--\n .../app/components/HeaderWorkflowSwitcherSlot.tsx | 10 ++--\n packages/dashboard/app/components/ListView.tsx | 63 +++++++++++++++++-----\n .../components/PlanningWorkflowSwitcherSlot.tsx | 5 +-\n .../__tests__/GraphWorkflowSwitcherSlot.test.tsx | 34 ++++++++++++\n .../__tests__/HeaderWorkflowSwitcherSlot.test.tsx | 27 ++++++++++\n .../app/components/__tests__/ListView.test.tsx | 41 +++++++++++++-\n .../app/components/dashboard/MainContent.tsx | 17 ++++--\n .../app/components/workflowStatusCounts.ts | 5 ++\n packages/dashboard/app/hooks/useBoardWorkflows.ts | 20 +++++--\n .../dashboard/app/utils/boardWorkflowSelection.ts | 5 +-\n 14 files changed, 233 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-7357
Fusion-Task-Lineage: b8658cad-7b12-4a06-b627-e2bde7de6951
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
d448603e71
FN-7352: route completed-task refine menus to detail
...
Completed task context menus now open the existing Task Detail refinement composer.\n\n- Add one-shot detail initial actions so Refine can reopen the composer from board and list menus.\n- Wire Board, List, Column, and grouped task cards to pass Refine through Task Detail instead of hiding it.\n- Cover board/list refine menu behavior with dashboard tests and document the completed-task flow.\n\nFiles changed:\n .changeset/fn-7352-done-context-refine.md | 7 +++\n docs/dashboard-guide.md | 9 ++--\n packages/dashboard/app/components/AppModals.tsx | 9 +++-\n packages/dashboard/app/components/Board.tsx | 7 ++-\n packages/dashboard/app/components/Column.tsx | 5 +-\n packages/dashboard/app/components/ListView.tsx | 7 +--\n packages/dashboard/app/components/TaskCard.tsx | 12 +++--\n .../dashboard/app/components/TaskDetailModal.tsx | 13 +++++\n .../dashboard/app/components/WorktreeGroup.tsx | 4 ++\n .../app/components/__tests__/ListView.test.tsx | 62 +++++++++++++++++++++-\n .../app/components/__tests__/TaskCard.test.tsx | 43 +++++++++++++++\n .../TaskDetailModal.definition-actions.test.tsx | 18 +++++++\n .../app/components/dashboard/MainContent.tsx | 2 +\n .../dashboard/app/components/dashboard/types.ts | 4 +-\n packages/dashboard/app/hooks/useModalManager.ts | 28 ++++++++--\n 15 files changed, 208 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-7352
Fusion-Task-Lineage: 3f1107a6-fdac-4430-ab8d-50096c36cc3c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
d8f3cc64ae
FN-7356: fix mobile chat send taps
...
Make task chat and planner chat submit reliably from mobile send buttons.
- Submit touch and pen send-button interactions on pointer down before soft-keyboard blur can consume the tap.
- Add synchronous duplicate-send guards for task chat and planner chat send flows.
- Cover one-tap mobile send behavior and duplicate prevention in chat component tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7356-mobile-chat-send.md | 7 +++
packages/dashboard/app/components/TaskChatTab.tsx | 25 +++++++-
.../app/components/TaskPlannerChatTab.tsx | 36 +++++++++++-
.../app/components/__tests__/TaskChatTab.test.tsx | 65 +++++++++++++++++++++
.../__tests__/TaskPlannerChatTab.test.tsx | 67 +++++++++++++++++++++-
5 files changed, 194 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7356
Fusion-Task-Lineage: 90b243e0-ae36-459d-bf01-112219e7865b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
03160ebac0
FN-7354: add mobile terminal tab selector
...
Add a compact mobile terminal tab selector while preserving desktop tab behavior.
- Replace the mobile terminal tab strip with a native dropdown, new-tab action, and current-tab close action.
- Update mobile terminal header styles so tab, workspace, and session controls wrap cleanly on narrow screens.
- Cover mobile selector behavior with dashboard tests and document the mobile terminal tab workflow.
- Add a release changeset for the published Fusion package.
Files changed:
.changeset/mobile-terminal-tabs-dropdown.md | 7 ++
docs/dashboard-guide.md | 8 +-
.../__tests__/terminal-mobile-header-row.test.ts | 22 ++--
.../dashboard/app/components/TerminalModal.css | 69 +++++++++++-
.../dashboard/app/components/TerminalModal.tsx | 119 +++++++++++++++------
.../components/__tests__/TerminalModal.test.tsx | 107 ++++++++++++++++++
6 files changed, 282 insertions(+), 50 deletions(-)
Fusion-Task-Id: FN-7354
Fusion-Task-Lineage: 20b5b7d5-5795-4cc6-9975-c363954adb97
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
c93f2d4da0
FN-7346: fix TUI settings arrow editing
...
Fix Settings keyboard handling so arrow keys edit selected enum values in the terminal dashboard.
- Keep Tab as the Settings pane switcher so arrow keys remain scoped to the active pane.
- Route detail-pane left/right arrows and h/l keys through enum setting cycling and remote provider activation.
- Add terminal dashboard coverage for list navigation and enum cycling, plus CLI docs and release note coverage.
Files changed:
.changeset/fn-7346-tui-settings-arrows.md | 7 ++
docs/cli-reference.md | 5 +
.../commands/dashboard-tui/__tests__/app.test.tsx | 121 ++++++++++++++++++++-
packages/cli/src/commands/dashboard-tui/app.tsx | 119 ++++++++++----------
4 files changed, 186 insertions(+), 66 deletions(-)
Fusion-Task-Id: FN-7346
Fusion-Task-Lineage: c67861a7-7bb3-408d-926c-e85a44fe2dec
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
47fa2ae2b6
refactor(workflow): extract node runner boundaries ( #1842 )
...
## Summary
Workflow node behavior now has explicit engine-owned runner and service
boundaries instead of being concentrated in the default handler factory
and private executor seams. Workflow IR remains declarative: the graph
executor still walks and routes the graph, while node runners and
runtime services own node-kind behavior, primitive construction,
custom-node execution, review invocation, and planning dispatch.
## Design Notes
- Added a `WorkflowNodeRunner` registry that adapts runners to the
existing handler contract while preserving explicit handler override
precedence.
- Moved gate, notify, code, parse-steps, and merge behavior behind
runner modules while keeping compatibility exports from
`workflow-node-handlers.ts`.
- Added service boundaries for runtime primitive creation, custom-node
execution, single-cwd review invocation, and graph planning.
- Preserved fast-mode raw runner compatibility for stepwise built-ins by
skipping executable custom nodes and parsing `PROMPT.md` in memory when
no executor primitive deps are wired.
- Updated concepts and workflow runtime docs so future workflow behavior
has a clear home: IR, runner, primitive provider, runtime service, or
substrate.
## Validation
- `pnpm --filter @fusion/engine exec vitest run ... --silent=passed-only
--reporter=dot` across 20 focused workflow/runtime test files: 166 tests
passed.
- Targeted ESLint on touched workflow files and tests passed.
- `pnpm --filter @fusion/engine exec tsc --noEmit --pretty false`
passed.
- `git diff --check` passed.
- Browser pipeline: skipped by scope; no changed files map to
browser-testable routes.
## Post-Deploy Monitoring & Validation
No additional operational monitoring required. This is an internal
engine refactor with focused tests covering runner dispatch,
primitive-provider compatibility, custom-node service delegation,
review/planning service boundaries, merge behavior, fast-mode raw runner
compatibility, and docs alignment.
Healthy signals: workflow graph runs continue through planning,
parse-steps, optional groups, custom nodes, review, and merge with
existing outcome values. Failure signals: new `parse-steps-unwired`,
custom-node, review, or merge-attempt regressions in engine logs for
previously working built-in workflows. Rollback trigger: repeated
workflow graph task failures attributable to runner/service dispatch
rather than task content or provider errors.
---
[](https://github.com/EveryInc/compound-engineering-plugin )

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added engine-owned workflow node runners and dedicated services for
custom-node execution, workflow planning, and step review.
* Exposed a runtime primitive provider abstraction and a node-runner
registry in the public API, including built-in runners for gate, code,
merge, parse-steps, and notify.
* **Bug Fixes**
* Improved fast-mode behavior when runtime capabilities are unavailable
(including optional-group skipping, merge/review handling, and a safe
parse-steps fallback).
* **Tests**
* Expanded coverage for the runner registry integration, custom-node
execution, runtime primitive provider, planning/review, and fast-mode
semantics.
* **Documentation**
* Clarified workflow responsibility boundaries and added glossary
definitions plus a refactor plan.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-01 07:33:24 -07:00
gsxdsm
cbd61c56ca
Merge branch 'main' into feature/workflow-nodes
2026-07-01 07:27:51 -07:00
gsxdsm
2eb6edb2fc
fix: keep dashboard available after planning failures ( #1846 )
...
## Summary
- keep malformed planning-session responses persisted as retryable error
state instead of deleting the session
- add `fn dashboard --supervise` to restart unexpected dashboard exits
with bounded exponential backoff
- document the supervised-dashboard run mode and add a patch changeset
## Test Plan
- `corepack pnpm --filter @runfusion/fusion exec vitest run
src/commands/__tests__/dashboard.test.ts --silent=passed-only
--reporter=dot`
- `corepack pnpm --filter @fusion/dashboard exec vitest run
src/__tests__/session-error-recovery.test.ts --silent=passed-only
--reporter=dot`
- `corepack pnpm --filter @fusion/dashboard exec vitest run
src/__tests__/server.test.ts -t "returns health OK independently"
--silent=passed-only --reporter=dot`
- `corepack pnpm lint`
- `corepack pnpm typecheck`
- `corepack pnpm build`
- `corepack pnpm test:gate`
Note: a full `server.test.ts` run also exposes four existing
routine-runner expectation failures unrelated to this change; the added
health check passes when run by name.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added dashboard supervised mode via a new `--supervise` option, with
automatic restarts using a bounded restart budget and exponential
backoff.
* **Bug Fixes**
* Planning sessions now persist as retryable error states when AI output
can’t be parsed, preventing session loss.
* Improved reliability so `GET /api/health` remains available during
these planning error states.
* **Documentation**
* Documented “Dashboard Availability &amp; Supervised Mode”,
including health-check guidance and operational guardrails.
* **Tests**
* Added test coverage for supervised restart behavior, health during
planning errors, and ensuring no unhandled rejections on parse failures.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-01 07:26:24 -07:00
gsxdsm
b07105dbfb
fix(workflows): address workflow node PR feedback
2026-07-01 00:51:01 -07:00
gsxdsm
3a2f3b5ade
refactor(workflow): extract node runner boundaries
2026-07-01 00:51:01 -07:00
gsxdsm
d4ce6f9319
chore(release): v0.52.0
...
Version bump via changesets.
2026-07-01 00:47:09 -07:00
gsxdsm
8079722314
fix(FN-7291): retry fallback for provider model 404s
...
Classify structured provider model-not-found payloads as model-selection failures so configured fallback models run when Claude Sonnet 5 is unavailable on an account or API surface.
2026-07-01 00:33:38 -07:00
gsxdsm
d96eb3c644
FN-7349: expand Plan prompt editor width
...
Make Plan prompt editing surfaces span the task-detail layout consistently.
- Scope a Plan prompt wrapper around markdown, empty, inline edit, and revision controls.
- Let SpecEditor action rows and text inputs shrink and wrap within modal, embedded, and mobile layouts.
- Cover full-width Plan prompt behavior with task-detail CSS and rendering tests.
Files changed:
.changeset/plan-prompt-full-width.md | 7 ++
packages/dashboard/app/components/SpecEditor.css | 27 ++++-
.../dashboard/app/components/TaskDetailModal.css | 58 ++++++++-
.../dashboard/app/components/TaskDetailModal.tsx | 13 +-
.../TaskDetailModal.definition-actions.test.tsx | 134 ++++++++++++---------
...etailModal.responsive-and-dependencies.test.tsx | 44 +++++++
6 files changed, 219 insertions(+), 64 deletions(-)
Fusion-Task-Id: FN-7349
Fusion-Task-Lineage: 65defcea-ce70-49fb-bd00-2127239e09d0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 00:28:25 -07:00
gsxdsm
058a041714
FN-7348: pin mobile planning New session footer
...
Keep the mobile Planning Mode New session CTA reachable while saved sessions scroll independently.
- Bound the mobile planning list shell so only the session list scrolls.
- Preserve the sidebar footer as a non-shrinking bottom action in list view.
- Add CSS contract coverage and a changeset for the published CLI package.
Files changed:
.changeset/fn-7348-mobile-planning-new-session.md | 7 ++++++
.../dashboard/app/components/PlanningModeModal.css | 23 +++++++++++++++++
.../__tests__/PlanningModeModal.css.test.ts | 29 ++++++++++++++++++++++
3 files changed, 59 insertions(+)
Fusion-Task-Id: FN-7348
Fusion-Task-Lineage: 0142e539-3e4c-4ac5-9a44-d02bce2c139b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 00:20:56 -07:00
gsxdsm
411f46a5ea
fix(FN-7344): keep planner chat empty state at top
2026-07-01 00:13:47 -07:00
gsxdsm
35d37d603d
fix(FN-7344): compact planner and activity chat inputs
2026-07-01 00:07:42 -07:00
gsxdsm
7c53c97137
fix(FN-7344): make planner chat expansion intentional
2026-06-30 23:51:16 -07:00
gsxdsm
e37260b30c
fix(FN-7344): keep planner chat context expanded
2026-06-30 23:45:03 -07:00
gsxdsm
6005f89979
fix(FN-7344): compact planner chat on mobile
2026-06-30 23:45:03 -07:00