diff --git a/.changeset/FN-7491-triage-splitting-setting.md b/.changeset/FN-7491-triage-splitting-setting.md deleted file mode 100644 index a8a2494275..0000000000 --- a/.changeset/FN-7491-triage-splitting-setting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Add a workflow setting to disable automatic large-task triage splitting. -category: feature -dev: Adds triageProactiveSubtaskSplittingEnabled while preserving explicit breakIntoSubtasks requests. diff --git a/.changeset/FN-7492-task-card-plan-review-progress.md b/.changeset/FN-7492-task-card-plan-review-progress.md deleted file mode 100644 index 9250f398c2..0000000000 --- a/.changeset/FN-7492-task-card-plan-review-progress.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Show active Plan Review progress on triage task cards. -category: fix -dev: TaskCard now renders the existing progress affordance for Triage only when unified progress has active workflow work. diff --git a/.changeset/FN-7541-remove-chat-eye-icon.md b/.changeset/FN-7541-remove-chat-eye-icon.md deleted file mode 100644 index abf2336a76..0000000000 --- a/.changeset/FN-7541-remove-chat-eye-icon.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Remove the eye icon markdown/plain toggle from chat; messages always render as Markdown. -category: breaking -dev: Removed ChatView `chat-thread-header-render-toggle` (desktop + mobile), `showAllAsPlain` state, and `chat.showRenderedMarkdown`/`chat.showPlainText` i18n keys (FN-7541). diff --git a/.changeset/FN-7546-oversight-controls-clarity.md b/.changeset/FN-7546-oversight-controls-clarity.md deleted file mode 100644 index 632089357e..0000000000 --- a/.changeset/FN-7546-oversight-controls-clarity.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Clarify task-detail oversight Nudge/Explain controls: visible label, disabled reason, always-openable Explain panel. -category: fix -dev: TaskDetailModal now renders a `detail-oversight-controls-label` group label and `detail-overseer-nudge-disabled-reason` helper text (both gated by the existing oversight-cluster visibility condition); Explain no longer disables on `!canExplainOverseer` since it is read-only. Nudge's `canNudgeOverseer` gate and Stop's confirm dialog are unchanged. diff --git a/.changeset/FN-7585-unify-task-detail-quick-control-styling.md b/.changeset/FN-7585-unify-task-detail-quick-control-styling.md deleted file mode 100644 index b536ea7b2a..0000000000 --- a/.changeset/FN-7585-unify-task-detail-quick-control-styling.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Unify border, radius, and height of the task-detail Priority/Execution/Oversight controls. -category: fix -dev: Adds a shared --detail-control-border-radius token alongside --detail-priority-control-min-height so .detail-priority-chip, .detail-execution-mode-toggle, .detail-oversight-chip, and .detail-oversight-menu-trigger all resolve the same border-width/color/radius/height. diff --git a/.changeset/activity-menu-ios.md b/.changeset/activity-menu-ios.md deleted file mode 100644 index f4a8c962c7..0000000000 --- a/.changeset/activity-menu-ios.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Keep the task-detail Activity view menu open during mobile iOS taps. -category: fix -dev: Guards the Activity views dropdown against iOS visualViewport resize/scroll echoes during menu opening. diff --git a/.changeset/fix-anthropic-subscription-fragment-login.md b/.changeset/fix-anthropic-subscription-fragment-login.md deleted file mode 100644 index 85d2c35fc6..0000000000 --- a/.changeset/fix-anthropic-subscription-fragment-login.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix Anthropic subscription login when pasted callback URLs contain fragment OAuth parameters. -category: fix -dev: Normalizes pasted OAuth callback fragments before resolving dashboard manual-code login prompts. diff --git a/.changeset/fix-anthropic-subscription-relogin-after-logout.md b/.changeset/fix-anthropic-subscription-relogin-after-logout.md deleted file mode 100644 index e6c3bb56b3..0000000000 --- a/.changeset/fix-anthropic-subscription-relogin-after-logout.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix Claude/Anthropic subscription re-login showing "Login did not complete" after logging out. -category: fix -dev: Anthropic subscription OAuth is aliased across the legacy `anthropic` row (where interactive login persists the credential) and the `anthropic-subscription` id (where the settings card's in-memory logged-out suppression and status read are keyed). Re-login wrote only `anthropic`, so `loggedOutProviders` kept suppressing `anthropic-subscription` and the card reported failure despite a valid stored credential until process restart. auth-storage's proxy now clears the logged-out state on both aliases when either is re-authenticated (new `login` trap + hardened `set` trap via `clearReauthenticatedLogoutState`; raw api_key writes stay scoped to their own card). Also surfaces background OAuth login failures on `GET /auth/status` (`loginError`) + server logs so future paste-callback failures are diagnosable instead of a generic error. diff --git a/.changeset/fix-phantom-executor-kills-live-ephemeral-tasks.md b/.changeset/fix-phantom-executor-kills-live-ephemeral-tasks.md deleted file mode 100644 index 6c3bde0dc3..0000000000 --- a/.changeset/fix-phantom-executor-kills-live-ephemeral-tasks.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Stop self-healing from killing actively-running tasks after ~30 minutes. -category: fix -dev: FN-7566. isPhantomExecutorBinding's liveness gate (heartbeat/checkout/runAudit) was blind to ephemeral executor agents, leaving only the age>graceMs*3 threshold, so any ephemeral-executor task running longer than ~30 min was reclaimed to `todo` mid-flight. Adds the in-process live-session veto (activeSessionRegistry path / executingTaskLock / isTaskActive), mirroring the isWorkspaceTaskLive/sessionDead predicate, and honors clearPhantomExecutorBinding's live-session refusal in reclaimSelfOwnedBranchConflicts. diff --git a/.changeset/fix-windows-terminal-worktrunk-popup.md b/.changeset/fix-windows-terminal-worktrunk-popup.md deleted file mode 100644 index d44499dc33..0000000000 --- a/.changeset/fix-windows-terminal-worktrunk-popup.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Stop Windows Terminal version dialogs from popping up when opening the dashboard or Settings on Windows. -category: fix -dev: Root cause was the worktrunk integration, not the embedded terminal: worktrunk's CLI is named `wt`, which collides with Windows Terminal (`wt.exe`) on PATH, so probing it with `wt --version` launched Windows Terminal. Fixed by (1) `useWorktrunkInstallStatus` only auto-fetching `/api/worktrunk/status` when the integration is enabled (user opt-in) instead of on every Settings/dashboard mount, and (2) an engine-level guard in `probeWorktrunk` that refuses to exec a resolved `wt` that is the Windows Terminal alias (under `WindowsApps` / a `WindowsTerminal` package dir), covering all resolution surfaces. diff --git a/.changeset/fn-7468-onboarding-quick-providers.md b/.changeset/fn-7468-onboarding-quick-providers.md deleted file mode 100644 index 5fec19580c..0000000000 --- a/.changeset/fn-7468-onboarding-quick-providers.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Expand first-run AI provider quick-start choices beyond Anthropic. -category: feature -dev: Moves advanced/all-provider onboarding controls under the quick-start provider section. diff --git a/.changeset/fn-7469-select-created-project-directory.md b/.changeset/fn-7469-select-created-project-directory.md deleted file mode 100644 index 2572f60643..0000000000 --- a/.changeset/fn-7469-select-created-project-directory.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Select newly created folders automatically during project setup. -category: fix -dev: Adds DirectoryPicker opt-in selection for project-registration surfaces while preserving default picker behavior. diff --git a/.changeset/fn-7470-git-onboarding.md b/.changeset/fn-7470-git-onboarding.md deleted file mode 100644 index f58fd6e383..0000000000 --- a/.changeset/fn-7470-git-onboarding.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Show Git prerequisite guidance during first-run GitHub onboarding. -category: feature -dev: Adds bounded server-host git availability to auth status and onboarding. diff --git a/.changeset/fn-7471-desktop-update-version.md b/.changeset/fn-7471-desktop-update-version.md deleted file mode 100644 index 127e445d57..0000000000 --- a/.changeset/fn-7471-desktop-update-version.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Prevent Desktop update banners from using 0.0.0 as the current version. -category: fix -dev: Dashboard update checks now resolve packaged @fusion/desktop metadata and fail closed for unresolved versions. diff --git a/.changeset/fn-7472-windows-desktop-close-quits.md b/.changeset/fn-7472-windows-desktop-close-quits.md deleted file mode 100644 index 21f08bc954..0000000000 --- a/.changeset/fn-7472-windows-desktop-close-quits.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Quit Fusion Desktop on Windows when the window is closed. -category: fix -dev: Updates Electron close lifecycle so Windows shutdown reaches embedded runtime cleanup. diff --git a/.changeset/fn-7473-desktop-anthropic-oauth-browser.md b/.changeset/fn-7473-desktop-anthropic-oauth-browser.md deleted file mode 100644 index 0ba9284e63..0000000000 --- a/.changeset/fn-7473-desktop-anthropic-oauth-browser.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Open desktop Anthropic Subscription OAuth logins in the system browser. -category: fix -dev: Adds Electron window-open policy coverage and preserves Settings auth polling completion paths. diff --git a/.changeset/fn-7474-github-onboarding-actions.md b/.changeset/fn-7474-github-onboarding-actions.md deleted file mode 100644 index effca3756f..0000000000 --- a/.changeset/fn-7474-github-onboarding-actions.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add GitHub OAuth and CLI setup actions to first-run onboarding. -category: feature -dev: GitHub onboarding now shows in-flow OAuth connect, gh auth login, and gh install guidance. diff --git a/.changeset/fn-7475-github-setup-warning.md b/.changeset/fn-7475-github-setup-warning.md deleted file mode 100644 index ddb9fae15a..0000000000 --- a/.changeset/fn-7475-github-setup-warning.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Delay GitHub setup warnings for one day and add a dashboard connect action. -category: fix -dev: Dashboard setup warnings now gate GitHub prompts per project and route the CTA to Settings → Authentication. diff --git a/.changeset/fn-7476-desktop-engine-banner.md b/.changeset/fn-7476-desktop-engine-banner.md deleted file mode 100644 index 5b29ed00c6..0000000000 --- a/.changeset/fn-7476-desktop-engine-banner.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix a false AI engine not running banner in desktop mode. -category: fix -dev: Distinguishes transient embedded desktop engine startup from true dashboard-only mode. diff --git a/.changeset/fn-7477-connection-manager-clarity.md b/.changeset/fn-7477-connection-manager-clarity.md deleted file mode 100644 index bcb18981e7..0000000000 --- a/.changeset/fn-7477-connection-manager-clarity.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Clarify the desktop Connection Manager add-remote flow. -category: fix -dev: Desktop Connection Manager now separates Local Server context from saved remote profiles and collapses the remote editor until add/edit. diff --git a/.changeset/fn-7478-local-server-switch-option.md b/.changeset/fn-7478-local-server-switch-option.md deleted file mode 100644 index 26378a00a4..0000000000 --- a/.changeset/fn-7478-local-server-switch-option.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Restore Local Server in the desktop Switch server list. -category: fix -dev: Desktop Connection Manager now lists local and saved remote destinations together. diff --git a/.changeset/fn-7479-right-dock-task-popup.md b/.changeset/fn-7479-right-dock-task-popup.md deleted file mode 100644 index fc5cbabe00..0000000000 --- a/.changeset/fn-7479-right-dock-task-popup.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Make right-dock task list clicks respect the task popup setting. -category: fix -dev: Threads openMobileTasksInPopup through the right-dock Tasks list route while preserving embedded dock detail when disabled. diff --git a/.changeset/fn-7482-code-review-remediation.md b/.changeset/fn-7482-code-review-remediation.md deleted file mode 100644 index 0b9d79d018..0000000000 --- a/.changeset/fn-7482-code-review-remediation.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Auto-retry retryable Code Review remediation failures. -category: fix -dev: Prevents retryable code-review-remediation graph failures from stranding tasks in in-review. diff --git a/.changeset/fn-7486-merge-recovery-noop-ownership.md b/.changeset/fn-7486-merge-recovery-noop-ownership.md deleted file mode 100644 index eff2f7557e..0000000000 --- a/.changeset/fn-7486-merge-recovery-noop-ownership.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix no-op task branch recovery after a previously landed task. -category: fix -dev: Merge/recovery ownership classification now checks no-diff branches before foreign trailer rejection. diff --git a/.changeset/fn-7488-source-free-completion.md b/.changeset/fn-7488-source-free-completion.md deleted file mode 100644 index 7a47fa068c..0000000000 --- a/.changeset/fn-7488-source-free-completion.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Allow documented source-free task-artifact deliveries to finish without commits. -category: fix -dev: fn_task_done now recognizes explicit gitignored .fusion/tasks artifact contracts while preserving source-change no-commit guards. diff --git a/.changeset/fn-7490-push-to-remote-setting.md b/.changeset/fn-7490-push-to-remote-setting.md deleted file mode 100644 index fcbcd51212..0000000000 --- a/.changeset/fn-7490-push-to-remote-setting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix direct merges so Push to remote after merge honors the configured remote and branch. -category: fix -dev: Resolves remote-only push targets from the merge integration branch and preserves non-fatal push errors on done tasks. diff --git a/.changeset/fn-7493-task-popup-layer.md b/.changeset/fn-7493-task-popup-layer.md deleted file mode 100644 index 8447417427..0000000000 --- a/.changeset/fn-7493-task-popup-layer.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Keep task popups on the board layer with Activity menus above them. -category: fix -dev: Task-detail FloatingWindow callers use a lower layer band, and Activity view menus reposition after popup geometry changes. diff --git a/.changeset/fn-7494-keyboard-shortcuts.md b/.changeset/fn-7494-keyboard-shortcuts.md deleted file mode 100644 index 48eefcefe7..0000000000 --- a/.changeset/fn-7494-keyboard-shortcuts.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add configurable dashboard keyboard shortcuts for Quick Chat and Terminal. -category: feature -dev: Global dashboardKeyboardShortcuts settings, guarded document-level key handling, and Escape topmost-popup dismissal. diff --git a/.changeset/fn-7495-settings-search.md b/.changeset/fn-7495-settings-search.md deleted file mode 100644 index e5ff54d07d..0000000000 --- a/.changeset/fn-7495-settings-search.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add search in Settings so operators can find settings faster. -category: feature -dev: Dashboard Settings filters visible sections by setting labels and keywords. diff --git a/.changeset/fn-7497-chat-first-event-timeout.md b/.changeset/fn-7497-chat-first-event-timeout.md deleted file mode 100644 index d32b0d45cc..0000000000 --- a/.changeset/fn-7497-chat-first-event-timeout.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Keep accepted chat requests waiting instead of showing false first-event timeout failures. -category: fix -dev: Dashboard chat POST streams no longer abort accepted-but-silent responses on the client first-event timer. diff --git a/.changeset/fn-7498-original-task-prompt.md b/.changeset/fn-7498-original-task-prompt.md deleted file mode 100644 index e4a1a1b17d..0000000000 --- a/.changeset/fn-7498-original-task-prompt.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Show each task's original prompt in the Plan tab alongside the generated plan. -category: fix -dev: Adds a read-only Task Detail original-prompt section backed by task.description. diff --git a/.changeset/fn-7499-before-after-transformation.md b/.changeset/fn-7499-before-after-transformation.md deleted file mode 100644 index aa45ca63f9..0000000000 --- a/.changeset/fn-7499-before-after-transformation.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Add before-to-after transformation summaries to generated task definitions. -category: feature -dev: Built-in standard and fast triage prompts now require a `## Before → After Transformation` section. diff --git a/.changeset/fn-7500-terminal-shortcuts.md b/.changeset/fn-7500-terminal-shortcuts.md deleted file mode 100644 index e296300ad5..0000000000 --- a/.changeset/fn-7500-terminal-shortcuts.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Restore terminal Ctrl/Cmd copy and paste shortcuts. -category: fix -dev: Integrated and embedded terminals now own physical clipboard paste to avoid swallowed or duplicate input. diff --git a/.changeset/fn-7502-terminal-below-layout.md b/.changeset/fn-7502-terminal-below-layout.md deleted file mode 100644 index 6c7aa6e95f..0000000000 --- a/.changeset/fn-7502-terminal-below-layout.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add a pinned below-application layout option for the dashboard terminal. -category: feature -dev: Terminal display mode now supports persisted docked, floating, and below layouts, with header controls replacing the footer shell. diff --git a/.changeset/fn-7503-agent-log-timing.md b/.changeset/fn-7503-agent-log-timing.md deleted file mode 100644 index 2b3c5ff780..0000000000 --- a/.changeset/fn-7503-agent-log-timing.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Show first-token and tool processing durations in task agent logs. -category: feature -dev: Adds optional agent-log timing fields `timeToFirstTokenMs` and `durationMs`. diff --git a/.changeset/fn-7504-mobile-chat-composer-keyboard.md b/.changeset/fn-7504-mobile-chat-composer-keyboard.md deleted file mode 100644 index 2bb827bed9..0000000000 --- a/.changeset/fn-7504-mobile-chat-composer-keyboard.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix mobile Chat composer being hidden behind the keyboard accessory bar. -category: fix -dev: Adds keyboard-open bottom clearance in ChatView so the composer clears the iOS input-assistant/autofill bar without a persistent .chat-thread transform or Android reserved-gap. diff --git a/.changeset/fn-7505-settings-default-descriptions.md b/.changeset/fn-7505-settings-default-descriptions.md deleted file mode 100644 index 23bf9f718c..0000000000 --- a/.changeset/fn-7505-settings-default-descriptions.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Settings descriptions now show each setting's default value. -category: feature -dev: Appended default-value copy to settings.* i18n descriptions across Global, Runtimes, and Project Settings sections, sourced from DEFAULT_GLOBAL_SETTINGS/DEFAULT_PROJECT_SETTINGS in settings-schema.ts; added settings-default-descriptions.test.tsx guarding that every surfaced setting states a default (or explicit "inherits"/"no default \u2014 unset") and that every DEFAULT_SETTINGS key is documented or allowlisted as not surfaced. diff --git a/.changeset/fn-7506-settings-reset.md b/.changeset/fn-7506-settings-reset.md deleted file mode 100644 index 8731353926..0000000000 --- a/.changeset/fn-7506-settings-reset.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add a Reset Settings button to restore a menu's or all project settings to defaults. -category: feature -dev: New tested section→keys (scope-aware) registry (packages/dashboard/app/components/settings/section-keys.ts) drives per-menu reset via updateSettings/updateGlobalSettings with null-as-delete; non-blob sections (secrets, MCP, plugins, memory, auth, prompts, CLI agents, runtimes) are excluded with a documented reason. diff --git a/.changeset/fn-7508-planner-oversight-level-setting.md b/.changeset/fn-7508-planner-oversight-level-setting.md deleted file mode 100644 index 8fb77762f5..0000000000 --- a/.changeset/fn-7508-planner-oversight-level-setting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add a per-workflow planner oversight level setting (Off, Observe, Steer, Autonomous recovery). -category: feature -dev: New workflow setting `plannerOversightLevel` declared in BUILTIN_OVERSIGHT_SETTINGS; default `autonomous`. Per-task override and engine behavior land in follow-up tasks. diff --git a/.changeset/fn-7509-per-task-planner-oversight-override.md b/.changeset/fn-7509-per-task-planner-oversight-override.md deleted file mode 100644 index 4ccbe4ee99..0000000000 --- a/.changeset/fn-7509-per-task-planner-oversight-override.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Tasks can override the workflow planner oversight level (Off, Observe, Steer, Autonomous recovery). -category: feature -dev: New nullable Task.plannerOversightLevel field (migration 137, SCHEMA_VERSION 137) mirroring executionMode; NULL inherits the workflow setting. Adds resolveEffectivePlannerOversightLevel precedence helper. Dashboard UI/API threading and engine behavior land in follow-up tasks. diff --git a/.changeset/fn-7510-oversight-default.md b/.changeset/fn-7510-oversight-default.md deleted file mode 100644 index 94cce48169..0000000000 --- a/.changeset/fn-7510-oversight-default.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Planner oversight now defaults to full steering/control for every workflow unless explicitly changed. -category: feature -dev: Confirms the `plannerOversightLevel` workflow-setting default is the highest (autonomous) level; unset workflow value and unset per-task override both resolve to full steering via `resolveEffectivePlannerOversightLevel` (task override → workflow effective value → autonomous), adding dedicated regression coverage for the "unless explicitly disabled" precedence. diff --git a/.changeset/fn-7511-planner-overseer-monitoring.md b/.changeset/fn-7511-planner-overseer-monitoring.md deleted file mode 100644 index 7037d140bb..0000000000 --- a/.changeset/fn-7511-planner-overseer-monitoring.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Planner oversight now monitors tasks across executor, reviewer, merger, pull-request, and workflow-gate stages. -category: feature -dev: Adds records-only PlannerOverseerMonitor + resolveWatchedStage + OverseerStageObservation in @fusion/engine, gated by resolveEffectivePlannerOversightLevel (off = no observation) and wired into ProjectEngine via a bounded poll. Steering/recovery and UI land in FN-7512/FN-7515+. diff --git a/.changeset/fn-7512-planner-bounded-recovery.md b/.changeset/fn-7512-planner-bounded-recovery.md deleted file mode 100644 index 76586f23d0..0000000000 --- a/.changeset/fn-7512-planner-bounded-recovery.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Planner oversight can autonomously inject guidance, retry stuck/failed steps, and request fixes within bounded limits. -category: feature -dev: Adds pure `decidePlannerRecovery` + recovery types (core) and `PlannerRecoveryController` with injected guidance/retry/targeted-fix handlers (engine), consuming the FN-7511 observation. Acts only at effective level `autonomous`, caps attempts per (task, stage) via `PLANNER_RECOVERY_MAX_ATTEMPTS`, skips user-paused tasks, and excludes merge/PR/destructive actions (deferred to FN-7513) and comprehensive human-control safeguards (FN-7514). diff --git a/.changeset/fn-7513-planner-confirmation-gate.md b/.changeset/fn-7513-planner-confirmation-gate.md deleted file mode 100644 index 69b79446a0..0000000000 --- a/.changeset/fn-7513-planner-confirmation-gate.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Planner oversight now requires confirmation before merge/PR actions and destructive/external side effects. -category: feature -dev: Adds `PlannerActionSideEffectClass` + `PlannerConfirmationRequest` and `classifyPlannerActionSideEffect`/`requiresPlannerConfirmation` (core), extends `decidePlannerRecovery` with an `await_confirmation` action, and adds `requestConfirmation`/`resolveConfirmation` gating to `PlannerRecoveryController` (engine). Merge/PR and destructive/external actions never execute without a recorded approval; bounded recovery (guidance/retry/targeted-fix) is unchanged. UX rendering, human-control safeguards, timeline, and run-audit land in follow-up tasks. diff --git a/.changeset/fn-7514-overseer-human-control-guard.md b/.changeset/fn-7514-overseer-human-control-guard.md deleted file mode 100644 index 469d0ffb18..0000000000 --- a/.changeset/fn-7514-overseer-human-control-guard.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Planner overseer now stays fully hands-off for paused tasks and auto-merge-off / human-review tasks. -category: feature -dev: Adds the pure `evaluateOverseerHumanControl` policy (packages/engine/src/overseer-human-control-policy.ts), consulted at the top of `PlannerRecoveryController.tick()` before any action classification, confirmation gating, steering, retry, or dispatch — so a user-paused or `autoMerge:false`/human-review task never even records a pending confirmation. Reuses `allowsAutoMergeProcessing` from `@fusion/core` verbatim (never re-derives the auto-merge/human-review predicate). Distinguishes explicit user pause (`task.userPaused===true`, or `task.paused===true` with no `pausedReason`) from engine/self-healing parks (which always stamp a `pausedReason`). Emits a bounded `overseer:oversight-withheld-human-control` run-audit no-action event (metadata: `{ taskId, reason, stage, oversightLevel }`), deduped per (taskId, reason) so it does not spam every poll. diff --git a/.changeset/fn-7515-planner-oversight-config-exposure.md b/.changeset/fn-7515-planner-oversight-config-exposure.md deleted file mode 100644 index 8fa1d7229b..0000000000 --- a/.changeset/fn-7515-planner-oversight-config-exposure.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Configure planner oversight level per task and per project in the workflow editor and task create/detail. -category: feature -dev: Per-task `plannerOversightLevel` override exposed via TaskForm (Inherit/off/observe/steer/autonomous), threaded through createTask/updateTask; workflow-editor Values tab gets a first-class display entry. Workflow-native setting; not a project setting. diff --git a/.changeset/fn-7518-oversight-notification-verbosity.md b/.changeset/fn-7518-oversight-notification-verbosity.md deleted file mode 100644 index 18b3979702..0000000000 --- a/.changeset/fn-7518-oversight-notification-verbosity.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add a configurable planner-overseer notification verbosity level (Silent/Errors/Important/All). -category: feature -dev: New workflow-native enum setting `plannerOversightNotificationLevel` in BUILTIN_OVERSIGHT_SETTINGS; default `important`. Resolves via resolveEffectiveSettings; emission gating that reads it lands in FN-7519/FN-7520. diff --git a/.changeset/fn-7519-planner-intervention-timeline.md b/.changeset/fn-7519-planner-intervention-timeline.md deleted file mode 100644 index 1118363906..0000000000 --- a/.changeset/fn-7519-planner-intervention-timeline.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add a task-detail planner-overseer intervention timeline (stage, reason, action, outcome, attempts, links). -category: feature -dev: New core `PlannerInterventionEntry` model + `recordPlannerIntervention`/`getPlannerInterventionTimeline` helpers persisting via the run-audit store under the `overseer:intervention` mutation, plus a `PlannerInterventionTimeline` component rendered in the task-detail Planner Oversight cluster. Emission call-sites land in FN-7520. diff --git a/.changeset/fn-7520-planner-overseer-events.md b/.changeset/fn-7520-planner-overseer-events.md deleted file mode 100644 index b7850edd77..0000000000 --- a/.changeset/fn-7520-planner-overseer-events.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Emit planner-overseer run-audit events for observations, steering, retries, recovery, confirmations, and escalations. -category: feature -dev: New core emitters (emitOverseerObservation/Steering/RecoveryAttempt/Retry/Confirmation/Escalation) in planner-overseer-events.ts, each mapping its decision-point to the correct intervention action/outcome and delegating to FN-7519's recordPlannerIntervention under the overseer:intervention mutation. Producer call-sites land in FN-7511/FN-7512/FN-7513. diff --git a/.changeset/fn-7523-task-revert.md b/.changeset/fn-7523-task-revert.md deleted file mode 100644 index 4912dce4c3..0000000000 --- a/.changeset/fn-7523-task-revert.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Add an intelligent git-revert engine service and POST /api/tasks/:id/revert route. -category: feature -dev: New `packages/engine/src/task-revert.ts` exports `resolveTaskRevertCommits`, `classifyTaskRevert`, and `performTaskRevert` (squash/rebase/lineage attribution precedence, dry-run classification, guaranteed-clean rollback). Route enforces done/archived-only and autoMerge-off guard rails; conflicting results are returned unresolved for sibling FN-7524 (AI-undo) to act on. Workspace tasks return `unsupported`. diff --git a/.changeset/fn-7524-ai-undo-revert.md b/.changeset/fn-7524-ai-undo-revert.md deleted file mode 100644 index 3a78674fac..0000000000 --- a/.changeset/fn-7524-ai-undo-revert.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add an AI-undo fallback task when reverting a done task via git conflicts or is unsupported. -category: feature -dev: `POST /api/tasks/:id/revert` now accepts `{ mode?: "git" | "ai" | "auto" }` (default `"auto"`). `"auto"` tries the FN-7523 git-revert path first and falls back to creating an AI-undo board task (`{ mode: "ai", createdTaskId, alreadyOpen? }`) on a conflicting or unsupported (e.g. workspace) git result; `needsHuman` (autoMerge-off) never triggers the fallback. `"ai"` always creates the AI-undo task; `"git"` keeps the FN-7523 git-only contract, which is otherwise unchanged. New engine exports: `createAiUndoTask`, `buildAiUndoTaskDescription`, `REVERT_OF_METADATA_KEY`. New core store method `TaskStore.findOpenRevertTaskForSource` backs the idempotency guard (an open undo task suppresses a duplicate; a closed one does not). diff --git a/.changeset/fn-7525-revert-card-affordance.md b/.changeset/fn-7525-revert-card-affordance.md deleted file mode 100644 index 2444d32ac2..0000000000 --- a/.changeset/fn-7525-revert-card-affordance.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add a Revert action to Done/Archived task cards to undo landed changes. -category: feature -dev: Wires onRevertTask through Board/List/Detail surfaces; calls POST /tasks/:id/revert in "auto" mode with a conflict-confirm AI-undo fallback (mode: "ai"). diff --git a/.changeset/fn-7526-plan-auto-approve.md b/.changeset/fn-7526-plan-auto-approve.md deleted file mode 100644 index 7dce0c5a0b..0000000000 --- a/.changeset/fn-7526-plan-auto-approve.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Auto-approve now reliably sends specified plans to the board without a manual approval stop. -category: fix -dev: FN-7526 — investigated the reported "plans still park at awaiting-approval when auto-approve is on" symptom; resolvePlanApprovalRequired, mergeEffectiveSettings/applyWorkflowSettingsOverlay, and every finalizeApprovedTask call site (specifyTask, recoverApprovedTask, retryUnavailablePlanReview, tryFinalizeExplicitDuplicateMarker) already honored project planApprovalMode: "auto-approve-all" over a stored workflow requirePlanApproval value — no production defect reproduced. Added end-to-end regression coverage across every enumerated surface (Plan Review reviewer-outage retry, refinement routing, self-healing starved-refinement recovery) using the real mergeEffectiveSettings pipeline instead of isolated bare-settings unit calls, plus explicit assertions that the independent release-authorization and Workflow Plan Review gates remain intact under auto-approve-all, so a future bare-settings call site is caught immediately instead of silently reintroducing the reported behavior. diff --git a/.changeset/fn-7527-desktop-switch-server-navigation.md b/.changeset/fn-7527-desktop-switch-server-navigation.md deleted file mode 100644 index 19784749de..0000000000 --- a/.changeset/fn-7527-desktop-switch-server-navigation.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix the in-dashboard Switch server menu not switching desktop local/remote. -category: fix -dev: The desktop shell's redirect effects in App.tsx read a dead `localServer` field that the preload never populates; extracted `resolveDesktopShellRedirectTarget` in appLifecycle.ts now derives the navigation target from the live `localRuntime`/`activeProfileId` state for both directions, and the unused `localServer` field was removed from `ShellConnectionState`. diff --git a/.changeset/fn-7528-task-performance-capture.md b/.changeset/fn-7528-task-performance-capture.md deleted file mode 100644 index c460beaa73..0000000000 --- a/.changeset/fn-7528-task-performance-capture.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Capture a structured performance snapshot when an agent task completes. -category: feature -dev: New AgentReflectionService.captureTaskPerformance persists a non-LLM post-task ReflectionMetrics record (duration, packages/files touched, verification command + scope, retry/rework count) and emits ids/counts-only `reflection:captured` run-audit telemetry; populates performanceSummary/latestReflection. diff --git a/.changeset/fn-7531-planner-overseer-state-exposure.md b/.changeset/fn-7531-planner-overseer-state-exposure.md deleted file mode 100644 index e47ffac7bc..0000000000 --- a/.changeset/fn-7531-planner-overseer-state-exposure.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Task cards can now show the planner overseer's active state (idle/watching/steering/recovering/awaiting-confirmation). -category: feature -dev: Adds a serializable `PlannerOverseerRuntimeSnapshot` + pure `derivePlannerOverseerState` (core), a read-only `ProjectEngine.getPlannerOverseerRuntimeSnapshot(taskId)` accessor assembling it from the FN-7511 monitor + FN-7512/7513 recovery controller, and a best-effort additive `plannerOverseerState` enrichment on `GET /api/tasks` (mirrors the `branchProgress` pattern; never persisted, never fails the board load). Consumed by FN-7516's TaskCard. diff --git a/.changeset/fn-7532-branch-group-completion.md b/.changeset/fn-7532-branch-group-completion.md deleted file mode 100644 index 8b18b6cb39..0000000000 --- a/.changeset/fn-7532-branch-group-completion.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix branch group completion checklists to show accurate landed/finished counts. -category: fix -dev: runAiMerge (the sole merge path since master-plan U0) never resolved branch-group routing or stamped mergeDetails.mergeTargetBranch/mergeTargetSource, so isBranchGroupMemberLanded permanently reported shared-group members as not landed. Routes through resolveBranchGroupMergeRouting (matching the legacy merger.ts pattern) and stamps the target fields on both the landed and no-op finalize paths; preserves merge-target-safety in isBranchGroupMemberLanded (a sibling/mismatched-branch member still never counts as landed). diff --git a/.changeset/fn-7534-branch-group-archived-member.md b/.changeset/fn-7534-branch-group-archived-member.md deleted file mode 100644 index d79c918c9d..0000000000 --- a/.changeset/fn-7534-branch-group-archived-member.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Branch groups no longer report complete (or become promotable) when an unlanded member is archived. -category: fix -dev: listTasksByBranchGroup membership now scans with includeArchived:true so an archived-but-unlanded member stays counted in total instead of silently dropping out; mergeDetails is now persisted on ArchivedTaskEntry so an archived member that had already landed keeps counting as landed. evaluateBranchGroupCompletion / promoteBranchGroup gate correctly; merge-target-safety in isBranchGroupMemberLanded is unchanged. diff --git a/.changeset/fn-7535-global-gitlab-setting-save.md b/.changeset/fn-7535-global-gitlab-setting-save.md deleted file mode 100644 index adf4d7d16c..0000000000 --- a/.changeset/fn-7535-global-gitlab-setting-save.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix the global GitLab integration setting not persisting when saved. -category: fix -dev: splitSettingsSave now diffs the five global GitLab keys (gitlabEnabled, gitlabInstanceUrl, gitlabApiBaseUrl, gitlabAuthToken, gitlabAuthTokenType) against scoped global initials only, never the project-effective merged initialValues, so a project override no longer suppresses a real global save. diff --git a/.changeset/fn-7536-activity-dropdown-mobile.md b/.changeset/fn-7536-activity-dropdown-mobile.md deleted file mode 100644 index 1fefce406b..0000000000 --- a/.changeset/fn-7536-activity-dropdown-mobile.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix task-detail Activity view dropdown not opening reliably on mobile. -category: fix -dev: Guards the Activity menu's window resize/orientationchange/scroll close-listener with the same opening-tap timing guard already used for visualViewport, and exempts scroll events originating in the `.detail-tabs` scroller, so a same-gesture mobile tap echo (Android/iOS, fixed modal or `.floating-window--task-detail` popup) no longer closes the menu the instant it opens. diff --git a/.changeset/fn-7537-backup-automation-manual-run.md b/.changeset/fn-7537-backup-automation-manual-run.md deleted file mode 100644 index d367f5d451..0000000000 --- a/.changeset/fn-7537-backup-automation-manual-run.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Manual "Run now" for the Database Backup automation now runs in-process like the scheduler, matching cron behavior. -category: fix -dev: The legacy single-command and command-step manual automation run path (`executeSingleCommand` in packages/dashboard/src/routes.ts) now intercepts `isInProcessBackupCommand`/`isInProcessMemoryBackupCommand` via the scoped TaskStore, mirroring `RoutineRunner.executeCommand`/`CronRunner`, instead of always shelling out via `exec()`. `formatInProcessBackupError`, `isInProcessBackupCommand`, and `isInProcessMemoryBackupCommand` are now exported from `@fusion/engine` for reuse. Existing onStep/onText live-run callbacks already stream incremental output for command/backup runs; added regression coverage confirming this holds for the new interception branch. diff --git a/.changeset/fn-7539-oversight-badge-default.md b/.changeset/fn-7539-oversight-badge-default.md deleted file mode 100644 index c9ab7eaf20..0000000000 --- a/.changeset/fn-7539-oversight-badge-default.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Task cards no longer show the "Auto-recovery" oversight badge unless oversight is explicitly configured. -category: fix -dev: `TaskCard.tsx`'s `showOversightBadge` gate now also suppresses the badge when the effective level equals `DEFAULT_PLANNER_OVERSIGHT_LEVEL` ("autonomous") and there is no explicit per-task `plannerOversightLevel` override; an explicit per-task override of "autonomous" still renders the badge. diff --git a/.changeset/fn-7542-remove-overseer-state-badge.md b/.changeset/fn-7542-remove-overseer-state-badge.md deleted file mode 100644 index 3491a6b29d..0000000000 --- a/.changeset/fn-7542-remove-overseer-state-badge.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Remove the per-card overseer-state ("Executor") badge from task cards. -category: fix -dev: Deleted the FN-7516 `card-overseer-state-badge` render, its card-local `deriveOverseerCardWatchedStage` helper/label maps, and its CSS; the sibling oversight-level badge (`card-oversight-badge`) is unaffected. diff --git a/.changeset/fn-7543-original-prompt-markdown-collapsed.md b/.changeset/fn-7543-original-prompt-markdown-collapsed.md deleted file mode 100644 index 79284d7736..0000000000 --- a/.changeset/fn-7543-original-prompt-markdown-collapsed.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Original task prompt now renders as Markdown and is collapsed by default in the task Plan tab. -category: feature -dev: Task Detail Plan/Definition tab original-prompt section reuses the existing `.detail-source-toggle`/`.detail-source-chevron--expanded` collapse pattern and the shared `ReactMarkdown` pipeline (`remarkGfm`, `sharedRehypePlugins`, `markdownLinkifyComponents`); backed by read-only `task.description`, no change to the generated `PROMPT.md` editor/revision flow. diff --git a/.changeset/fn-7544-artifact-cross-instance-live-refresh.md b/.changeset/fn-7544-artifact-cross-instance-live-refresh.md deleted file mode 100644 index f890cc0447..0000000000 --- a/.changeset/fn-7544-artifact-cross-instance-live-refresh.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix agent-created artifacts not appearing live in the dashboard artifacts view. -category: fix -dev: Root cause was cross-instance artifact-registration replication, not the route/hook/render path (all already correct). `TaskStore.registerArtifact()` never bumped `lastModified`, and `checkForChanges()` (the polling replicator that lets a second TaskStore instance on the same project — e.g. the dashboard's cached store vs. the engine's own store — mirror events it did not write itself) only ever diffed the `tasks` table, never `artifacts`. A store instance that did not perform the write could therefore never observe or re-emit `artifact:registered`, leaving an already-open Documents/task Artifacts gallery stale until a full reload. Fixed by bumping `lastModified` on artifact writes and adding a strictly-increasing `rowid`-cursor poll over the `artifacts` table in `checkForChanges()`. See `packages/core/src/__tests__/artifacts.test.ts` and `packages/dashboard/src/routes/__tests__/artifacts-route-integration.test.ts` for regression coverage. diff --git a/.changeset/fn-7547-workspace-task-revert.md b/.changeset/fn-7547-workspace-task-revert.md deleted file mode 100644 index 1404ce5d4c..0000000000 --- a/.changeset/fn-7547-workspace-task-revert.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Support reverting multi-repo workspace tasks via git, all-or-nothing across sub-repos. -category: feature -dev: Extends `packages/engine/src/task-revert.ts` with `resolveWorkspaceTaskRevertCommits`/`revertWorkspaceTask` and wires `POST /api/tasks/:id/revert` to dispatch workspace tasks (`isWorkspaceTask`) to the new path; returns `{ mode: "git", clean, workspace: { repos: [...] }, conflicts? }`. Single-repo `performTaskRevert` path is unchanged. diff --git a/.changeset/fn-7548-per-sha-revert-granularity.md b/.changeset/fn-7548-per-sha-revert-granularity.md deleted file mode 100644 index 657bd6db0f..0000000000 --- a/.changeset/fn-7548-per-sha-revert-granularity.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add per-sha revert commit granularity to the task revert API and service. -category: feature -dev: `performTaskRevert` and `POST /api/tasks/:id/revert` accept an optional `granularity: "squash" | "per-sha"` (default `"squash"`, unchanged FN-7523 behavior). `"per-sha"` creates one attributed `revert(FN-xxxx)` commit per original sha (each with its own `Fusion-Task-Id` trailer and audit line), skipping no-op shas without empty commits. A mid-batch conflict in either mode rolls back the whole batch to the pre-call HEAD — no partially-landed per-sha commits. The clean result now reports `revertCommitShas: string[]` (all created commits) alongside the existing `revertCommitSha` (kept for backward compatibility). diff --git a/.changeset/fn-7550-terminal-shortcut-scroll.md b/.changeset/fn-7550-terminal-shortcut-scroll.md deleted file mode 100644 index 89119231f1..0000000000 --- a/.changeset/fn-7550-terminal-shortcut-scroll.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix the mobile terminal shortcut bar so it scrolls horizontally to reach every key. -category: fix -dev: Added `min-width: 0` to `.terminal-shortcut-panel` to defeat the flex min-width:auto trap that clipped overflow instead of engaging `overflow-x: auto`. diff --git a/.changeset/fn-7551-overseer-timeline-wiring.md b/.changeset/fn-7551-overseer-timeline-wiring.md deleted file mode 100644 index 82d4775708..0000000000 --- a/.changeset/fn-7551-overseer-timeline-wiring.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Planner-oversight intervention timeline now populates from real engine activity. -category: fix -dev: Wires PlannerOverseerMonitor/PlannerRecoveryController decision points to the FN-7520 emitOverseer* façade with the real TaskStore; observation/escalation emission deduped per (task, stage[, signal]). diff --git a/.changeset/fn-7552-mobile-authentication-global-prefix.md b/.changeset/fn-7552-mobile-authentication-global-prefix.md deleted file mode 100644 index a36edea9cb..0000000000 --- a/.changeset/fn-7552-mobile-authentication-global-prefix.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Show the "Global" prefix on the Authentication entry in the mobile Settings picker. -category: fix -dev: resolveSettingsSectionOptionLabel now derives the Global-group prefix for storage-less (scope: undefined) sections in SettingsModal.tsx (FN-7552). diff --git a/.changeset/fn-7553-keyboard-shortcuts-section.md b/.changeset/fn-7553-keyboard-shortcuts-section.md deleted file mode 100644 index 79259dd4d5..0000000000 --- a/.changeset/fn-7553-keyboard-shortcuts-section.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add a dedicated Keyboard Shortcuts settings section with click-to-record capture and more configurable actions. -category: feature -dev: Relocates dashboardKeyboardShortcuts into its own settings section, adds a ShortcutCaptureInput recorder, and extends DashboardShortcutAction with openFiles/openSettings/openCommandCenter/newTask actions wired into existing App nav handlers. diff --git a/.changeset/fn-7554-pr-based-revert.md b/.changeset/fn-7554-pr-based-revert.md deleted file mode 100644 index 5b164b3be2..0000000000 --- a/.changeset/fn-7554-pr-based-revert.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Open a revert PR for done/archived tasks when autoMerge is disabled instead of refusing. -category: feature -dev: `POST /api/tasks/:id/revert` gains an additive `{ mode: "pr", clean: true, prUrl, prNumber, revertBranch, existingPr? }` result for clean single-repo reverts under `autoMerge:false`, reusing `GitHubClient.createPr`, `findPrForBranch` idempotency, and the `manual:true` PR handoff. New engine export `prepareRevertPrBranch` (packages/engine/src/task-revert.ts) prepares the dedicated `fusion/revert-` branch without ever mutating the base branch. Existing `{ mode: "git" | "ai", ... }` shapes and the `autoMerge:true` path are unchanged. diff --git a/.changeset/fn-7556-ai-undo-workflow.md b/.changeset/fn-7556-ai-undo-workflow.md deleted file mode 100644 index b087f540ba..0000000000 --- a/.changeset/fn-7556-ai-undo-workflow.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: AI-undo tasks now default to a configurable, stricter review workflow. -category: feature -dev: New project setting `aiUndoTaskWorkflowId` (default `builtin:review-heavy`) selects the workflow for AI-undo board tasks created by `POST /api/tasks/:id/revert` (`mode: "ai"`, the `auto` conflict fallback, and the workspace conflict fallback all share the `createAiUndoResult()` closure, so all three inherit this default). A blank/unset value means the created task inherits the project default workflow (pre-FN-7556 behavior). The route validates the configured id via `getWorkflowDefinition`/`isBuiltinWorkflowId` and falls back to inherit (with a logged warning) on a blank or unknown value, so a misconfigured id never breaks AI-undo task creation. The engine's `createAiUndoTask` helper stays pure — it only forwards a `workflowId` it is given, never resolves the setting itself. The Settings Modal UI field for this setting is a deliberate follow-up task; the value is settable today only via the settings API. diff --git a/.changeset/fn-7557-plan-auto-approve-default.md b/.changeset/fn-7557-plan-auto-approve-default.md deleted file mode 100644 index f849b72911..0000000000 --- a/.changeset/fn-7557-plan-auto-approve-default.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Plan auto-approval is now the default; specified tasks skip manual approval unless you opt into workflow/require-all. -category: feature -dev: `DEFAULT_PROJECT_SETTINGS.planApprovalMode` flips `workflow` → `auto-approve-all`; existing projects with an explicit stored value are unchanged; consumed by `resolvePlanApprovalRequired` at the triage gating sites. diff --git a/.changeset/fn-7559-approval-gate-disambiguation.md b/.changeset/fn-7559-approval-gate-disambiguation.md deleted file mode 100644 index 7ac656be79..0000000000 --- a/.changeset/fn-7559-approval-gate-disambiguation.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Tasks held for release authorization or Plan Review are now shown distinctly, so auto-approve no longer looks broken. -category: fix -dev: FN-7559 — auto-approve-all bypasses only the manual plan-approval gate (unchanged, FN-7526). Release-authorization holds are surfaced with a new distinct status reason (`Task.awaitingApprovalReason: "release-authorization"`) and no longer render the generic manual Approve/Reject affordance in TaskCard/TaskDetailModal; Workflow Plan Review already used distinct statuses (`needs-replan`/`plan-review-unavailable`) and is unaffected. Both gates remain independent and intact — this is UI/data disambiguation only. diff --git a/.changeset/fn-7560-mobile-terminal-footer.md b/.changeset/fn-7560-mobile-terminal-footer.md deleted file mode 100644 index 6ae6140ab1..0000000000 --- a/.changeset/fn-7560-mobile-terminal-footer.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Move mobile terminal controls into a bottom footer so they no longer crowd the header, with a scrollable shortcut bar. -category: fix -dev: On the ≤768px terminal, the `.terminal-actions` cluster now renders in a `terminal-footer-actions` bar (with `min-width:0; overflow-x:auto`) instead of the header; desktop/floating/pinned-below keep the FN-7502 header layout. Preserves the FN-7550 shortcut-panel scroll fix. diff --git a/.changeset/fn-7560-release-gate-disclaimer-false-positive.md b/.changeset/fn-7560-release-gate-disclaimer-false-positive.md deleted file mode 100644 index 6ddbecef94..0000000000 --- a/.changeset/fn-7560-release-gate-disclaimer-false-positive.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Stop the release-authorization gate from holding tasks that merely disclaim releasing. -category: fix -dev: classifyReleaseTask now strips negated release-disclaimer clauses (e.g. "this task performs no release/publish; releases are owned by scripts/release.mjs") before signal matching in packages/engine/src/triage-release-authorization.ts, so revert/undo/UI specs are no longer false-flagged as release-class. Genuine "run pnpm release"/"publish @runfusion/fusion" intent still trips the gate. diff --git a/.changeset/fn-7561-mobile-terminal-spacing.md b/.changeset/fn-7561-mobile-terminal-spacing.md deleted file mode 100644 index 020bb8c7c0..0000000000 --- a/.changeset/fn-7561-mobile-terminal-spacing.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix mobile terminal text still rendering with excess inter-character gaps after font-load settle. -category: fix -dev: Root cause: xterm's OptionsService setter is a no-op when reassigning an already-current fontFamily/fontSize, so post-settle reapply never forced CharSizeService/DomRenderer to remeasure. Added `forceTerminalFontRemeasure()` in `terminalPreferences.ts`, used by both `TerminalModal.tsx` and `SessionTerminal.tsx` at every post-`waitForTerminalFontMetrics()` settle site. diff --git a/.changeset/fn-7561-plan-review-replan-loop.md b/.changeset/fn-7561-plan-review-replan-loop.md deleted file mode 100644 index 3bae0fe9b9..0000000000 --- a/.changeset/fn-7561-plan-review-replan-loop.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Stop Plan Review from looping tasks forever and fix its "can't find the plan" reviews. -category: fix -dev: FN-7561 — Plan Review pre-merge gate hardening in packages/engine/src/executor.ts. (1) The reviewer ran readonly with cwd=worktree but the spec lives at project-root .fusion/tasks//PROMPT.md, so "Read PROMPT.md" produced "no PROMPT.md found / data is in a DB" non-verdicts; the spec text is now injected into the reviewer prompt via readTaskArtifact. (2) A malformed reviewer response now self-retries once on the primary model when no fallback is configured. (3) A malformed (advisory_failure, no verdict) plan-review result can never trigger a triage replan. (4) The unbounded plan-review replan default is capped at 15 attempts with a loud halting log entry, so a persistently-disagreeing planner/reviewer no longer burns LLM calls indefinitely (FN-7525 ran 13+ attempts overnight). diff --git a/.changeset/fn-7563-overseer-badge-explanation.md b/.changeset/fn-7563-overseer-badge-explanation.md deleted file mode 100644 index 31b019ecfe..0000000000 --- a/.changeset/fn-7563-overseer-badge-explanation.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Planner-overseer task badge now shows a readable label and explains what it is waiting on. -category: fix -dev: TaskCard badge renders plannerOverseerStateLabel + plannerOverseerBadgeTooltip built from the existing PlannerOverseerRuntimeSnapshot (reason/watchedStage/signal/pendingConfirmation); presentation-only, no engine changes. diff --git a/.changeset/fn-7564-approve-plan-release-authorization-guard.md b/.changeset/fn-7564-approve-plan-release-authorization-guard.md deleted file mode 100644 index e225c8e2a9..0000000000 --- a/.changeset/fn-7564-approve-plan-release-authorization-guard.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Plan approve/reject API now blocks release-authorization holds, requiring the authorization marker first. -category: fix -dev: FN-7564 — POST /tasks/:id/approve-plan and /reject-plan now return 400 when task.awaitingApprovalReason === "release-authorization" (FN-7559 discriminator), enforcing the FN-6481 release-authorization gate at the API layer regardless of client. Manual-approval holds are unaffected. diff --git a/.changeset/fn-7565-mobile-terminal-close-corner.md b/.changeset/fn-7565-mobile-terminal-close-corner.md deleted file mode 100644 index 57f627a4b1..0000000000 --- a/.changeset/fn-7565-mobile-terminal-close-corner.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Pin the mobile terminal close (X) button to the top-right corner so it is easy to find and tap. -category: fix -dev: On the ≤768px terminal, the `terminal-close` button now carries a `terminal-close--corner` class (order:3 + margin-inline-start:auto) so it renders last in flex order and hugs the right edge next to the tab dropdown, instead of falling back to order:0 (far left). Desktop/floating/pinned-below placement inside `.terminal-actions` is unchanged. diff --git a/.changeset/fn-7567-mobile-terminal-spacing.md b/.changeset/fn-7567-mobile-terminal-spacing.md deleted file mode 100644 index 1462cca8e4..0000000000 --- a/.changeset/fn-7567-mobile-terminal-spacing.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix mobile terminal excess character spacing that survived earlier font-remeasure fixes. -category: fix -dev: `TerminalModal`/`SessionTerminal` re-bake xterm's `DomRenderer` letter-spacing compensation AFTER `fitAddon.fit()` settles the post-fit column count (not just before it), since `handleResize()` never re-bakes spacing itself. See `docs/solutions/ui-bugs/xterm-options-noop-remeasure-after-font-settle.md` recurrence #4. diff --git a/.changeset/fn-7568-fn-cli-release-asset.md b/.changeset/fn-7568-fn-cli-release-asset.md deleted file mode 100644 index 3ef5b22298..0000000000 --- a/.changeset/fn-7568-fn-cli-release-asset.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Rename downloadable CLI release binaries to the fn-cli- base name. -category: internal -dev: `binaryNameForTarget` in `packages/cli/build.ts` and the `release.yml` / `test-release.yml` matrices now emit `fn-cli-`; the local dev binary stays `fn`/`fn.exe`. diff --git a/.changeset/fn-7569-plan-approval-idempotent.md b/.changeset/fn-7569-plan-approval-idempotent.md deleted file mode 100644 index 7e50bcf5b3..0000000000 --- a/.changeset/fn-7569-plan-approval-idempotent.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Manual plan approval no longer re-asks you to approve a plan you already approved when it hasn't changed. -category: fix -dev: FN-7569 — approving a plan records a fingerprint of the approved PROMPT.md (new nullable Task.approvedPlanFingerprint, migration 139). The manual plan-approval gate skips re-parking at awaiting-approval when a re-specification (replan, plan-review retry, self-healing rebound) produces the same plan; a changed plan or reject-plan still requires fresh approval. Release authorization, Workflow Plan Review, and auto-approve-all are unchanged. diff --git a/.changeset/fn-7571-intervention-timeline-activity-dropdown.md b/.changeset/fn-7571-intervention-timeline-activity-dropdown.md deleted file mode 100644 index a3af496a8b..0000000000 --- a/.changeset/fn-7571-intervention-timeline-activity-dropdown.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Move the planner intervention timeline into the task Activity view dropdown. -category: feature -dev: Removes the inline `PlannerInterventionTimeline` mount from the FN-7517 oversight cluster in `TaskDetailModal.tsx` and adds a fourth `interventions` `ActivitySegment`, shown in the Activity dropdown only when planner oversight is active for the task; falls back to Live if oversight turns off while Interventions is selected. diff --git a/.changeset/fn-7574-oauth-expiry-detection-refresh.md b/.changeset/fn-7574-oauth-expiry-detection-refresh.md deleted file mode 100644 index 1624b75079..0000000000 --- a/.changeset/fn-7574-oauth-expiry-detection-refresh.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Expired Claude subscription logins now show disconnected with a re-login prompt; tokens auto-refresh before expiry. -category: fix -dev: Unifies OAuth expiry detection between OAuthExpiryMonitor and /api/auth/status, and adds an engine-side proactive OAuth refresh scheduler wired in project-engine (guarded by skipNotifier). No token material logged. diff --git a/.changeset/fn-7575-release-version-comment.md b/.changeset/fn-7575-release-version-comment.md deleted file mode 100644 index e06e707639..0000000000 --- a/.changeset/fn-7575-release-version-comment.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Fusion self-repo issue-close comments now show current and target release versions. -category: feature -dev: GitHubIssueCommentService appends "Current version: v{current}" and "Target release: v{next-minor}" lines when the linked source issue is runfusion/fusion; other repos unchanged. Version resolved via getCliPackageVersion. diff --git a/.changeset/fn-7576-cli-wrapper-subscription-getapikey-delegation.md b/.changeset/fn-7576-cli-wrapper-subscription-getapikey-delegation.md deleted file mode 100644 index c0cd7d259c..0000000000 --- a/.changeset/fn-7576-cli-wrapper-subscription-getapikey-delegation.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Anthropic subscription reads now refresh the OAuth token automatically instead of silently failing when expired. -category: fix -dev: mergeAuthStorageReads getApiKey("anthropic-subscription") now delegates to the underlying engine authStorage.getApiKey (the only refresh-token HTTP round trip) instead of a local static expiry check; regression tests drive the wrapper directly. No token material logged. diff --git a/.changeset/fn-7577-workspace-pr-revert.md b/.changeset/fn-7577-workspace-pr-revert.md deleted file mode 100644 index a231551ed5..0000000000 --- a/.changeset/fn-7577-workspace-pr-revert.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Open one revert PR per sub-repo for workspace tasks when autoMerge is disabled. -category: feature -dev: `POST /api/tasks/:id/revert` gains an additive workspace `{ mode: "pr", clean: true, workspace: { repos: [{ repo, revertBranch, prUrl, prNumber, existingPr? }] } }` result for clean multi-repo reverts under `autoMerge:false`, extending FN-7554's single-repo `mode:"pr"` path. New engine export `prepareWorkspaceRevertPrBranches` (packages/engine/src/task-revert.ts) classifies every sub-repo first and only prepares a dedicated `fusion/revert-` branch per sub-repo when all are clean/already-reverted (all-or-nothing at the branch-prep phase), never force-writing any sub-repo integration branch. The route resolves owner/repo and checks the rate limiter for every sub-repo before pushing/creating any PR, so GitHub-unconfigured/rate-limited cases degrade the whole task to `needsHuman` rather than opening a partial subset of PRs. Existing `{ mode: "git" | "ai" | "pr", ... }` shapes, the `autoMerge:true` workspace path, and FN-7554's single-repo path are unchanged. diff --git a/.changeset/fn-7578-ai-undo-workflow-setting-ui.md b/.changeset/fn-7578-ai-undo-workflow-setting-ui.md deleted file mode 100644 index a57c515d5c..0000000000 --- a/.changeset/fn-7578-ai-undo-workflow-setting-ui.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add a Settings → General picker to choose the workflow used for AI-undo (revert) tasks. -category: feature -dev: Surfaces `aiUndoTaskWorkflowId` (default `builtin:review-heavy`) in GeneralSection; empty selection means "inherit project default workflow", matching the revert route's blank-is-inherit behavior from FN-7556. diff --git a/.changeset/fn-7579-ask-user-exit-gate-nodes.md b/.changeset/fn-7579-ask-user-exit-gate-nodes.md deleted file mode 100644 index 66172c6c82..0000000000 --- a/.changeset/fn-7579-ask-user-exit-gate-nodes.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add "Ask user question" and "Exit gate" workflow nodes for mid-flow chat reach-out and early exit. -category: feature -dev: New IR node kinds `ask-user` (reuses await-input park/resume; surfaces the question in the task chat) and `exit-gate` (terminates the workflow early, optional condition). Editor palette + summaries + help updated; `prompt`+`awaitInput` remains a back-compat alias. diff --git a/.changeset/fn-7579-tracking-dedup-stale-issue.md b/.changeset/fn-7579-tracking-dedup-stale-issue.md deleted file mode 100644 index 9a3d2d26c8..0000000000 --- a/.changeset/fn-7579-tracking-dedup-stale-issue.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Stop GitHub tracking-issue creation from linking new tasks to old/closed issues. -category: fix -dev: github-tracking dedup now only reuses OPEN issues and requires a File-Scope path overlap (keyword-only matches no longer link). Prevents mis-linking a fresh task to a stale/resolved tracking issue (FN-7579). Setting `githubTrackingDedupEnabled` unchanged. diff --git a/.changeset/fn-7582-oversight-guideline-copy.md b/.changeset/fn-7582-oversight-guideline-copy.md deleted file mode 100644 index 4041f9f1c4..0000000000 --- a/.changeset/fn-7582-oversight-guideline-copy.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Clarify the oversight "Nudge unavailable" guideline so it no longer reads as an overseer fault. -category: fix -dev: TaskDetailModal oversight controls — reworded taskDetail.oversight.nudgeDisabledTitle and added taskDetail.oversight.nudgeSuppressedTitle to differentiate periodic-observation vs. manual-control states. No enablement/engine logic changed. diff --git a/.changeset/fn-7584-brainstorming-builtin.md b/.changeset/fn-7584-brainstorming-builtin.md deleted file mode 100644 index 21c73e7257..0000000000 --- a/.changeset/fn-7584-brainstorming-builtin.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add a built-in "Brainstorming" workflow that talks to you before planning. -category: feature -dev: Registers `builtin:brainstorming` (non-default, default-enabled) composing FN-7579's `ask-user` → refine → `exit-gate`-on-approval phase ahead of the normal coding plan/execute/review/merge spine. Parity suite (`builtin-workflows.test.ts`) extended for the new entry. diff --git a/.changeset/fn-7591-coding-ideas-intake.md b/.changeset/fn-7591-coding-ideas-intake.md deleted file mode 100644 index 6db08f8a77..0000000000 --- a/.changeset/fn-7591-coding-ideas-intake.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: New tasks created under the Coding (Ideas) workflow now land in the Ideas column and wait for you to promote them. -category: fix -dev: Dashboard create surfaces (InlineCreateCard, QuickEntryBox, NewTaskModal, insight/todo → task) no longer hard-code column:"triage"; the store now resolves the selected/default workflow's intake column. InlineCreateCard forwards workflowId at create time instead of applying it post-create. Also fixed a glue-layer regression in `useTaskHandlers.ts` (`handleBoardQuickCreate`/`handleModalCreate`) that re-forced column:"triage" even after the UI surfaces stopped sending it. diff --git a/.changeset/fn-7591-intake-card-disappears.md b/.changeset/fn-7591-intake-card-disappears.md deleted file mode 100644 index 819f32512c..0000000000 --- a/.changeset/fn-7591-intake-card-disappears.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix tasks vanishing from the board after being added to a workflow like Coding (Ideas). -category: fix -dev: Board.tsx forces a board-workflows refetch (deferred one tick, signature-guarded) whenever a rendered task is missing from the taskWorkflowIds map, so its real workflow and intake column resolve regardless of which create surface added it; the single-workflow grouping also re-homes a task whose column its workflow no longer declares into the intake lane instead of dropping it. Fixes the FN-7591 regression where intake-column cards (column "ideas") fell back to the default workflow, which has no such column, and were filtered out until a manual reload. diff --git a/.changeset/fn-7593-before-after-top.md b/.changeset/fn-7593-before-after-top.md deleted file mode 100644 index 43186a0490..0000000000 --- a/.changeset/fn-7593-before-after-top.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Move the Before → After transformation summary to the top of generated task definitions. -category: fix -dev: Reorders the standard and fast triage `PROMPT.md` templates in packages/core/src/agent-prompts.ts so `## Before → After Transformation` is the first content section, ahead of `## Review Level` and `## Mission`, matching FN-7499's glance-verification intent. diff --git a/.changeset/fn-7597-priority-dropdown-matches-oversight.md b/.changeset/fn-7597-priority-dropdown-matches-oversight.md deleted file mode 100644 index 4d89e6363c..0000000000 --- a/.changeset/fn-7597-priority-dropdown-matches-oversight.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Task-detail Priority dropdown now matches the Oversight dropdown's size, border, and typography. -category: fix -dev: Removed the Priority-only forced select/option uppercase, added a neutral chip background scoped to `.detail-priority-chip.card-priority-badge--normal` for the untinted `normal` level, and reused the FN-7585 shared `--btn-border-width`/`--border`/`--detail-control-border-radius`/`--detail-priority-control-min-height` tokens so both dropdowns render as one control style across desktop and the mobile oversight-overflow surface. diff --git a/.changeset/fn-7599-planning-column-rename.md b/.changeset/fn-7599-planning-column-rename.md deleted file mode 100644 index 59cac03411..0000000000 --- a/.changeset/fn-7599-planning-column-rename.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Default workflow boards now label the intake column "Planning" instead of "Triage". -category: fix -dev: Renamed the `name` of the `id: "triage"` intake column to "Planning" in builtin-coding, builtin-stepwise-coding, and builtin-pr workflow IRs (column id unchanged; linear built-ins inherit via canonicalBuiltinWorkflowColumns). COLUMN_LABELS.triage was already "Planning". diff --git a/.changeset/fn-7600-oversight-nudge-detail-snapshot.md b/.changeset/fn-7600-oversight-nudge-detail-snapshot.md deleted file mode 100644 index 2690189613..0000000000 --- a/.changeset/fn-7600-oversight-nudge-detail-snapshot.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix the task-detail Nudge control staying disabled when the overseer is actively watching. -category: fix -dev: GET /api/tasks/:id now attaches the transient plannerOverseerState snapshot (mirrors the list route); TaskDetailModal reads the snapshot from workingTask so detail refetches no longer drop it. diff --git a/.changeset/fn-coding-ideas-workflow.md b/.changeset/fn-coding-ideas-workflow.md deleted file mode 100644 index 4f8fa8f9e1..0000000000 --- a/.changeset/fn-coding-ideas-workflow.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add a "Coding (Ideas)" workflow with a manual Ideas intake and a merged Todo planner column. -category: feature -dev: New `builtin:coding-ideas` clones the default stepwise pipeline with an `ideas` intake (autoTriage:false) in front of a merged `todo` planner+capacity column. createTask lands cards in the workflow's intake column; the triage service plans unplanned todo tasks in place; the scheduler skips bootstrap-prompt todo tasks; TaskCard gains a Start button and a Ready badge. diff --git a/.changeset/mission-triage-branch-strategy-and-parked-validation.md b/.changeset/mission-triage-branch-strategy-and-parked-validation.md deleted file mode 100644 index 0966318fa7..0000000000 --- a/.changeset/mission-triage-branch-strategy-and-parked-validation.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Honor mission branchStrategy when triage omits branchAssignment; skip validation for inactive missions. -category: fix -dev: resolveBranchAssignmentContext returns undefined for absent mode so triage falls back to mission.branchStrategy; processTaskOutcome gates on mission.status === "active" like recoverActiveMissions. diff --git a/.changeset/planner-overseer-no-recover-healthy-tasks.md b/.changeset/planner-overseer-no-recover-healthy-tasks.md deleted file mode 100644 index 9c96edc1ed..0000000000 --- a/.changeset/planner-overseer-no-recover-healthy-tasks.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Planner overseer no longer marks healthy in-progress tasks as "recovering" or steers them. -category: fix -dev: `decidePlannerRecovery` now returns `none` for healthy (`progressing`/`complete`) and `awaiting-human` executor/workflow-gate signals instead of falling through to `inject_guidance`; only `stuck`/`blocked`/`failed` trigger autonomous steering. Also dedupes the `PlannerOverseerMonitor` activity-feed heartbeat so an unchanged `(stage, signal, reason)` observation is logged once per change, not every poll tick. Fixes the "overseer recovering" badge appearing on every autonomous card and the needless AI-consuming guidance injections (FN-7577). diff --git a/CHANGELOG.md b/CHANGELOG.md index 18882c459c..60d1b72104 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,60 +2,365 @@ User-facing release notes aggregated across all packages. This file is auto-synced from each `packages/*/CHANGELOG.md` by `scripts/release.mjs` — do not edit by hand. -## 0.55.0 +## 0.56.0 ### New -- Allow configuring permissions for ephemeral and permanent agents. -- Add a Settings override for the local Cursor CLI binary path. -- Add GitLab instance URL settings for GitLab.com and self-managed servers. -- Add GitLab access-token settings for personal, project, and group tokens. -- Add GitLab project issue, group issue, and merge request imports. -- Display linked GitLab tracking metadata and stale badges on tasks. -- Add GitLab comment and auto-close lifecycle actions for linked work items. -- Add GitLab as a Command Center Signals connector. -- Add explicit onboarding choices to use, initialize, or clone a git repository. -- Let chat update existing agents without delete/recreate. -- Add sidebar rename buttons to direct Chat conversations. -- Add a bundled Linear import plugin for creating tasks from Linear issues. -- Add a mandatory Planning Mode deepening checkpoint before final summaries. -- Add visible create buttons and recursive search to Project Files. -- Collapse mobile Chat thread controls into one compact header row. -- Add a GitLab enable toggle and collapsible Settings controls. +- Add a workflow setting to disable automatic large-task triage splitting. +- Expand first-run AI provider quick-start choices beyond Anthropic. +- Show Git prerequisite guidance during first-run GitHub onboarding. +- Add GitHub OAuth and CLI setup actions to first-run onboarding. +- Add configurable dashboard keyboard shortcuts for Quick Chat and Terminal. +- Add search in Settings so operators can find settings faster. +- Add before-to-after transformation summaries to generated task definitions. +- Add a pinned below-application layout option for the dashboard terminal. +- Show first-token and tool processing durations in task agent logs. +- Settings descriptions now show each setting's default value. +- Add a Reset Settings button to restore a menu's or all project settings to defaults. +- Add a per-workflow planner oversight level setting (Off, Observe, Steer, Autonomous recovery). +- Tasks can override the workflow planner oversight level (Off, Observe, Steer, Autonomous recovery). +- Planner oversight now defaults to full steering/control for every workflow unless explicitly changed. +- Planner oversight now monitors tasks across executor, reviewer, merger, pull-request, and workflow-gate stages. +- Planner oversight can autonomously inject guidance, retry stuck/failed steps, and request fixes within bounded limits. +- Planner oversight now requires confirmation before merge/PR actions and destructive/external side effects. +- Planner overseer now stays fully hands-off for paused tasks and auto-merge-off / human-review tasks. +- Configure planner oversight level per task and per project in the workflow editor and task create/detail. +- Add a configurable planner-overseer notification verbosity level (Silent/Errors/Important/All). +- Add a task-detail planner-overseer intervention timeline (stage, reason, action, outcome, attempts, links). +- Emit planner-overseer run-audit events for observations, steering, retries, recovery, confirmations, and escalations. +- Add an intelligent git-revert engine service and POST /api/tasks/:id/revert route. +- Add an AI-undo fallback task when reverting a done task via git conflicts or is unsupported. +- Add a Revert action to Done/Archived task cards to undo landed changes. +- Capture a structured performance snapshot when an agent task completes. +- Task cards can now show the planner overseer's active state (idle/watching/steering/recovering/awaiting-confirmation). +- Original task prompt now renders as Markdown and is collapsed by default in the task Plan tab. +- Support reverting multi-repo workspace tasks via git, all-or-nothing across sub-repos. +- Add per-sha revert commit granularity to the task revert API and service. +- Add a dedicated Keyboard Shortcuts settings section with click-to-record capture and more configurable actions. +- Open a revert PR for done/archived tasks when autoMerge is disabled instead of refusing. +- AI-undo tasks now default to a configurable, stricter review workflow. +- Plan auto-approval is now the default; specified tasks skip manual approval unless you opt into workflow/require-all. +- Move the planner intervention timeline into the task Activity view dropdown. +- Fusion self-repo issue-close comments now show current and target release versions. +- Open one revert PR per sub-repo for workspace tasks when autoMerge is disabled. +- Add a Settings → General picker to choose the workflow used for AI-undo (revert) tasks. +- Add "Ask user question" and "Exit gate" workflow nodes for mid-flow chat reach-out and early exit. +- Add a built-in "Brainstorming" workflow that talks to you before planning. +- Add a "Coding (Ideas)" workflow with a manual Ideas intake and a merged Todo planner column. ### Fixed -- Stop recurring Windows Terminal warning popups during terminal startup. -- Fix dashboard localStorage quota exhaustion from stale SWR caches and add a Clear local data escape hatch. -- Fix `fusion desktop` on Windows and published npm installs (Electron dependency, GPU/sandbox flags, dashboard reuse). -- First-run agent setup no longer errors on a duplicate CEO; desktop Switch-server button now opens the connection menu. -- Allow operators to delete archived tasks. -- Show workflow template block boundary connectors in the graph editor. -- Preserve the selected dashboard project across browser refreshes. -- Detect Cursor CLI installations that expose Windows cmd or bat shims. -- Preserve GitLab tracking metadata for CLI and extension imports. -- Keep Planning Mode Refine Further from getting stuck on duplicate generation. -- Show task status badges on Documents task groups. -- Suppress misleading Anthropic Subscription re-login banners when another Anthropic auth method is active. -- Keep Anthropic authentication cards grouped near the top in Settings. -- Stop planner model fallback loops with a clear terminal triage error. -- Recover stale task branch-group references from Task Detail after server restarts. -- Return GitHub issue import actions to the main issue list. -- Prevent Planning Mode sessions from failing when MCP resolution returns no shaped result. -- Fix Android mobile terminal spacing while the keyboard is open. -- Fix Last 30 days token usage to include every model in Command Center. -- Include supported chat interactions in Command Center token usage totals. -- Preserve workflow setting edits made while a values save is still in flight. -- Preserve migrated workflow settings when project identity is assigned later. -- Show the bundled Linear Import plugin in Plugin Manager and dashboard plugin surfaces. -- Fix the mobile Chat header so back navigation and session selection stay on one row. -- Fix iOS mobile terminal spacing when opening terminals with the keyboard already visible. -- Default fresh startup and theme reset to System mode. -- Remember task popup size and position when switching between tasks. -- Fix iPhone Safari terminal text spacing with the keyboard open. -- Count planning tasks correctly in the dashboard footer queue metric. -- Show conversation titles in the mobile Chat dropdown. -- Merges no longer fail when a task adds a dependency without updating the lockfile. +- Show active Plan Review progress on triage task cards. +- Clarify task-detail oversight Nudge/Explain controls: visible label, disabled reason, always-openable Explain panel. +- Unify border, radius, and height of the task-detail Priority/Execution/Oversight controls. +- Keep the task-detail Activity view menu open during mobile iOS taps. +- Fix Anthropic subscription login when pasted callback URLs contain fragment OAuth parameters. +- Fix Claude/Anthropic subscription re-login showing "Login did not complete" after logging out. +- Stop self-healing from killing actively-running tasks after ~30 minutes. +- Stop Windows Terminal version dialogs from popping up when opening the dashboard or Settings on Windows. +- Select newly created folders automatically during project setup. +- Prevent Desktop update banners from using 0.0.0 as the current version. +- Quit Fusion Desktop on Windows when the window is closed. +- Open desktop Anthropic Subscription OAuth logins in the system browser. +- Delay GitHub setup warnings for one day and add a dashboard connect action. +- Fix a false AI engine not running banner in desktop mode. +- Clarify the desktop Connection Manager add-remote flow. +- Restore Local Server in the desktop Switch server list. +- Make right-dock task list clicks respect the task popup setting. +- Auto-retry retryable Code Review remediation failures. +- Fix no-op task branch recovery after a previously landed task. +- Allow documented source-free task-artifact deliveries to finish without commits. +- Fix direct merges so Push to remote after merge honors the configured remote and branch. +- Keep task popups on the board layer with Activity menus above them. +- Keep accepted chat requests waiting instead of showing false first-event timeout failures. +- Show each task's original prompt in the Plan tab alongside the generated plan. +- Restore terminal Ctrl/Cmd copy and paste shortcuts. +- Fix mobile Chat composer being hidden behind the keyboard accessory bar. +- Auto-approve now reliably sends specified plans to the board without a manual approval stop. +- Fix the in-dashboard Switch server menu not switching desktop local/remote. +- Fix branch group completion checklists to show accurate landed/finished counts. +- Branch groups no longer report complete (or become promotable) when an unlanded member is archived. +- Fix the global GitLab integration setting not persisting when saved. +- Fix task-detail Activity view dropdown not opening reliably on mobile. +- Manual "Run now" for the Database Backup automation now runs in-process like the scheduler, matching cron behavior. +- Task cards no longer show the "Auto-recovery" oversight badge unless oversight is explicitly configured. +- Remove the per-card overseer-state ("Executor") badge from task cards. +- Fix agent-created artifacts not appearing live in the dashboard artifacts view. +- Fix the mobile terminal shortcut bar so it scrolls horizontally to reach every key. +- Planner-oversight intervention timeline now populates from real engine activity. +- Show the "Global" prefix on the Authentication entry in the mobile Settings picker. +- Tasks held for release authorization or Plan Review are now shown distinctly, so auto-approve no longer looks broken. +- Move mobile terminal controls into a bottom footer so they no longer crowd the header, with a scrollable shortcut bar. +- Stop the release-authorization gate from holding tasks that merely disclaim releasing. +- Fix mobile terminal text still rendering with excess inter-character gaps after font-load settle. +- Stop Plan Review from looping tasks forever and fix its "can't find the plan" reviews. +- Planner-overseer task badge now shows a readable label and explains what it is waiting on. +- Plan approve/reject API now blocks release-authorization holds, requiring the authorization marker first. +- Pin the mobile terminal close (X) button to the top-right corner so it is easy to find and tap. +- Fix mobile terminal excess character spacing that survived earlier font-remeasure fixes. +- Manual plan approval no longer re-asks you to approve a plan you already approved when it hasn't changed. +- Expired Claude subscription logins now show disconnected with a re-login prompt; tokens auto-refresh before expiry. +- Anthropic subscription reads now refresh the OAuth token automatically instead of silently failing when expired. +- Stop GitHub tracking-issue creation from linking new tasks to old/closed issues. +- Clarify the oversight "Nudge unavailable" guideline so it no longer reads as an overseer fault. +- New tasks created under the Coding (Ideas) workflow now land in the Ideas column and wait for you to promote them. +- Fix tasks vanishing from the board after being added to a workflow like Coding (Ideas). +- Move the Before → After transformation summary to the top of generated task definitions. +- Task-detail Priority dropdown now matches the Oversight dropdown's size, border, and typography. +- Default workflow boards now label the intake column "Planning" instead of "Triage". +- Fix the task-detail Nudge control staying disabled when the overseer is actively watching. +- Honor mission branchStrategy when triage omits branchAssignment; skip validation for inactive missions. +- Planner overseer no longer marks healthy in-progress tasks as "recovering" or steers them. + +### Breaking + +- Remove the eye icon markdown/plain toggle from chat; messages always render as Markdown. + +### Internal + +- Rename downloadable CLI release binaries to the fn-cli- base name. + +## 0.55.0 + +### @fusion/dashboard + +#### Patch Changes + +- @fusion/core@0.55.0 +- @fusion/engine@0.55.0 +- @fusion/i18n@0.39.19 +- @fusion-plugin-examples/cli-printing-press@0.1.36 +- @fusion-plugin-examples/compound-engineering@0.1.19 +- @fusion-plugin-examples/dependency-graph@0.1.50 +- @fusion-plugin-examples/roadmap@0.1.38 +- @fusion-plugin-examples/cursor-runtime@0.1.38 +- @fusion-plugin-examples/droid-runtime@0.1.45 +- @fusion-plugin-examples/hermes-runtime@0.2.69 +- @fusion-plugin-examples/openclaw-runtime@0.2.69 +- @fusion-plugin-examples/paperclip-runtime@0.2.69 + +### @fusion/desktop + +#### Patch Changes + +- @fusion/core@0.55.0 +- @fusion/dashboard@0.55.0 +- @fusion/engine@0.55.0 + +### @fusion/engine + +#### Patch Changes + +- @fusion/core@0.55.0 +- @fusion/pi-claude-cli@0.55.0 + +### @fusion/plugin-sdk + +#### Patch Changes + +- @fusion/core@0.55.0 + +### @runfusion/fusion + +#### Minor Changes + +- 8580910: summary: Allow configuring permissions for ephemeral and permanent agents. + category: feature + dev: Applies capability grants and runtime permission policies consistently across agent lifetimes. +- 5738766: summary: Add GitLab instance URL settings for GitLab.com and self-managed servers. + category: feature + dev: Adds typed GitLab web/API URL configuration and dashboard controls for later GitLab integration subtasks. +- fafe4c9: summary: Add GitLab access-token settings for personal, project, and group tokens. + category: feature + dev: Documents required GitLab API scopes and adds token auth resolution for later GitLab integration tasks. +- 865dec2: summary: Add GitLab project issue, group issue, and merge request imports. + category: feature + dev: Adds HTTP API GitLab import routes, dashboard affordances, CLI commands, and extension tools. +- 34be333: summary: Add GitLab comment and auto-close lifecycle actions for linked work items. + category: feature + dev: Uses GitLab REST notes and state-event APIs with configured self-managed instance URLs. +- 1f6befc: summary: Add GitLab as a Command Center Signals connector. + category: feature + dev: Adds GitLab webhook token verification and issue/MR signal normalization for Command Center incidents. +- 91737b1: summary: Add explicit onboarding choices to use, initialize, or clone a git repository. + category: feature + dev: Setup wizard now sends gitSetupMode while preserving cloneUrl-only project registration clients. +- 91fb53f: summary: Let chat update existing agents without delete/recreate. + category: feature + dev: Adds the fn_agent_update Pi extension tool for scoped AgentStore.updateAgent config edits. +- dfb6e52: summary: Add a bundled Linear import plugin for creating tasks from Linear issues. + category: feature + dev: Ships fusion-plugin-linear-import with plugin settings, routes, tools, dashboard view, and bundled-plugin packaging. +- ec0256f: summary: Add a mandatory Planning Mode deepening checkpoint before final summaries. + category: feature + dev: Planning sessions now persist pending summaries behind a "Would you like to go deeper?" checkpoint. +- 5984f32: summary: Add visible create buttons and recursive search to Project Files. + category: feature + dev: Files — Project uses the existing workspace-safe create and /files/search APIs with settings pickers left compact. +- f973334: summary: Add a GitLab enable toggle and collapsible Settings controls. + category: feature + dev: Adds gitlabEnabled gating for GitLab API operations while preserving saved configuration. + +#### Patch Changes + +- 306e516: summary: Stop recurring Windows Terminal warning popups during terminal startup. + category: fix + dev: Keeps embedded terminal bootstrap on supported shells and surfaces actionable inline errors. +- 9df13c7: summary: Fix dashboard localStorage quota exhaustion from stale SWR caches and add a Clear local data escape hatch. + category: fix + dev: Stale SWR hydration entries (per-chat-session/per-room message caches) were never garbage-collected; readCache now lazily deletes stale entries, a boot sweep prunes anything older than 24h, and Settings → General exposes a user-facing "Clear local data" button that preserves the auth token. +- c7641f9: summary: Fix `fusion desktop` on Windows and published npm installs (Electron dependency, GPU/sandbox flags, dashboard reuse). + category: fix + dev: `packages/cli/package.json` now depends on `electron` at runtime; previously the desktop launcher called `require("electron")`, which is only available inside the source checkout (via `pnpm-workspace.yaml` `onlyBuiltDependencies`) and is missing for npm consumers, causing `fusion desktop` to hang or fail silently. The launcher now applies GPU/sandbox-disabling Electron flags only on Windows (`os.platform() === "win32"`), keeps hardware acceleration and the Chromium sandbox on macOS/Linux, exports `FUSION_SERVER_PORT` so the desktop reuses the CLI-started dashboard instead of double-binding ports, and isolates desktop user-data under `~/.fusion/desktop-user-data`. Relocating the profile performs a one-time copy of the previous default Electron profile (`user-data-migration.ts`) so upgrading operators keep window geometry/session. `packages/desktop/scripts/build.ts` now fails the build if `main.js`/`preload.js`/`client/index.html` are missing from `dist/` or the staged `deploy/dist/`, preventing shipping an incomplete `app.asar`. +- da662c4: summary: First-run agent setup no longer errors on a duplicate CEO; desktop Switch-server button now opens the connection menu. + category: fix + dev: Onboarding agent creation (ModelOnboardingModal + SetupWizardModal) treats a 409 "Agent with this name already exists" as success and advances, since the default CEO can be created from more than one first-run surface. The desktop preload now bridges the `shell:open-connection-manager` IPC (sent by main when the header Switch-server button is clicked) into the `window` DOM event ShellContext listens for, so NativeShellConnectionManager (Local/Remote toggle + remote profiles) actually opens. +- 377eee6: summary: Allow operators to delete archived tasks. + category: fix + dev: Extends task deletion to archive-db snapshots while preserving soft-delete tombstones and ID reservation. +- 9ee33f9: summary: Show workflow template block boundary connectors in the graph editor. + category: fix + dev: Adds visual-only foreach/loop/optional-group template boundary edges that are filtered from persisted IR. +- 3453d16: summary: Preserve the selected dashboard project across browser refreshes. + category: fix + dev: Project selection now updates and hydrates from the existing `?project=` dashboard URL contract. +- 777f647: summary: Detect Cursor CLI installations that expose Windows cmd or bat shims. + category: fix + dev: Cursor runtime probes and model discovery now shell-spawn only on Windows and preserve spawn diagnostics. +- abb1917: summary: Add a Settings override for the local Cursor CLI binary path. + category: feature + dev: Adds global `cursorCliBinaryPath` and threads it through Cursor CLI probes, auth status, enable validation, and model discovery. +- b8e126e: summary: Display linked GitLab tracking metadata and stale badges on tasks. + category: feature + dev: Persists GitLab tracking metadata separately from GitHub tracking fields. +- c49a933: summary: Preserve GitLab tracking metadata for CLI and extension imports. + category: fix + dev: GitLab project, group, and merge-request imports now carry gitlabTracking metadata alongside sourceIssue provenance. +- 53d5bb1: summary: Keep Planning Mode Refine Further from getting stuck on duplicate generation. + category: fix + dev: Guards completed-summary refinement as a single-flight UI turn and preserves the active planning stream on same-refine in-progress responses. +- b493a1e: summary: Show task status badges on Documents task groups. + category: fix + dev: DocumentsView now renders taskColumn metadata in task document group headers and covers collapsed done/non-done states. +- e5be924: summary: Suppress misleading Anthropic Subscription re-login banners when another Anthropic auth method is active. + category: fix + dev: Keeps subscription OAuth expired in Settings while hiding only the global urgent banner entry when API key or Claude CLI auth is active. +- 326c72b: summary: Keep Anthropic authentication cards grouped near the top in Settings. + category: fix + dev: Sorts Claude CLI, Anthropic Subscription, and Anthropic API Key before other auth cards within each auth group. +- 1d6bb08: summary: Stop planner model fallback loops with a clear terminal triage error. + category: fix + dev: Bounds prompt-time/session-creation model fallback exhaustion and persists failed triage state. +- aa8f1f3: summary: Recover stale task branch-group references from Task Detail after server restarts. + category: fix + dev: Adds branch_group restart regression coverage and non-origin integration-branch diagnostics. +- 72adb52: summary: Add sidebar rename buttons to direct Chat conversations. + category: feature + dev: Reuses ChatView's existing rename dialog and useChat renameSession path. +- 25fecd7: summary: Return GitHub issue import actions to the main issue list. + category: fix + dev: Updates Import Tasks issue import/close navigation and regression coverage. +- ffcb54b: summary: Prevent Planning Mode sessions from failing when MCP resolution returns no shaped result. + category: fix + dev: Dashboard planning lanes now default malformed MCP resolver output to an empty server set while preserving MCP forwarding. +- 8d7abb8: summary: Fix Android mobile terminal spacing while the keyboard is open. + category: fix + dev: Terminal mobile sizing now tracks visualViewport width for keyboard-open xterm fits. +- 22fd0da: summary: Fix Last 30 days token usage to include every model in Command Center. + category: fix + dev: Corrects Command Center token analytics range attribution for durable multi-model task usage. +- 765218f: summary: Include supported chat interactions in Command Center token usage totals. + category: fix + dev: Records chat-session and room-responder token usage separately from task execution tokens and aggregates both sources in token analytics. +- 1d6011c: summary: Collapse mobile Chat thread controls into one compact header row. + category: feature + dev: Mobile direct-chat moves back/session controls into ViewHeader and floats the Markdown/plain toggle. +- 2050323: summary: Preserve workflow setting edits made while a values save is still in flight. + category: fix + dev: WorkflowSettingsPanel and Project Models workflow lane saves now clear only snapshot-matching pending keys. +- 3fac409: summary: Preserve migrated workflow settings when project identity is assigned later. + category: fix + dev: Backfills rootDir-keyed workflow_settings rows into the durable project identity row, keeping identity values on conflicts. +- 78ebeaf: summary: Show the bundled Linear Import plugin in Plugin Manager and dashboard plugin surfaces. + category: fix + dev: Keeps fusion-plugin-linear-import registered across the built-in Plugin Manager catalog while reusing existing registry, dashboard view, and bundled packaging paths. +- 1430a42: summary: Fix the mobile Chat header so back navigation and session selection stay on one row. + category: fix + dev: Keeps the direct-chat mobile header collapsed while preserving desktop and room-chat layouts. +- 7a4b0bf: summary: Fix iOS mobile terminal spacing when opening terminals with the keyboard already visible. + category: fix + dev: Seeds iOS keyboard-open viewport baselines for TerminalModal and SessionTerminal before xterm fit/resize. +- 00afb22: summary: Default fresh startup and theme reset to System mode. + category: fix + dev: Fresh global settings, pre-hydration scripts, and Appearance reset now keep Shadcn Ember while following OS light/dark preference. +- 9532520: summary: Remember task popup size and position when switching between tasks. + category: fix + dev: Task-detail FloatingWindow instances share the `floating-window:task-detail` geometry key. +- 7300bf5: summary: Fix iPhone Safari terminal text spacing with the keyboard open. + category: fix + dev: Disables WebKit text-size adjustment inside dashboard xterm measurement subtrees. +- 30a11ac: summary: Count planning tasks correctly in the dashboard footer queue metric. + category: fix + dev: Footer counter tests now cover queued, running, stuck, blocked, review, overlap, background AI, and Done absence. +- d9ef514: summary: Show conversation titles in the mobile Chat dropdown. + category: fix + dev: Keeps the provider logo while removing model-name text from the mobile direct-chat trigger. +- e4349ee: summary: Merges no longer fail when a task adds a dependency without updating the lockfile. + category: fix + dev: In merge-dependency-sync.ts, an inferred frozen install (pnpm/yarn/bun) that fails with an outdated-lockfile error now retries once non-frozen (pnpm gets explicit --no-frozen-lockfile) to regenerate the lockfile in the clean-room worktree, recomputing the install marker. Configured worktreeInitCommand keeps its authoritative frozen intent and still hard-fails. Surfaced via the merge:ai-deps-sync run-audit event (healed/healedCommand). + +### runfusion.ai + +#### Patch Changes + +- Updated dependencies [306e516] +- Updated dependencies [9df13c7] +- Updated dependencies [c7641f9] +- Updated dependencies [da662c4] +- Updated dependencies [377eee6] +- Updated dependencies [9ee33f9] +- Updated dependencies [8580910] +- Updated dependencies [3453d16] +- Updated dependencies [777f647] +- Updated dependencies [abb1917] +- Updated dependencies [5738766] +- Updated dependencies [fafe4c9] +- Updated dependencies [865dec2] +- Updated dependencies [b8e126e] +- Updated dependencies [34be333] +- Updated dependencies [1f6befc] +- Updated dependencies [c49a933] +- Updated dependencies [53d5bb1] +- Updated dependencies [91737b1] +- Updated dependencies [b493a1e] +- Updated dependencies [e5be924] +- Updated dependencies [326c72b] +- Updated dependencies [1d6bb08] +- Updated dependencies [aa8f1f3] +- Updated dependencies [91fb53f] +- Updated dependencies [72adb52] +- Updated dependencies [25fecd7] +- Updated dependencies [dfb6e52] +- Updated dependencies [ec0256f] +- Updated dependencies [5984f32] +- Updated dependencies [ffcb54b] +- Updated dependencies [8d7abb8] +- Updated dependencies [22fd0da] +- Updated dependencies [765218f] +- Updated dependencies [1d6011c] +- Updated dependencies [2050323] +- Updated dependencies [3fac409] +- Updated dependencies [f973334] +- Updated dependencies [78ebeaf] +- Updated dependencies [1430a42] +- Updated dependencies [7a4b0bf] +- Updated dependencies [00afb22] +- Updated dependencies [9532520] +- Updated dependencies [7300bf5] +- Updated dependencies [30a11ac] +- Updated dependencies [d9ef514] +- Updated dependencies [e4349ee] + - @runfusion/fusion@0.55.0 ## 0.54.0 @@ -12122,6 +12427,14 @@ for reference. - Updated dependencies [a2ed6d0] - @runfusion/fusion@0.1.0 +## 0.39.20 + +### @fusion/i18n + +#### Patch Changes + +- @fusion/core@0.56.0 + ## 0.39.19 ### @fusion/i18n @@ -12276,6 +12589,14 @@ for reference. - @fusion/core@0.40.0 +## 0.11.46 + +### @fusion/droid-cli + +#### Patch Changes + +- @fusion-plugin-examples/droid-runtime@0.1.46 + ## 0.11.45 ### @fusion/droid-cli diff --git a/package.json b/package.json index 35dcd38c79..dd01cdf9c9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fusion-workspace", - "version": "0.55.0", + "version": "0.56.0", "private": true, "license": "MIT", "homepage": "https://github.com/Runfusion/Fusion#readme", diff --git a/packages/cli-alias/CHANGELOG.md b/packages/cli-alias/CHANGELOG.md index f0deb8a7cb..cbcb5126d8 100644 --- a/packages/cli-alias/CHANGELOG.md +++ b/packages/cli-alias/CHANGELOG.md @@ -1,5 +1,115 @@ # runfusion.ai +## 0.56.0 + +### Patch Changes + +- Updated dependencies [8668a05] +- Updated dependencies [978cdda] +- Updated dependencies [635fca2] +- Updated dependencies [3d55102] +- Updated dependencies [0f1cd0a] +- Updated dependencies [b42ba9f] +- Updated dependencies [a7559b0] +- Updated dependencies [4b530a6] +- Updated dependencies [a5ac3c3] +- Updated dependencies [8912399] +- Updated dependencies [d16c8b4] +- Updated dependencies [b800f7d] +- Updated dependencies [315f3bc] +- Updated dependencies [9dc248e] +- Updated dependencies [52dbc0e] +- Updated dependencies [ced783e] +- Updated dependencies [50cdab1] +- Updated dependencies [50786f2] +- Updated dependencies [b4b1f6d] +- Updated dependencies [e8b7362] +- Updated dependencies [0900a38] +- Updated dependencies [a2b09f2] +- Updated dependencies [0f05156] +- Updated dependencies [20184ac] +- Updated dependencies [82493e0] +- Updated dependencies [5689346] +- Updated dependencies [b42be87] +- Updated dependencies [2f23d22] +- Updated dependencies [efa8105] +- Updated dependencies [61c8bdc] +- Updated dependencies [e8dc2ae] +- Updated dependencies [d2e3134] +- Updated dependencies [b0208c1] +- Updated dependencies [7d8a1b8] +- Updated dependencies [2797803] +- Updated dependencies [a2d6349] +- Updated dependencies [4baa4c4] +- Updated dependencies [87a700c] +- Updated dependencies [68f5153] +- Updated dependencies [aa757bc] +- Updated dependencies [0689250] +- Updated dependencies [12a6d1b] +- Updated dependencies [81f2053] +- Updated dependencies [2cc84b5] +- Updated dependencies [79ab367] +- Updated dependencies [c16cc9e] +- Updated dependencies [aae603b] +- Updated dependencies [d10ea9a] +- Updated dependencies [bf68839] +- Updated dependencies [53d7b7e] +- Updated dependencies [c4d81fe] +- Updated dependencies [e7cb2f1] +- Updated dependencies [4707eb5] +- Updated dependencies [3b52a4d] +- Updated dependencies [5ad8ec8] +- Updated dependencies [726cbf8] +- Updated dependencies [36bd74e] +- Updated dependencies [df0be88] +- Updated dependencies [ec9ac61] +- Updated dependencies [8d36b99] +- Updated dependencies [ad744aa] +- Updated dependencies [5c3d58a] +- Updated dependencies [b4be515] +- Updated dependencies [62ddb19] +- Updated dependencies [883c73e] +- Updated dependencies [2ed06f9] +- Updated dependencies [8c6f76c] +- Updated dependencies [d09b57f] +- Updated dependencies [3d58260] +- Updated dependencies [052a277] +- Updated dependencies [f992e6a] +- Updated dependencies [2df6c35] +- Updated dependencies [94e9d15] +- Updated dependencies [3dd227b] +- Updated dependencies [6e4c207] +- Updated dependencies [6d364fc] +- Updated dependencies [b471aec] +- Updated dependencies [9d4a45b] +- Updated dependencies [72b77bf] +- Updated dependencies [c08498e] +- Updated dependencies [24b27e8] +- Updated dependencies [fb45157] +- Updated dependencies [7c0be53] +- Updated dependencies [71dfd3a] +- Updated dependencies [9592e3a] +- Updated dependencies [c31f9ef] +- Updated dependencies [ce9df29] +- Updated dependencies [78d4db9] +- Updated dependencies [196abb5] +- Updated dependencies [7435849] +- Updated dependencies [73b38ba] +- Updated dependencies [42bbe58] +- Updated dependencies [45e5a26] +- Updated dependencies [a1a6b09] +- Updated dependencies [53fe0d7] +- Updated dependencies [cf3fe8b] +- Updated dependencies [8b4e522] +- Updated dependencies [f30d55f] +- Updated dependencies [20379e8] +- Updated dependencies [e0f3d3d] +- Updated dependencies [5b193d2] +- Updated dependencies [ecbbb29] +- Updated dependencies [546ef16] +- Updated dependencies [b173f76] + - @runfusion/fusion@0.56.0 + ## 0.55.0 ### Patch Changes diff --git a/packages/cli-alias/package.json b/packages/cli-alias/package.json index 4188db1797..214ec777c8 100644 --- a/packages/cli-alias/package.json +++ b/packages/cli-alias/package.json @@ -1,6 +1,6 @@ { "name": "runfusion.ai", - "version": "0.55.0", + "version": "0.56.0", "license": "MIT", "description": "Launch Fusion with `npx runfusion.ai` — tiny alias for @runfusion/fusion.", "homepage": "https://runfusion.ai", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index a6f808e15e..7f2d684887 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,325 @@ # @runfusion/fusion +## 0.56.0 + +### Minor Changes + +- d16c8b4: summary: Expand first-run AI provider quick-start choices beyond Anthropic. + category: feature + dev: Moves advanced/all-provider onboarding controls under the quick-start provider section. +- 315f3bc: summary: Show Git prerequisite guidance during first-run GitHub onboarding. + category: feature + dev: Adds bounded server-host git availability to auth status and onboarding. +- 50cdab1: summary: Add GitHub OAuth and CLI setup actions to first-run onboarding. + category: feature + dev: GitHub onboarding now shows in-flow OAuth connect, gh auth login, and gh install guidance. +- 2f23d22: summary: Add configurable dashboard keyboard shortcuts for Quick Chat and Terminal. + category: feature + dev: Global dashboardKeyboardShortcuts settings, guarded document-level key handling, and Escape topmost-popup dismissal. +- efa8105: summary: Add search in Settings so operators can find settings faster. + category: feature + dev: Dashboard Settings filters visible sections by setting labels and keywords. +- 7d8a1b8: summary: Add a pinned below-application layout option for the dashboard terminal. + category: feature + dev: Terminal display mode now supports persisted docked, floating, and below layouts, with header controls replacing the footer shell. +- 87a700c: summary: Add a Reset Settings button to restore a menu's or all project settings to defaults. + category: feature + dev: New tested section→keys (scope-aware) registry (packages/dashboard/app/components/settings/section-keys.ts) drives per-menu reset via updateSettings/updateGlobalSettings with null-as-delete; non-blob sections (secrets, MCP, plugins, memory, auth, prompts, CLI agents, runtimes) are excluded with a documented reason. +- 68f5153: summary: Add a per-workflow planner oversight level setting (Off, Observe, Steer, Autonomous recovery). + category: feature + dev: New workflow setting `plannerOversightLevel` declared in BUILTIN_OVERSIGHT_SETTINGS; default `autonomous`. Per-task override and engine behavior land in follow-up tasks. +- aa757bc: summary: Tasks can override the workflow planner oversight level (Off, Observe, Steer, Autonomous recovery). + category: feature + dev: New nullable Task.plannerOversightLevel field (migration 137, SCHEMA_VERSION 137) mirroring executionMode; NULL inherits the workflow setting. Adds resolveEffectivePlannerOversightLevel precedence helper. Dashboard UI/API threading and engine behavior land in follow-up tasks. +- 0689250: summary: Planner oversight now defaults to full steering/control for every workflow unless explicitly changed. + category: feature + dev: Confirms the `plannerOversightLevel` workflow-setting default is the highest (autonomous) level; unset workflow value and unset per-task override both resolve to full steering via `resolveEffectivePlannerOversightLevel` (task override → workflow effective value → autonomous), adding dedicated regression coverage for the "unless explicitly disabled" precedence. +- 12a6d1b: summary: Planner oversight now monitors tasks across executor, reviewer, merger, pull-request, and workflow-gate stages. + category: feature + dev: Adds records-only PlannerOverseerMonitor + resolveWatchedStage + OverseerStageObservation in @fusion/engine, gated by resolveEffectivePlannerOversightLevel (off = no observation) and wired into ProjectEngine via a bounded poll. Steering/recovery and UI land in FN-7512/FN-7515+. +- 81f2053: summary: Planner oversight can autonomously inject guidance, retry stuck/failed steps, and request fixes within bounded limits. + category: feature + dev: Adds pure `decidePlannerRecovery` + recovery types (core) and `PlannerRecoveryController` with injected guidance/retry/targeted-fix handlers (engine), consuming the FN-7511 observation. Acts only at effective level `autonomous`, caps attempts per (task, stage) via `PLANNER_RECOVERY_MAX_ATTEMPTS`, skips user-paused tasks, and excludes merge/PR/destructive actions (deferred to FN-7513) and comprehensive human-control safeguards (FN-7514). +- 2cc84b5: summary: Planner oversight now requires confirmation before merge/PR actions and destructive/external side effects. + category: feature + dev: Adds `PlannerActionSideEffectClass` + `PlannerConfirmationRequest` and `classifyPlannerActionSideEffect`/`requiresPlannerConfirmation` (core), extends `decidePlannerRecovery` with an `await_confirmation` action, and adds `requestConfirmation`/`resolveConfirmation` gating to `PlannerRecoveryController` (engine). Merge/PR and destructive/external actions never execute without a recorded approval; bounded recovery (guidance/retry/targeted-fix) is unchanged. UX rendering, human-control safeguards, timeline, and run-audit land in follow-up tasks. +- 79ab367: summary: Planner overseer now stays fully hands-off for paused tasks and auto-merge-off / human-review tasks. + category: feature + dev: Adds the pure `evaluateOverseerHumanControl` policy (packages/engine/src/overseer-human-control-policy.ts), consulted at the top of `PlannerRecoveryController.tick()` before any action classification, confirmation gating, steering, retry, or dispatch — so a user-paused or `autoMerge:false`/human-review task never even records a pending confirmation. Reuses `allowsAutoMergeProcessing` from `@fusion/core` verbatim (never re-derives the auto-merge/human-review predicate). Distinguishes explicit user pause (`task.userPaused===true`, or `task.paused===true` with no `pausedReason`) from engine/self-healing parks (which always stamp a `pausedReason`). Emits a bounded `overseer:oversight-withheld-human-control` run-audit no-action event (metadata: `{ taskId, reason, stage, oversightLevel }`), deduped per (taskId, reason) so it does not spam every poll. +- c16cc9e: summary: Configure planner oversight level per task and per project in the workflow editor and task create/detail. + category: feature + dev: Per-task `plannerOversightLevel` override exposed via TaskForm (Inherit/off/observe/steer/autonomous), threaded through createTask/updateTask; workflow-editor Values tab gets a first-class display entry. Workflow-native setting; not a project setting. +- aae603b: summary: Add a configurable planner-overseer notification verbosity level (Silent/Errors/Important/All). + category: feature + dev: New workflow-native enum setting `plannerOversightNotificationLevel` in BUILTIN_OVERSIGHT_SETTINGS; default `important`. Resolves via resolveEffectiveSettings; emission gating that reads it lands in FN-7519/FN-7520. +- d10ea9a: summary: Add a task-detail planner-overseer intervention timeline (stage, reason, action, outcome, attempts, links). + category: feature + dev: New core `PlannerInterventionEntry` model + `recordPlannerIntervention`/`getPlannerInterventionTimeline` helpers persisting via the run-audit store under the `overseer:intervention` mutation, plus a `PlannerInterventionTimeline` component rendered in the task-detail Planner Oversight cluster. Emission call-sites land in FN-7520. +- bf68839: summary: Emit planner-overseer run-audit events for observations, steering, retries, recovery, confirmations, and escalations. + category: feature + dev: New core emitters (emitOverseerObservation/Steering/RecoveryAttempt/Retry/Confirmation/Escalation) in planner-overseer-events.ts, each mapping its decision-point to the correct intervention action/outcome and delegating to FN-7519's recordPlannerIntervention under the overseer:intervention mutation. Producer call-sites land in FN-7511/FN-7512/FN-7513. +- c4d81fe: summary: Add an AI-undo fallback task when reverting a done task via git conflicts or is unsupported. + category: feature + dev: `POST /api/tasks/:id/revert` now accepts `{ mode?: "git" | "ai" | "auto" }` (default `"auto"`). `"auto"` tries the FN-7523 git-revert path first and falls back to creating an AI-undo board task (`{ mode: "ai", createdTaskId, alreadyOpen? }`) on a conflicting or unsupported (e.g. workspace) git result; `needsHuman` (autoMerge-off) never triggers the fallback. `"ai"` always creates the AI-undo task; `"git"` keeps the FN-7523 git-only contract, which is otherwise unchanged. New engine exports: `createAiUndoTask`, `buildAiUndoTaskDescription`, `REVERT_OF_METADATA_KEY`. New core store method `TaskStore.findOpenRevertTaskForSource` backs the idempotency guard (an open undo task suppresses a duplicate; a closed one does not). +- e7cb2f1: summary: Add a Revert action to Done/Archived task cards to undo landed changes. + category: feature + dev: Wires onRevertTask through Board/List/Detail surfaces; calls POST /tasks/:id/revert in "auto" mode with a conflict-confirm AI-undo fallback (mode: "ai"). +- 5ad8ec8: summary: Capture a structured performance snapshot when an agent task completes. + category: feature + dev: New AgentReflectionService.captureTaskPerformance persists a non-LLM post-task ReflectionMetrics record (duration, packages/files touched, verification command + scope, retry/rework count) and emits ids/counts-only `reflection:captured` run-audit telemetry; populates performanceSummary/latestReflection. +- 726cbf8: summary: Task cards can now show the planner overseer's active state (idle/watching/steering/recovering/awaiting-confirmation). + category: feature + dev: Adds a serializable `PlannerOverseerRuntimeSnapshot` + pure `derivePlannerOverseerState` (core), a read-only `ProjectEngine.getPlannerOverseerRuntimeSnapshot(taskId)` accessor assembling it from the FN-7511 monitor + FN-7512/7513 recovery controller, and a best-effort additive `plannerOverseerState` enrichment on `GET /api/tasks` (mirrors the `branchProgress` pattern; never persisted, never fails the board load). Consumed by FN-7516's TaskCard. +- 2ed06f9: summary: Support reverting multi-repo workspace tasks via git, all-or-nothing across sub-repos. + category: feature + dev: Extends `packages/engine/src/task-revert.ts` with `resolveWorkspaceTaskRevertCommits`/`revertWorkspaceTask` and wires `POST /api/tasks/:id/revert` to dispatch workspace tasks (`isWorkspaceTask`) to the new path; returns `{ mode: "git", clean, workspace: { repos: [...] }, conflicts? }`. Single-repo `performTaskRevert` path is unchanged. +- 8c6f76c: summary: Add per-sha revert commit granularity to the task revert API and service. + category: feature + dev: `performTaskRevert` and `POST /api/tasks/:id/revert` accept an optional `granularity: "squash" | "per-sha"` (default `"squash"`, unchanged FN-7523 behavior). `"per-sha"` creates one attributed `revert(FN-xxxx)` commit per original sha (each with its own `Fusion-Task-Id` trailer and audit line), skipping no-op shas without empty commits. A mid-batch conflict in either mode rolls back the whole batch to the pre-call HEAD — no partially-landed per-sha commits. The clean result now reports `revertCommitShas: string[]` (all created commits) alongside the existing `revertCommitSha` (kept for backward compatibility). +- f992e6a: summary: Add a dedicated Keyboard Shortcuts settings section with click-to-record capture and more configurable actions. + category: feature + dev: Relocates dashboardKeyboardShortcuts into its own settings section, adds a ShortcutCaptureInput recorder, and extends DashboardShortcutAction with openFiles/openSettings/openCommandCenter/newTask actions wired into existing App nav handlers. +- 2df6c35: summary: Open a revert PR for done/archived tasks when autoMerge is disabled instead of refusing. + category: feature + dev: `POST /api/tasks/:id/revert` gains an additive `{ mode: "pr", clean: true, prUrl, prNumber, revertBranch, existingPr? }` result for clean single-repo reverts under `autoMerge:false`, reusing `GitHubClient.createPr`, `findPrForBranch` idempotency, and the `manual:true` PR handoff. New engine export `prepareRevertPrBranch` (packages/engine/src/task-revert.ts) prepares the dedicated `fusion/revert-` branch without ever mutating the base branch. Existing `{ mode: "git" | "ai", ... }` shapes and the `autoMerge:true` path are unchanged. +- 94e9d15: summary: AI-undo tasks now default to a configurable, stricter review workflow. + category: feature + dev: New project setting `aiUndoTaskWorkflowId` (default `builtin:review-heavy`) selects the workflow for AI-undo board tasks created by `POST /api/tasks/:id/revert` (`mode: "ai"`, the `auto` conflict fallback, and the workspace conflict fallback all share the `createAiUndoResult()` closure, so all three inherit this default). A blank/unset value means the created task inherits the project default workflow (pre-FN-7556 behavior). The route validates the configured id via `getWorkflowDefinition`/`isBuiltinWorkflowId` and falls back to inherit (with a logged warning) on a blank or unknown value, so a misconfigured id never breaks AI-undo task creation. The engine's `createAiUndoTask` helper stays pure — it only forwards a `workflowId` it is given, never resolves the setting itself. The Settings Modal UI field for this setting is a deliberate follow-up task; the value is settable today only via the settings API. +- 3dd227b: summary: Plan auto-approval is now the default; specified tasks skip manual approval unless you opt into workflow/require-all. + category: feature + dev: `DEFAULT_PROJECT_SETTINGS.planApprovalMode` flips `workflow` → `auto-approve-all`; existing projects with an explicit stored value are unchanged; consumed by `resolvePlanApprovalRequired` at the triage gating sites. +- 78d4db9: summary: Fusion self-repo issue-close comments now show current and target release versions. + category: feature + dev: GitHubIssueCommentService appends "Current version: v{current}" and "Target release: v{next-minor}" lines when the linked source issue is runfusion/fusion; other repos unchanged. Version resolved via getCliPackageVersion. +- 7435849: summary: Open one revert PR per sub-repo for workspace tasks when autoMerge is disabled. + category: feature + dev: `POST /api/tasks/:id/revert` gains an additive workspace `{ mode: "pr", clean: true, workspace: { repos: [{ repo, revertBranch, prUrl, prNumber, existingPr? }] } }` result for clean multi-repo reverts under `autoMerge:false`, extending FN-7554's single-repo `mode:"pr"` path. New engine export `prepareWorkspaceRevertPrBranches` (packages/engine/src/task-revert.ts) classifies every sub-repo first and only prepares a dedicated `fusion/revert-` branch per sub-repo when all are clean/already-reverted (all-or-nothing at the branch-prep phase), never force-writing any sub-repo integration branch. The route resolves owner/repo and checks the rate limiter for every sub-repo before pushing/creating any PR, so GitHub-unconfigured/rate-limited cases degrade the whole task to `needsHuman` rather than opening a partial subset of PRs. Existing `{ mode: "git" | "ai" | "pr", ... }` shapes, the `autoMerge:true` workspace path, and FN-7554's single-repo path are unchanged. +- 73b38ba: summary: Add a Settings → General picker to choose the workflow used for AI-undo (revert) tasks. + category: feature + dev: Surfaces `aiUndoTaskWorkflowId` (default `builtin:review-heavy`) in GeneralSection; empty selection means "inherit project default workflow", matching the revert route's blank-is-inherit behavior from FN-7556. +- 42bbe58: summary: Add "Ask user question" and "Exit gate" workflow nodes for mid-flow chat reach-out and early exit. + category: feature + dev: New IR node kinds `ask-user` (reuses await-input park/resume; surfaces the question in the task chat) and `exit-gate` (terminates the workflow early, optional condition). Editor palette + summaries + help updated; `prompt`+`awaitInput` remains a back-compat alias. +- 53fe0d7: summary: Add a built-in "Brainstorming" workflow that talks to you before planning. + category: feature + dev: Registers `builtin:brainstorming` (non-default, default-enabled) composing FN-7579's `ask-user` → refine → `exit-gate`-on-approval phase ahead of the normal coding plan/execute/review/merge spine. Parity suite (`builtin-workflows.test.ts`) extended for the new entry. +- ecbbb29: summary: Add a "Coding (Ideas)" workflow with a manual Ideas intake and a merged Todo planner column. + category: feature + dev: New `builtin:coding-ideas` clones the default stepwise pipeline with an `ideas` intake (autoTriage:false) in front of a merged `todo` planner+capacity column. createTask lands cards in the workflow's intake column; the triage service plans unplanned todo tasks in place; the scheduler skips bootstrap-prompt todo tasks; TaskCard gains a Start button and a Ready badge. + +### Patch Changes + +- 8668a05: summary: Add a workflow setting to disable automatic large-task triage splitting. + category: feature + dev: Adds triageProactiveSubtaskSplittingEnabled while preserving explicit breakIntoSubtasks requests. +- 978cdda: summary: Show active Plan Review progress on triage task cards. + category: fix + dev: TaskCard now renders the existing progress affordance for Triage only when unified progress has active workflow work. +- 635fca2: summary: Remove the eye icon markdown/plain toggle from chat; messages always render as Markdown. + category: breaking + dev: Removed ChatView `chat-thread-header-render-toggle` (desktop + mobile), `showAllAsPlain` state, and `chat.showRenderedMarkdown`/`chat.showPlainText` i18n keys (FN-7541). +- 3d55102: summary: Clarify task-detail oversight Nudge/Explain controls: visible label, disabled reason, always-openable Explain panel. + category: fix + dev: TaskDetailModal now renders a `detail-oversight-controls-label` group label and `detail-overseer-nudge-disabled-reason` helper text (both gated by the existing oversight-cluster visibility condition); Explain no longer disables on `!canExplainOverseer` since it is read-only. Nudge's `canNudgeOverseer` gate and Stop's confirm dialog are unchanged. +- 0f1cd0a: summary: Unify border, radius, and height of the task-detail Priority/Execution/Oversight controls. + category: fix + dev: Adds a shared --detail-control-border-radius token alongside --detail-priority-control-min-height so .detail-priority-chip, .detail-execution-mode-toggle, .detail-oversight-chip, and .detail-oversight-menu-trigger all resolve the same border-width/color/radius/height. +- b42ba9f: summary: Keep the task-detail Activity view menu open during mobile iOS taps. + category: fix + dev: Guards the Activity views dropdown against iOS visualViewport resize/scroll echoes during menu opening. +- a7559b0: summary: Fix Anthropic subscription login when pasted callback URLs contain fragment OAuth parameters. + category: fix + dev: Normalizes pasted OAuth callback fragments before resolving dashboard manual-code login prompts. +- 4b530a6: summary: Fix Claude/Anthropic subscription re-login showing "Login did not complete" after logging out. + category: fix + dev: Anthropic subscription OAuth is aliased across the legacy `anthropic` row (where interactive login persists the credential) and the `anthropic-subscription` id (where the settings card's in-memory logged-out suppression and status read are keyed). Re-login wrote only `anthropic`, so `loggedOutProviders` kept suppressing `anthropic-subscription` and the card reported failure despite a valid stored credential until process restart. auth-storage's proxy now clears the logged-out state on both aliases when either is re-authenticated (new `login` trap + hardened `set` trap via `clearReauthenticatedLogoutState`; raw api_key writes stay scoped to their own card). Also surfaces background OAuth login failures on `GET /auth/status` (`loginError`) + server logs so future paste-callback failures are diagnosable instead of a generic error. +- a5ac3c3: summary: Stop self-healing from killing actively-running tasks after ~30 minutes. + category: fix + dev: FN-7566. isPhantomExecutorBinding's liveness gate (heartbeat/checkout/runAudit) was blind to ephemeral executor agents, leaving only the age>graceMs\*3 threshold, so any ephemeral-executor task running longer than ~30 min was reclaimed to `todo` mid-flight. Adds the in-process live-session veto (activeSessionRegistry path / executingTaskLock / isTaskActive), mirroring the isWorkspaceTaskLive/sessionDead predicate, and honors clearPhantomExecutorBinding's live-session refusal in reclaimSelfOwnedBranchConflicts. +- 8912399: summary: Stop Windows Terminal version dialogs from popping up when opening the dashboard or Settings on Windows. + category: fix + dev: Root cause was the worktrunk integration, not the embedded terminal: worktrunk's CLI is named `wt`, which collides with Windows Terminal (`wt.exe`) on PATH, so probing it with `wt --version` launched Windows Terminal. Fixed by (1) `useWorktrunkInstallStatus` only auto-fetching `/api/worktrunk/status` when the integration is enabled (user opt-in) instead of on every Settings/dashboard mount, and (2) an engine-level guard in `probeWorktrunk` that refuses to exec a resolved `wt` that is the Windows Terminal alias (under `WindowsApps` / a `WindowsTerminal` package dir), covering all resolution surfaces. +- b800f7d: summary: Select newly created folders automatically during project setup. + category: fix + dev: Adds DirectoryPicker opt-in selection for project-registration surfaces while preserving default picker behavior. +- 9dc248e: summary: Prevent Desktop update banners from using 0.0.0 as the current version. + category: fix + dev: Dashboard update checks now resolve packaged @fusion/desktop metadata and fail closed for unresolved versions. +- 52dbc0e: summary: Quit Fusion Desktop on Windows when the window is closed. + category: fix + dev: Updates Electron close lifecycle so Windows shutdown reaches embedded runtime cleanup. +- ced783e: summary: Open desktop Anthropic Subscription OAuth logins in the system browser. + category: fix + dev: Adds Electron window-open policy coverage and preserves Settings auth polling completion paths. +- 50786f2: summary: Delay GitHub setup warnings for one day and add a dashboard connect action. + category: fix + dev: Dashboard setup warnings now gate GitHub prompts per project and route the CTA to Settings → Authentication. +- b4b1f6d: summary: Fix a false AI engine not running banner in desktop mode. + category: fix + dev: Distinguishes transient embedded desktop engine startup from true dashboard-only mode. +- e8b7362: summary: Clarify the desktop Connection Manager add-remote flow. + category: fix + dev: Desktop Connection Manager now separates Local Server context from saved remote profiles and collapses the remote editor until add/edit. +- 0900a38: summary: Restore Local Server in the desktop Switch server list. + category: fix + dev: Desktop Connection Manager now lists local and saved remote destinations together. +- a2b09f2: summary: Make right-dock task list clicks respect the task popup setting. + category: fix + dev: Threads openMobileTasksInPopup through the right-dock Tasks list route while preserving embedded dock detail when disabled. +- 0f05156: summary: Auto-retry retryable Code Review remediation failures. + category: fix + dev: Prevents retryable code-review-remediation graph failures from stranding tasks in in-review. +- 20184ac: summary: Fix no-op task branch recovery after a previously landed task. + category: fix + dev: Merge/recovery ownership classification now checks no-diff branches before foreign trailer rejection. +- 82493e0: summary: Allow documented source-free task-artifact deliveries to finish without commits. + category: fix + dev: fn_task_done now recognizes explicit gitignored .fusion/tasks artifact contracts while preserving source-change no-commit guards. +- 5689346: summary: Fix direct merges so Push to remote after merge honors the configured remote and branch. + category: fix + dev: Resolves remote-only push targets from the merge integration branch and preserves non-fatal push errors on done tasks. +- b42be87: summary: Keep task popups on the board layer with Activity menus above them. + category: fix + dev: Task-detail FloatingWindow callers use a lower layer band, and Activity view menus reposition after popup geometry changes. +- 61c8bdc: summary: Keep accepted chat requests waiting instead of showing false first-event timeout failures. + category: fix + dev: Dashboard chat POST streams no longer abort accepted-but-silent responses on the client first-event timer. +- e8dc2ae: summary: Show each task's original prompt in the Plan tab alongside the generated plan. + category: fix + dev: Adds a read-only Task Detail original-prompt section backed by task.description. +- d2e3134: summary: Add before-to-after transformation summaries to generated task definitions. + category: feature + dev: Built-in standard and fast triage prompts now require a `## Before → After Transformation` section. +- b0208c1: summary: Restore terminal Ctrl/Cmd copy and paste shortcuts. + category: fix + dev: Integrated and embedded terminals now own physical clipboard paste to avoid swallowed or duplicate input. +- 2797803: summary: Show first-token and tool processing durations in task agent logs. + category: feature + dev: Adds optional agent-log timing fields `timeToFirstTokenMs` and `durationMs`. +- a2d6349: summary: Fix mobile Chat composer being hidden behind the keyboard accessory bar. + category: fix + dev: Adds keyboard-open bottom clearance in ChatView so the composer clears the iOS input-assistant/autofill bar without a persistent .chat-thread transform or Android reserved-gap. +- 4baa4c4: summary: Settings descriptions now show each setting's default value. + category: feature + dev: Appended default-value copy to settings.\* i18n descriptions across Global, Runtimes, and Project Settings sections, sourced from DEFAULT_GLOBAL_SETTINGS/DEFAULT_PROJECT_SETTINGS in settings-schema.ts; added settings-default-descriptions.test.tsx guarding that every surfaced setting states a default (or explicit "inherits"/"no default \u2014 unset") and that every DEFAULT_SETTINGS key is documented or allowlisted as not surfaced. +- 53d7b7e: summary: Add an intelligent git-revert engine service and POST /api/tasks/:id/revert route. + category: feature + dev: New `packages/engine/src/task-revert.ts` exports `resolveTaskRevertCommits`, `classifyTaskRevert`, and `performTaskRevert` (squash/rebase/lineage attribution precedence, dry-run classification, guaranteed-clean rollback). Route enforces done/archived-only and autoMerge-off guard rails; conflicting results are returned unresolved for sibling FN-7524 (AI-undo) to act on. Workspace tasks return `unsupported`. +- 4707eb5: summary: Auto-approve now reliably sends specified plans to the board without a manual approval stop. + category: fix + dev: FN-7526 — investigated the reported "plans still park at awaiting-approval when auto-approve is on" symptom; resolvePlanApprovalRequired, mergeEffectiveSettings/applyWorkflowSettingsOverlay, and every finalizeApprovedTask call site (specifyTask, recoverApprovedTask, retryUnavailablePlanReview, tryFinalizeExplicitDuplicateMarker) already honored project planApprovalMode: "auto-approve-all" over a stored workflow requirePlanApproval value — no production defect reproduced. Added end-to-end regression coverage across every enumerated surface (Plan Review reviewer-outage retry, refinement routing, self-healing starved-refinement recovery) using the real mergeEffectiveSettings pipeline instead of isolated bare-settings unit calls, plus explicit assertions that the independent release-authorization and Workflow Plan Review gates remain intact under auto-approve-all, so a future bare-settings call site is caught immediately instead of silently reintroducing the reported behavior. +- 3b52a4d: summary: Fix the in-dashboard Switch server menu not switching desktop local/remote. + category: fix + dev: The desktop shell's redirect effects in App.tsx read a dead `localServer` field that the preload never populates; extracted `resolveDesktopShellRedirectTarget` in appLifecycle.ts now derives the navigation target from the live `localRuntime`/`activeProfileId` state for both directions, and the unused `localServer` field was removed from `ShellConnectionState`. +- 36bd74e: summary: Fix branch group completion checklists to show accurate landed/finished counts. + category: fix + dev: runAiMerge (the sole merge path since master-plan U0) never resolved branch-group routing or stamped mergeDetails.mergeTargetBranch/mergeTargetSource, so isBranchGroupMemberLanded permanently reported shared-group members as not landed. Routes through resolveBranchGroupMergeRouting (matching the legacy merger.ts pattern) and stamps the target fields on both the landed and no-op finalize paths; preserves merge-target-safety in isBranchGroupMemberLanded (a sibling/mismatched-branch member still never counts as landed). +- df0be88: summary: Branch groups no longer report complete (or become promotable) when an unlanded member is archived. + category: fix + dev: listTasksByBranchGroup membership now scans with includeArchived:true so an archived-but-unlanded member stays counted in total instead of silently dropping out; mergeDetails is now persisted on ArchivedTaskEntry so an archived member that had already landed keeps counting as landed. evaluateBranchGroupCompletion / promoteBranchGroup gate correctly; merge-target-safety in isBranchGroupMemberLanded is unchanged. +- ec9ac61: summary: Fix the global GitLab integration setting not persisting when saved. + category: fix + dev: splitSettingsSave now diffs the five global GitLab keys (gitlabEnabled, gitlabInstanceUrl, gitlabApiBaseUrl, gitlabAuthToken, gitlabAuthTokenType) against scoped global initials only, never the project-effective merged initialValues, so a project override no longer suppresses a real global save. +- 8d36b99: summary: Fix task-detail Activity view dropdown not opening reliably on mobile. + category: fix + dev: Guards the Activity menu's window resize/orientationchange/scroll close-listener with the same opening-tap timing guard already used for visualViewport, and exempts scroll events originating in the `.detail-tabs` scroller, so a same-gesture mobile tap echo (Android/iOS, fixed modal or `.floating-window--task-detail` popup) no longer closes the menu the instant it opens. +- ad744aa: summary: Manual "Run now" for the Database Backup automation now runs in-process like the scheduler, matching cron behavior. + category: fix + dev: The legacy single-command and command-step manual automation run path (`executeSingleCommand` in packages/dashboard/src/routes.ts) now intercepts `isInProcessBackupCommand`/`isInProcessMemoryBackupCommand` via the scoped TaskStore, mirroring `RoutineRunner.executeCommand`/`CronRunner`, instead of always shelling out via `exec()`. `formatInProcessBackupError`, `isInProcessBackupCommand`, and `isInProcessMemoryBackupCommand` are now exported from `@fusion/engine` for reuse. Existing onStep/onText live-run callbacks already stream incremental output for command/backup runs; added regression coverage confirming this holds for the new interception branch. +- 5c3d58a: summary: Task cards no longer show the "Auto-recovery" oversight badge unless oversight is explicitly configured. + category: fix + dev: `TaskCard.tsx`'s `showOversightBadge` gate now also suppresses the badge when the effective level equals `DEFAULT_PLANNER_OVERSIGHT_LEVEL` ("autonomous") and there is no explicit per-task `plannerOversightLevel` override; an explicit per-task override of "autonomous" still renders the badge. +- b4be515: summary: Remove the per-card overseer-state ("Executor") badge from task cards. + category: fix + dev: Deleted the FN-7516 `card-overseer-state-badge` render, its card-local `deriveOverseerCardWatchedStage` helper/label maps, and its CSS; the sibling oversight-level badge (`card-oversight-badge`) is unaffected. +- 62ddb19: summary: Original task prompt now renders as Markdown and is collapsed by default in the task Plan tab. + category: feature + dev: Task Detail Plan/Definition tab original-prompt section reuses the existing `.detail-source-toggle`/`.detail-source-chevron--expanded` collapse pattern and the shared `ReactMarkdown` pipeline (`remarkGfm`, `sharedRehypePlugins`, `markdownLinkifyComponents`); backed by read-only `task.description`, no change to the generated `PROMPT.md` editor/revision flow. +- 883c73e: summary: Fix agent-created artifacts not appearing live in the dashboard artifacts view. + category: fix + dev: Root cause was cross-instance artifact-registration replication, not the route/hook/render path (all already correct). `TaskStore.registerArtifact()` never bumped `lastModified`, and `checkForChanges()` (the polling replicator that lets a second TaskStore instance on the same project — e.g. the dashboard's cached store vs. the engine's own store — mirror events it did not write itself) only ever diffed the `tasks` table, never `artifacts`. A store instance that did not perform the write could therefore never observe or re-emit `artifact:registered`, leaving an already-open Documents/task Artifacts gallery stale until a full reload. Fixed by bumping `lastModified` on artifact writes and adding a strictly-increasing `rowid`-cursor poll over the `artifacts` table in `checkForChanges()`. See `packages/core/src/__tests__/artifacts.test.ts` and `packages/dashboard/src/routes/__tests__/artifacts-route-integration.test.ts` for regression coverage. +- d09b57f: summary: Fix the mobile terminal shortcut bar so it scrolls horizontally to reach every key. + category: fix + dev: Added `min-width: 0` to `.terminal-shortcut-panel` to defeat the flex min-width:auto trap that clipped overflow instead of engaging `overflow-x: auto`. +- 3d58260: summary: Planner-oversight intervention timeline now populates from real engine activity. + category: fix + dev: Wires PlannerOverseerMonitor/PlannerRecoveryController decision points to the FN-7520 emitOverseer\* façade with the real TaskStore; observation/escalation emission deduped per (task, stage[, signal]). +- 052a277: summary: Show the "Global" prefix on the Authentication entry in the mobile Settings picker. + category: fix + dev: resolveSettingsSectionOptionLabel now derives the Global-group prefix for storage-less (scope: undefined) sections in SettingsModal.tsx (FN-7552). +- 6e4c207: summary: Tasks held for release authorization or Plan Review are now shown distinctly, so auto-approve no longer looks broken. + category: fix + dev: FN-7559 — auto-approve-all bypasses only the manual plan-approval gate (unchanged, FN-7526). Release-authorization holds are surfaced with a new distinct status reason (`Task.awaitingApprovalReason: "release-authorization"`) and no longer render the generic manual Approve/Reject affordance in TaskCard/TaskDetailModal; Workflow Plan Review already used distinct statuses (`needs-replan`/`plan-review-unavailable`) and is unaffected. Both gates remain independent and intact — this is UI/data disambiguation only. +- 6d364fc: summary: Move mobile terminal controls into a bottom footer so they no longer crowd the header, with a scrollable shortcut bar. + category: fix + dev: On the ≤768px terminal, the `.terminal-actions` cluster now renders in a `terminal-footer-actions` bar (with `min-width:0; overflow-x:auto`) instead of the header; desktop/floating/pinned-below keep the FN-7502 header layout. Preserves the FN-7550 shortcut-panel scroll fix. +- b471aec: summary: Stop the release-authorization gate from holding tasks that merely disclaim releasing. + category: fix + dev: classifyReleaseTask now strips negated release-disclaimer clauses (e.g. "this task performs no release/publish; releases are owned by scripts/release.mjs") before signal matching in packages/engine/src/triage-release-authorization.ts, so revert/undo/UI specs are no longer false-flagged as release-class. Genuine "run pnpm release"/"publish @runfusion/fusion" intent still trips the gate. +- 9d4a45b: summary: Fix mobile terminal text still rendering with excess inter-character gaps after font-load settle. + category: fix + dev: Root cause: xterm's OptionsService setter is a no-op when reassigning an already-current fontFamily/fontSize, so post-settle reapply never forced CharSizeService/DomRenderer to remeasure. Added `forceTerminalFontRemeasure()` in `terminalPreferences.ts`, used by both `TerminalModal.tsx` and `SessionTerminal.tsx` at every post-`waitForTerminalFontMetrics()` settle site. +- 72b77bf: summary: Stop Plan Review from looping tasks forever and fix its "can't find the plan" reviews. + category: fix + dev: FN-7561 — Plan Review pre-merge gate hardening in packages/engine/src/executor.ts. (1) The reviewer ran readonly with cwd=worktree but the spec lives at project-root .fusion/tasks//PROMPT.md, so "Read PROMPT.md" produced "no PROMPT.md found / data is in a DB" non-verdicts; the spec text is now injected into the reviewer prompt via readTaskArtifact. (2) A malformed reviewer response now self-retries once on the primary model when no fallback is configured. (3) A malformed (advisory_failure, no verdict) plan-review result can never trigger a triage replan. (4) The unbounded plan-review replan default is capped at 15 attempts with a loud halting log entry, so a persistently-disagreeing planner/reviewer no longer burns LLM calls indefinitely (FN-7525 ran 13+ attempts overnight). +- c08498e: summary: Planner-overseer task badge now shows a readable label and explains what it is waiting on. + category: fix + dev: TaskCard badge renders plannerOverseerStateLabel + plannerOverseerBadgeTooltip built from the existing PlannerOverseerRuntimeSnapshot (reason/watchedStage/signal/pendingConfirmation); presentation-only, no engine changes. +- 24b27e8: summary: Plan approve/reject API now blocks release-authorization holds, requiring the authorization marker first. + category: fix + dev: FN-7564 — POST /tasks/:id/approve-plan and /reject-plan now return 400 when task.awaitingApprovalReason === "release-authorization" (FN-7559 discriminator), enforcing the FN-6481 release-authorization gate at the API layer regardless of client. Manual-approval holds are unaffected. +- fb45157: summary: Pin the mobile terminal close (X) button to the top-right corner so it is easy to find and tap. + category: fix + dev: On the ≤768px terminal, the `terminal-close` button now carries a `terminal-close--corner` class (order:3 + margin-inline-start:auto) so it renders last in flex order and hugs the right edge next to the tab dropdown, instead of falling back to order:0 (far left). Desktop/floating/pinned-below placement inside `.terminal-actions` is unchanged. +- 7c0be53: summary: Fix mobile terminal excess character spacing that survived earlier font-remeasure fixes. + category: fix + dev: `TerminalModal`/`SessionTerminal` re-bake xterm's `DomRenderer` letter-spacing compensation AFTER `fitAddon.fit()` settles the post-fit column count (not just before it), since `handleResize()` never re-bakes spacing itself. See `docs/solutions/ui-bugs/xterm-options-noop-remeasure-after-font-settle.md` recurrence #4. +- 71dfd3a: summary: Rename downloadable CLI release binaries to the fn-cli- base name. + category: internal + dev: `binaryNameForTarget` in `packages/cli/build.ts` and the `release.yml` / `test-release.yml` matrices now emit `fn-cli-`; the local dev binary stays `fn`/`fn.exe`. +- 9592e3a: summary: Manual plan approval no longer re-asks you to approve a plan you already approved when it hasn't changed. + category: fix + dev: FN-7569 — approving a plan records a fingerprint of the approved PROMPT.md (new nullable Task.approvedPlanFingerprint, migration 139). The manual plan-approval gate skips re-parking at awaiting-approval when a re-specification (replan, plan-review retry, self-healing rebound) produces the same plan; a changed plan or reject-plan still requires fresh approval. Release authorization, Workflow Plan Review, and auto-approve-all are unchanged. +- c31f9ef: summary: Move the planner intervention timeline into the task Activity view dropdown. + category: feature + dev: Removes the inline `PlannerInterventionTimeline` mount from the FN-7517 oversight cluster in `TaskDetailModal.tsx` and adds a fourth `interventions` `ActivitySegment`, shown in the Activity dropdown only when planner oversight is active for the task; falls back to Live if oversight turns off while Interventions is selected. +- ce9df29: summary: Expired Claude subscription logins now show disconnected with a re-login prompt; tokens auto-refresh before expiry. + category: fix + dev: Unifies OAuth expiry detection between OAuthExpiryMonitor and /api/auth/status, and adds an engine-side proactive OAuth refresh scheduler wired in project-engine (guarded by skipNotifier). No token material logged. +- 196abb5: summary: Anthropic subscription reads now refresh the OAuth token automatically instead of silently failing when expired. + category: fix + dev: mergeAuthStorageReads getApiKey("anthropic-subscription") now delegates to the underlying engine authStorage.getApiKey (the only refresh-token HTTP round trip) instead of a local static expiry check; regression tests drive the wrapper directly. No token material logged. +- 45e5a26: summary: Stop GitHub tracking-issue creation from linking new tasks to old/closed issues. + category: fix + dev: github-tracking dedup now only reuses OPEN issues and requires a File-Scope path overlap (keyword-only matches no longer link). Prevents mis-linking a fresh task to a stale/resolved tracking issue (FN-7579). Setting `githubTrackingDedupEnabled` unchanged. +- a1a6b09: summary: Clarify the oversight "Nudge unavailable" guideline so it no longer reads as an overseer fault. + category: fix + dev: TaskDetailModal oversight controls — reworded taskDetail.oversight.nudgeDisabledTitle and added taskDetail.oversight.nudgeSuppressedTitle to differentiate periodic-observation vs. manual-control states. No enablement/engine logic changed. +- cf3fe8b: summary: New tasks created under the Coding (Ideas) workflow now land in the Ideas column and wait for you to promote them. + category: fix + dev: Dashboard create surfaces (InlineCreateCard, QuickEntryBox, NewTaskModal, insight/todo → task) no longer hard-code column:"triage"; the store now resolves the selected/default workflow's intake column. InlineCreateCard forwards workflowId at create time instead of applying it post-create. Also fixed a glue-layer regression in `useTaskHandlers.ts` (`handleBoardQuickCreate`/`handleModalCreate`) that re-forced column:"triage" even after the UI surfaces stopped sending it. +- 8b4e522: summary: Fix tasks vanishing from the board after being added to a workflow like Coding (Ideas). + category: fix + dev: Board.tsx forces a board-workflows refetch (deferred one tick, signature-guarded) whenever a rendered task is missing from the taskWorkflowIds map, so its real workflow and intake column resolve regardless of which create surface added it; the single-workflow grouping also re-homes a task whose column its workflow no longer declares into the intake lane instead of dropping it. Fixes the FN-7591 regression where intake-column cards (column "ideas") fell back to the default workflow, which has no such column, and were filtered out until a manual reload. +- f30d55f: summary: Move the Before → After transformation summary to the top of generated task definitions. + category: fix + dev: Reorders the standard and fast triage `PROMPT.md` templates in packages/core/src/agent-prompts.ts so `## Before → After Transformation` is the first content section, ahead of `## Review Level` and `## Mission`, matching FN-7499's glance-verification intent. +- 20379e8: summary: Task-detail Priority dropdown now matches the Oversight dropdown's size, border, and typography. + category: fix + dev: Removed the Priority-only forced select/option uppercase, added a neutral chip background scoped to `.detail-priority-chip.card-priority-badge--normal` for the untinted `normal` level, and reused the FN-7585 shared `--btn-border-width`/`--border`/`--detail-control-border-radius`/`--detail-priority-control-min-height` tokens so both dropdowns render as one control style across desktop and the mobile oversight-overflow surface. +- e0f3d3d: summary: Default workflow boards now label the intake column "Planning" instead of "Triage". + category: fix + dev: Renamed the `name` of the `id: "triage"` intake column to "Planning" in builtin-coding, builtin-stepwise-coding, and builtin-pr workflow IRs (column id unchanged; linear built-ins inherit via canonicalBuiltinWorkflowColumns). COLUMN_LABELS.triage was already "Planning". +- 5b193d2: summary: Fix the task-detail Nudge control staying disabled when the overseer is actively watching. + category: fix + dev: GET /api/tasks/:id now attaches the transient plannerOverseerState snapshot (mirrors the list route); TaskDetailModal reads the snapshot from workingTask so detail refetches no longer drop it. +- 546ef16: summary: Honor mission branchStrategy when triage omits branchAssignment; skip validation for inactive missions. + category: fix + dev: resolveBranchAssignmentContext returns undefined for absent mode so triage falls back to mission.branchStrategy; processTaskOutcome gates on mission.status === "active" like recoverActiveMissions. +- b173f76: summary: Planner overseer no longer marks healthy in-progress tasks as "recovering" or steers them. + category: fix + dev: `decidePlannerRecovery` now returns `none` for healthy (`progressing`/`complete`) and `awaiting-human` executor/workflow-gate signals instead of falling through to `inject_guidance`; only `stuck`/`blocked`/`failed` trigger autonomous steering. Also dedupes the `PlannerOverseerMonitor` activity-feed heartbeat so an unchanged `(stage, signal, reason)` observation is logged once per change, not every poll tick. Fixes the "overseer recovering" badge appearing on every autonomous card and the needless AI-consuming guidance injections (FN-7577). + ## 0.55.0 ### Minor Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 12b7620272..fd3058f086 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@runfusion/fusion", - "version": "0.55.0", + "version": "0.56.0", "license": "MIT", "description": "Fusion CLI: HTTP API server, daemon, dashboard launcher, and task tooling for the Fusion AI coding agent.", "homepage": "https://github.com/Runfusion/Fusion#readme", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 81a426217d..9dd821dbb1 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,7 @@ # @fusion/core +## 0.56.0 + ## 0.55.0 ## 0.54.0 diff --git a/packages/core/package.json b/packages/core/package.json index 92b3a6d9c8..231c17ef04 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/core", - "version": "0.55.0", + "version": "0.56.0", "license": "MIT", "description": "Fusion core: task store, scheduler, settings, and shared domain types backing the Fusion AI coding agent.", "homepage": "https://github.com/Runfusion/Fusion#readme", diff --git a/packages/dashboard/CHANGELOG.md b/packages/dashboard/CHANGELOG.md index e8cf58ead6..2c24c505ba 100644 --- a/packages/dashboard/CHANGELOG.md +++ b/packages/dashboard/CHANGELOG.md @@ -1,5 +1,22 @@ # @fusion/dashboard +## 0.56.0 + +### Patch Changes + +- @fusion/core@0.56.0 +- @fusion/engine@0.56.0 +- @fusion/i18n@0.39.20 +- @fusion-plugin-examples/cli-printing-press@0.1.37 +- @fusion-plugin-examples/compound-engineering@0.1.20 +- @fusion-plugin-examples/dependency-graph@0.1.51 +- @fusion-plugin-examples/roadmap@0.1.39 +- @fusion-plugin-examples/cursor-runtime@0.1.39 +- @fusion-plugin-examples/droid-runtime@0.1.46 +- @fusion-plugin-examples/hermes-runtime@0.2.70 +- @fusion-plugin-examples/openclaw-runtime@0.2.70 +- @fusion-plugin-examples/paperclip-runtime@0.2.70 + ## 0.55.0 ### Patch Changes diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index a7cb0917aa..fd257dd688 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/dashboard", - "version": "0.55.0", + "version": "0.56.0", "license": "MIT", "description": "Fusion dashboard: React UI and HTTP API server for monitoring and controlling the Fusion AI coding agent.", "homepage": "https://github.com/Runfusion/Fusion#readme", diff --git a/packages/desktop/CHANGELOG.md b/packages/desktop/CHANGELOG.md index 25edae85ec..9cdc43a1f9 100644 --- a/packages/desktop/CHANGELOG.md +++ b/packages/desktop/CHANGELOG.md @@ -1,5 +1,13 @@ # @fusion/desktop +## 0.56.0 + +### Patch Changes + +- @fusion/core@0.56.0 +- @fusion/dashboard@0.56.0 +- @fusion/engine@0.56.0 + ## 0.55.0 ### Patch Changes diff --git a/packages/desktop/package.json b/packages/desktop/package.json index bcb0451adc..3ada770992 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@fusion/desktop", "productName": "Fusion", - "version": "0.55.0", + "version": "0.56.0", "license": "MIT", "author": { "name": "Runfusion", diff --git a/packages/droid-cli/CHANGELOG.md b/packages/droid-cli/CHANGELOG.md index 7d0ba7fdf8..76ed864e1f 100644 --- a/packages/droid-cli/CHANGELOG.md +++ b/packages/droid-cli/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion/droid-cli +## 0.11.46 + +### Patch Changes + +- @fusion-plugin-examples/droid-runtime@0.1.46 + ## 0.11.45 ### Patch Changes diff --git a/packages/droid-cli/package.json b/packages/droid-cli/package.json index 3f4e3c0aca..b4f78e77ce 100644 --- a/packages/droid-cli/package.json +++ b/packages/droid-cli/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/droid-cli", - "version": "0.11.45", + "version": "0.11.46", "description": "First-party Fusion pi extension that routes LLM calls through the Droid CLI subprocess.", "license": "MIT", "private": true, diff --git a/packages/engine/CHANGELOG.md b/packages/engine/CHANGELOG.md index 28d72ab991..9a2a0641c7 100644 --- a/packages/engine/CHANGELOG.md +++ b/packages/engine/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion/engine +## 0.56.0 + +### Patch Changes + +- @fusion/core@0.56.0 +- @fusion/pi-claude-cli@0.56.0 + ## 0.55.0 ### Patch Changes diff --git a/packages/engine/package.json b/packages/engine/package.json index 576d863dc6..c0dbe437f9 100644 --- a/packages/engine/package.json +++ b/packages/engine/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/engine", - "version": "0.55.0", + "version": "0.56.0", "license": "MIT", "description": "Fusion engine: executor, merger, scheduler, and automation runtime for the Fusion AI coding agent.", "homepage": "https://github.com/Runfusion/Fusion#readme", diff --git a/packages/i18n/CHANGELOG.md b/packages/i18n/CHANGELOG.md index 192f39166e..6cca96c292 100644 --- a/packages/i18n/CHANGELOG.md +++ b/packages/i18n/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion/i18n +## 0.39.20 + +### Patch Changes + +- @fusion/core@0.56.0 + ## 0.39.19 ### Patch Changes diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 16495becdf..1f72dffbb0 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/i18n", - "version": "0.39.19", + "version": "0.39.20", "license": "MIT", "description": "Fusion i18n: authored translation catalogs and shared i18next configuration for the Fusion dashboard and terminal UI.", "type": "module", diff --git a/packages/mobile/CHANGELOG.md b/packages/mobile/CHANGELOG.md index 049b06a582..eb259f5e2f 100644 --- a/packages/mobile/CHANGELOG.md +++ b/packages/mobile/CHANGELOG.md @@ -1,5 +1,7 @@ # @fusion/mobile +## 0.56.0 + ## 0.55.0 ## 0.54.0 diff --git a/packages/mobile/package.json b/packages/mobile/package.json index fe473d5575..9155721d9e 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/mobile", - "version": "0.55.0", + "version": "0.56.0", "license": "MIT", "description": "Fusion mobile: Capacitor wrapper around the Fusion dashboard for iOS and Android.", "homepage": "https://github.com/Runfusion/Fusion#readme", diff --git a/packages/pi-claude-cli/CHANGELOG.md b/packages/pi-claude-cli/CHANGELOG.md index 3283269e5e..33da4a620d 100644 --- a/packages/pi-claude-cli/CHANGELOG.md +++ b/packages/pi-claude-cli/CHANGELOG.md @@ -1,5 +1,7 @@ # @fusion/pi-claude-cli +## 0.56.0 + ## 0.55.0 ## 0.54.0 diff --git a/packages/pi-claude-cli/package.json b/packages/pi-claude-cli/package.json index 552068bcdb..5492de6a46 100644 --- a/packages/pi-claude-cli/package.json +++ b/packages/pi-claude-cli/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/pi-claude-cli", - "version": "0.55.0", + "version": "0.56.0", "description": "Fusion vendored fork: pi coding-agent extension that routes LLM calls through the Claude Code CLI. Forked from rchern/pi-claude-cli (MIT). See UPSTREAM.md.", "license": "MIT", "private": true, diff --git a/packages/plugin-sdk/CHANGELOG.md b/packages/plugin-sdk/CHANGELOG.md index b0d8b656c2..7fae7b8544 100644 --- a/packages/plugin-sdk/CHANGELOG.md +++ b/packages/plugin-sdk/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion/plugin-sdk +## 0.56.0 + +### Patch Changes + +- @fusion/core@0.56.0 + ## 0.55.0 ### Patch Changes diff --git a/packages/plugin-sdk/package.json b/packages/plugin-sdk/package.json index 6babb155ea..521758e3da 100644 --- a/packages/plugin-sdk/package.json +++ b/packages/plugin-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/plugin-sdk", - "version": "0.55.0", + "version": "0.56.0", "license": "MIT", "description": "Fusion plugin SDK: types and helpers for authoring third-party plugins that extend the Fusion dashboard and engine.", "homepage": "https://github.com/Runfusion/Fusion#readme", diff --git a/plugins/examples/fusion-plugin-auto-label/CHANGELOG.md b/plugins/examples/fusion-plugin-auto-label/CHANGELOG.md index bd78d1f52f..92123aac5b 100644 --- a/plugins/examples/fusion-plugin-auto-label/CHANGELOG.md +++ b/plugins/examples/fusion-plugin-auto-label/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion-plugin-examples/auto-label +## 0.2.70 + +### Patch Changes + +- @fusion/plugin-sdk@0.56.0 + ## 0.2.69 ### Patch Changes diff --git a/plugins/examples/fusion-plugin-auto-label/package.json b/plugins/examples/fusion-plugin-auto-label/package.json index 436cbc4f57..ac3934a24c 100644 --- a/plugins/examples/fusion-plugin-auto-label/package.json +++ b/plugins/examples/fusion-plugin-auto-label/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/auto-label", - "version": "0.2.69", + "version": "0.2.70", "type": "module", "description": "Automatically labels tasks based on description content", "keywords": [ diff --git a/plugins/examples/fusion-plugin-ci-status/CHANGELOG.md b/plugins/examples/fusion-plugin-ci-status/CHANGELOG.md index bbedf030ab..b14c0e873b 100644 --- a/plugins/examples/fusion-plugin-ci-status/CHANGELOG.md +++ b/plugins/examples/fusion-plugin-ci-status/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion-plugin-examples/ci-status +## 0.2.70 + +### Patch Changes + +- @fusion/plugin-sdk@0.56.0 + ## 0.2.69 ### Patch Changes diff --git a/plugins/examples/fusion-plugin-ci-status/package.json b/plugins/examples/fusion-plugin-ci-status/package.json index 60874dc4be..8ac8d2e1d2 100644 --- a/plugins/examples/fusion-plugin-ci-status/package.json +++ b/plugins/examples/fusion-plugin-ci-status/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/ci-status", - "version": "0.2.69", + "version": "0.2.70", "type": "module", "description": "Polls CI status for branches and provides a custom API to query results", "keywords": [ diff --git a/plugins/examples/fusion-plugin-notification/CHANGELOG.md b/plugins/examples/fusion-plugin-notification/CHANGELOG.md index 9a5153f7d2..7b693db1b3 100644 --- a/plugins/examples/fusion-plugin-notification/CHANGELOG.md +++ b/plugins/examples/fusion-plugin-notification/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion-plugin-examples/notification +## 0.2.70 + +### Patch Changes + +- @fusion/plugin-sdk@0.56.0 + ## 0.2.69 ### Patch Changes diff --git a/plugins/examples/fusion-plugin-notification/package.json b/plugins/examples/fusion-plugin-notification/package.json index de681e04cd..0bcc3dda54 100644 --- a/plugins/examples/fusion-plugin-notification/package.json +++ b/plugins/examples/fusion-plugin-notification/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/notification", - "version": "0.2.69", + "version": "0.2.70", "type": "module", "description": "Example Fusion plugin that sends webhook notifications on task lifecycle events", "keywords": [ diff --git a/plugins/examples/fusion-plugin-settings-demo/CHANGELOG.md b/plugins/examples/fusion-plugin-settings-demo/CHANGELOG.md index b2151e7a23..bc00e600ca 100644 --- a/plugins/examples/fusion-plugin-settings-demo/CHANGELOG.md +++ b/plugins/examples/fusion-plugin-settings-demo/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion-plugin-examples/settings-demo +## 0.2.70 + +### Patch Changes + +- @fusion/plugin-sdk@0.56.0 + ## 0.2.69 ### Patch Changes diff --git a/plugins/examples/fusion-plugin-settings-demo/package.json b/plugins/examples/fusion-plugin-settings-demo/package.json index 1de0c8445f..c0fe1a7a18 100644 --- a/plugins/examples/fusion-plugin-settings-demo/package.json +++ b/plugins/examples/fusion-plugin-settings-demo/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/settings-demo", - "version": "0.2.69", + "version": "0.2.70", "type": "module", "description": "Example Fusion plugin demonstrating settings schema and runtime configuration", "keywords": [ diff --git a/plugins/fusion-plugin-acp-runtime/CHANGELOG.md b/plugins/fusion-plugin-acp-runtime/CHANGELOG.md index 5f187fdcc1..3a345fbe25 100644 --- a/plugins/fusion-plugin-acp-runtime/CHANGELOG.md +++ b/plugins/fusion-plugin-acp-runtime/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion-plugin-examples/acp-runtime +## 0.1.20 + +### Patch Changes + +- @fusion/core@0.56.0 +- @fusion/plugin-sdk@0.56.0 + ## 0.1.19 ### Patch Changes diff --git a/plugins/fusion-plugin-acp-runtime/package.json b/plugins/fusion-plugin-acp-runtime/package.json index 40beacbe3c..74d51139c1 100644 --- a/plugins/fusion-plugin-acp-runtime/package.json +++ b/plugins/fusion-plugin-acp-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/acp-runtime", - "version": "0.1.19", + "version": "0.1.20", "type": "module", "description": "ACP (Agent Client Protocol) runtime plugin for Fusion — drives any ACP-compatible agent over JSON-RPC/stdio", "keywords": [ diff --git a/plugins/fusion-plugin-agent-browser/CHANGELOG.md b/plugins/fusion-plugin-agent-browser/CHANGELOG.md index 465de46dfd..a505b9593b 100644 --- a/plugins/fusion-plugin-agent-browser/CHANGELOG.md +++ b/plugins/fusion-plugin-agent-browser/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion-plugin-examples/agent-browser +## 0.1.40 + +### Patch Changes + +- @fusion/plugin-sdk@0.56.0 + ## 0.1.39 ### Patch Changes diff --git a/plugins/fusion-plugin-agent-browser/package.json b/plugins/fusion-plugin-agent-browser/package.json index 09c90a3e70..ad16fb8759 100644 --- a/plugins/fusion-plugin-agent-browser/package.json +++ b/plugins/fusion-plugin-agent-browser/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/agent-browser", - "version": "0.1.39", + "version": "0.1.40", "type": "module", "description": "Agent Browser runtime and prompt/skill/workflow contributions for Fusion", "private": true, diff --git a/plugins/fusion-plugin-cli-printing-press/CHANGELOG.md b/plugins/fusion-plugin-cli-printing-press/CHANGELOG.md index e7e6907954..b36d1e51c8 100644 --- a/plugins/fusion-plugin-cli-printing-press/CHANGELOG.md +++ b/plugins/fusion-plugin-cli-printing-press/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion-plugin-examples/cli-printing-press +## 0.1.37 + +### Patch Changes + +- @fusion/core@0.56.0 +- @fusion/plugin-sdk@0.56.0 + ## 0.1.36 ### Patch Changes diff --git a/plugins/fusion-plugin-cli-printing-press/package.json b/plugins/fusion-plugin-cli-printing-press/package.json index 5402523845..67fb31e856 100644 --- a/plugins/fusion-plugin-cli-printing-press/package.json +++ b/plugins/fusion-plugin-cli-printing-press/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/cli-printing-press", - "version": "0.1.36", + "version": "0.1.37", "type": "module", "description": "CLI Printing Press plugin package for Fusion", "private": true, diff --git a/plugins/fusion-plugin-compound-engineering/CHANGELOG.md b/plugins/fusion-plugin-compound-engineering/CHANGELOG.md index 314fc4a286..d18283a8d3 100644 --- a/plugins/fusion-plugin-compound-engineering/CHANGELOG.md +++ b/plugins/fusion-plugin-compound-engineering/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion-plugin-examples/compound-engineering +## 0.1.20 + +### Patch Changes + +- @fusion/core@0.56.0 +- @fusion/plugin-sdk@0.56.0 + ## 0.1.19 ### Patch Changes diff --git a/plugins/fusion-plugin-compound-engineering/package.json b/plugins/fusion-plugin-compound-engineering/package.json index db69cc969d..6d77c79dd1 100644 --- a/plugins/fusion-plugin-compound-engineering/package.json +++ b/plugins/fusion-plugin-compound-engineering/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/compound-engineering", - "version": "0.1.19", + "version": "0.1.20", "type": "module", "description": "Compound Engineering plugin for Fusion", "private": true, diff --git a/plugins/fusion-plugin-cursor-runtime/CHANGELOG.md b/plugins/fusion-plugin-cursor-runtime/CHANGELOG.md index 298197aa82..f9549c047a 100644 --- a/plugins/fusion-plugin-cursor-runtime/CHANGELOG.md +++ b/plugins/fusion-plugin-cursor-runtime/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion-plugin-examples/cursor-runtime +## 0.1.39 + +### Patch Changes + +- @fusion/plugin-sdk@0.56.0 + ## 0.1.38 ### Patch Changes diff --git a/plugins/fusion-plugin-cursor-runtime/package.json b/plugins/fusion-plugin-cursor-runtime/package.json index 5fb1a19cac..2e70825d3a 100644 --- a/plugins/fusion-plugin-cursor-runtime/package.json +++ b/plugins/fusion-plugin-cursor-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/cursor-runtime", - "version": "0.1.38", + "version": "0.1.39", "type": "module", "description": "Cursor CLI runtime plugin for Fusion", "keywords": [ diff --git a/plugins/fusion-plugin-dependency-graph/CHANGELOG.md b/plugins/fusion-plugin-dependency-graph/CHANGELOG.md index 8d45e99289..525a181f64 100644 --- a/plugins/fusion-plugin-dependency-graph/CHANGELOG.md +++ b/plugins/fusion-plugin-dependency-graph/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion-plugin-examples/dependency-graph +## 0.1.51 + +### Patch Changes + +- @fusion/core@0.56.0 +- @fusion/plugin-sdk@0.56.0 + ## 0.1.50 ### Patch Changes diff --git a/plugins/fusion-plugin-dependency-graph/package.json b/plugins/fusion-plugin-dependency-graph/package.json index ec099682a2..16222c5d22 100644 --- a/plugins/fusion-plugin-dependency-graph/package.json +++ b/plugins/fusion-plugin-dependency-graph/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/dependency-graph", - "version": "0.1.50", + "version": "0.1.51", "type": "module", "description": "Dependency graph dashboard view plugin for Fusion", "private": true, diff --git a/plugins/fusion-plugin-droid-runtime/CHANGELOG.md b/plugins/fusion-plugin-droid-runtime/CHANGELOG.md index 153b7b0df3..1b22afb3d5 100644 --- a/plugins/fusion-plugin-droid-runtime/CHANGELOG.md +++ b/plugins/fusion-plugin-droid-runtime/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.1.46 + +### Patch Changes + +- @fusion/plugin-sdk@0.56.0 + ## 0.1.45 ### Patch Changes diff --git a/plugins/fusion-plugin-droid-runtime/package.json b/plugins/fusion-plugin-droid-runtime/package.json index fecaf23c7a..012e0f4c99 100644 --- a/plugins/fusion-plugin-droid-runtime/package.json +++ b/plugins/fusion-plugin-droid-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/droid-runtime", - "version": "0.1.45", + "version": "0.1.46", "type": "module", "description": "Droid runtime plugin for Fusion", "keywords": [ diff --git a/plugins/fusion-plugin-even-realities-glasses/CHANGELOG.md b/plugins/fusion-plugin-even-realities-glasses/CHANGELOG.md index 88992c756d..79db7d7f80 100644 --- a/plugins/fusion-plugin-even-realities-glasses/CHANGELOG.md +++ b/plugins/fusion-plugin-even-realities-glasses/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion-plugin-examples/even-realities-glasses +## 0.1.39 + +### Patch Changes + +- @fusion/core@0.56.0 +- @fusion/plugin-sdk@0.56.0 + ## 0.1.38 ### Patch Changes diff --git a/plugins/fusion-plugin-even-realities-glasses/package.json b/plugins/fusion-plugin-even-realities-glasses/package.json index 1d68b89255..344be51f03 100644 --- a/plugins/fusion-plugin-even-realities-glasses/package.json +++ b/plugins/fusion-plugin-even-realities-glasses/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/even-realities-glasses", - "version": "0.1.38", + "version": "0.1.39", "type": "module", "description": "Canonical Even Realities Fusion plugin with board/task cards, actions, notifications, and webhook transport", "keywords": [ diff --git a/plugins/fusion-plugin-hermes-runtime/CHANGELOG.md b/plugins/fusion-plugin-hermes-runtime/CHANGELOG.md index a32c1b620e..54429dbe28 100644 --- a/plugins/fusion-plugin-hermes-runtime/CHANGELOG.md +++ b/plugins/fusion-plugin-hermes-runtime/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion-plugin-examples/hermes-runtime +## 0.2.70 + +### Patch Changes + +- @fusion/plugin-sdk@0.56.0 + ## 0.2.69 ### Patch Changes diff --git a/plugins/fusion-plugin-hermes-runtime/package.json b/plugins/fusion-plugin-hermes-runtime/package.json index d40c24993b..af876dab32 100644 --- a/plugins/fusion-plugin-hermes-runtime/package.json +++ b/plugins/fusion-plugin-hermes-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/hermes-runtime", - "version": "0.2.69", + "version": "0.2.70", "type": "module", "description": "Hermes AI runtime plugin for Fusion - provides AI agent execution runtime", "keywords": [ diff --git a/plugins/fusion-plugin-linear-import/CHANGELOG.md b/plugins/fusion-plugin-linear-import/CHANGELOG.md index d160b64733..1638eac78f 100644 --- a/plugins/fusion-plugin-linear-import/CHANGELOG.md +++ b/plugins/fusion-plugin-linear-import/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion-plugin-examples/linear-import +## 0.1.2 + +### Patch Changes + +- @fusion/core@0.56.0 +- @fusion/plugin-sdk@0.56.0 + ## 0.1.1 ### Patch Changes diff --git a/plugins/fusion-plugin-linear-import/package.json b/plugins/fusion-plugin-linear-import/package.json index c35942c056..f118732483 100644 --- a/plugins/fusion-plugin-linear-import/package.json +++ b/plugins/fusion-plugin-linear-import/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/linear-import", - "version": "0.1.1", + "version": "0.1.2", "type": "module", "description": "Linear issue import plugin for Fusion", "private": true, diff --git a/plugins/fusion-plugin-openclaw-runtime/CHANGELOG.md b/plugins/fusion-plugin-openclaw-runtime/CHANGELOG.md index 71884eae8d..921a963f1f 100644 --- a/plugins/fusion-plugin-openclaw-runtime/CHANGELOG.md +++ b/plugins/fusion-plugin-openclaw-runtime/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion-plugin-examples/openclaw-runtime +## 0.2.70 + +### Patch Changes + +- @fusion/plugin-sdk@0.56.0 + ## 0.2.69 ### Patch Changes diff --git a/plugins/fusion-plugin-openclaw-runtime/package.json b/plugins/fusion-plugin-openclaw-runtime/package.json index 91da95e93d..3dfa0f20d1 100644 --- a/plugins/fusion-plugin-openclaw-runtime/package.json +++ b/plugins/fusion-plugin-openclaw-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/openclaw-runtime", - "version": "0.2.69", + "version": "0.2.70", "type": "module", "description": "Provides OpenClaw runtime for Fusion AI agents", "keywords": [ diff --git a/plugins/fusion-plugin-paperclip-runtime/CHANGELOG.md b/plugins/fusion-plugin-paperclip-runtime/CHANGELOG.md index 559e620071..d44930ff61 100644 --- a/plugins/fusion-plugin-paperclip-runtime/CHANGELOG.md +++ b/plugins/fusion-plugin-paperclip-runtime/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion-plugin-examples/paperclip-runtime +## 0.2.70 + +### Patch Changes + +- @fusion/plugin-sdk@0.56.0 + ## 0.2.69 ### Patch Changes diff --git a/plugins/fusion-plugin-paperclip-runtime/package.json b/plugins/fusion-plugin-paperclip-runtime/package.json index acbc0c2281..cc413d9618 100644 --- a/plugins/fusion-plugin-paperclip-runtime/package.json +++ b/plugins/fusion-plugin-paperclip-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/paperclip-runtime", - "version": "0.2.69", + "version": "0.2.70", "type": "module", "description": "Paperclip runtime plugin for Fusion — provides AI agent web access capabilities", "keywords": [ diff --git a/plugins/fusion-plugin-reports/CHANGELOG.md b/plugins/fusion-plugin-reports/CHANGELOG.md index 96cf568a8f..bf9e6f7188 100644 --- a/plugins/fusion-plugin-reports/CHANGELOG.md +++ b/plugins/fusion-plugin-reports/CHANGELOG.md @@ -1,5 +1,13 @@ # @fusion-plugin-examples/reports +## 0.1.39 + +### Patch Changes + +- @fusion/core@0.56.0 +- @fusion/dashboard@0.56.0 +- @fusion/plugin-sdk@0.56.0 + ## 0.1.38 ### Patch Changes diff --git a/plugins/fusion-plugin-reports/package.json b/plugins/fusion-plugin-reports/package.json index c4441930a7..fc187bba8c 100644 --- a/plugins/fusion-plugin-reports/package.json +++ b/plugins/fusion-plugin-reports/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/reports", - "version": "0.1.38", + "version": "0.1.39", "type": "module", "description": "Reports plugin for Fusion", "private": true, diff --git a/plugins/fusion-plugin-roadmap/CHANGELOG.md b/plugins/fusion-plugin-roadmap/CHANGELOG.md index ba5c8679a2..f55491f4e1 100644 --- a/plugins/fusion-plugin-roadmap/CHANGELOG.md +++ b/plugins/fusion-plugin-roadmap/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion-plugin-examples/roadmap +## 0.1.39 + +### Patch Changes + +- @fusion/core@0.56.0 +- @fusion/plugin-sdk@0.56.0 + ## 0.1.38 ### Patch Changes diff --git a/plugins/fusion-plugin-roadmap/package.json b/plugins/fusion-plugin-roadmap/package.json index ed4eb23b05..6bf65b5af6 100644 --- a/plugins/fusion-plugin-roadmap/package.json +++ b/plugins/fusion-plugin-roadmap/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/roadmap", - "version": "0.1.38", + "version": "0.1.39", "type": "module", "description": "Roadmap plugin package for Fusion", "private": true, diff --git a/plugins/fusion-plugin-whatsapp-chat/CHANGELOG.md b/plugins/fusion-plugin-whatsapp-chat/CHANGELOG.md index 41291b02cd..3afe98696f 100644 --- a/plugins/fusion-plugin-whatsapp-chat/CHANGELOG.md +++ b/plugins/fusion-plugin-whatsapp-chat/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion-plugin-examples/whatsapp-chat +## 0.1.39 + +### Patch Changes + +- @fusion/plugin-sdk@0.56.0 + ## 0.1.38 ### Patch Changes diff --git a/plugins/fusion-plugin-whatsapp-chat/package.json b/plugins/fusion-plugin-whatsapp-chat/package.json index 210ab07cf3..b66806fbb3 100644 --- a/plugins/fusion-plugin-whatsapp-chat/package.json +++ b/plugins/fusion-plugin-whatsapp-chat/package.json @@ -1,6 +1,6 @@ { "name": "@fusion-plugin-examples/whatsapp-chat", - "version": "0.1.38", + "version": "0.1.39", "type": "module", "description": "WhatsApp Web (Baileys) chat bridge for Fusion agents", "keywords": [