From b599b6ab416c7d59bd2a5331b4adad5fe01e7f7d Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Tue, 23 Jun 2026 01:07:59 -0700 Subject: [PATCH] chore(release): v0.45.0 Version bump via changesets. --- .../auto-continue-engine-pause-abort.md | 5 - .changeset/dashboard-view-chrome-alignment.md | 5 - .changeset/dashboard-view-toolbar-polish.md | 5 - .changeset/engine-not-running-banner.md | 5 - .changeset/factory-mono-theme.md | 5 - .changeset/fast-tests-progress.md | 5 - .changeset/first-run-agent-onboarding.md | 5 - ...ix-anthropic-compatible-custom-provider.md | 7 - ...n-todo-pause-abort-failure-notification.md | 5 - .changeset/fix-ce-workflow-skill-loading.md | 5 - ...fix-compound-engineering-dist-freshness.md | 5 - ...fix-droid-model-discovery-process-storm.md | 9 - .changeset/fix-editor-plugin-skill-catalog.md | 5 - .changeset/fix-loading-spinners.md | 5 - .changeset/fix-macos-memory-used.md | 5 - .changeset/fix-orphan-worktree-dir-cleanup.md | 10 - .changeset/fix-pause-abort-leak-storm.md | 9 - .changeset/fix-quarantine-json-gate-mode.md | 5 - ...-reconcile-no-resurrect-stale-task-dirs.md | 9 - .../fix-task-chat-ephemeral-agent-working.md | 5 - .../fix-worktree-orphan-cleanup-hardening.md | 11 - .../fn-6705-plugin-activation-analytics.md | 5 - .../fn-6712-agent-set-instructions-tool.md | 5 - .../fn-6714-command-center-loc-backfill.md | 5 - .../fn-6715-command-center-overview-funnel.md | 5 - ...22-command-center-resolved-issue-detail.md | 5 - .../fn-6723-command-center-activity-charts.md | 5 - .../fn-6736-phantom-executor-binding.md | 5 - .changeset/fn-6737-terminal-ctrl-shortcuts.md | 5 - .changeset/fn-6745-xhigh-thinking-level.md | 5 - .changeset/fn-6749-i18n-lint-rebaseline.md | 5 - .../fn-6759-lead-generation-workflow.md | 5 - .changeset/fn-6760-design-workflow.md | 5 - .changeset/fn-6761-marketing-workflow.md | 5 - .changeset/fn-6766-mobile-nav-spacing.md | 5 - .changeset/fn-6767-agents-sidebar.md | 5 - .changeset/fn-6769-i18n-cluster.md | 5 - .../fn-6770-localize-workflow-task-pr.md | 5 - .../fn-6771-localize-settings-sections.md | 5 - .changeset/fn-6776-board-flash.md | 5 - .changeset/fn-6777-artifact-registry.md | 5 - .changeset/fn-6778-artifact-agent-tools.md | 5 - .changeset/fn-6779-artifacts-gallery.md | 5 - .changeset/fn-6781-command-center-header.md | 5 - .../fn-6783-orphaned-task-dir-reconcile.md | 5 - .changeset/fn-6793-dependency-gating.md | 7 - ...fn-6796-pause-resume-in-review-recovery.md | 5 - .../fn-6797-in-review-dependency-drift.md | 5 - .changeset/fn-6800-mobile-nav-spacing.md | 5 - .../fn-6808-cli-probe-unhandled-rejection.md | 5 - .changeset/fn-6816-shadcn-custom-colors.md | 5 - .../fn-6819-sidebar-footer-clearance.md | 5 - .changeset/fn-6832-workflow-routing.md | 5 - .changeset/fn-6839-close-cached-stores.md | 5 - .../fn-6851-stale-board-entries-after-move.md | 5 - .changeset/fn-6853-pi-sdk-bump.md | 5 - .changeset/fn-6858-toast-contrast.md | 5 - .changeset/fn-6869-codex-pricing.md | 7 - .changeset/fn-6875-allow-unpause-assigned.md | 5 - .changeset/fn-6878-droid-boot.md | 5 - .../fn-6881-stash-recovery-git-manager.md | 5 - .../fn-6882-toolbar-to-right-sidebar.md | 5 - .changeset/fn-6886-planning-sidebar-view.md | 5 - .changeset/fn-6887-terminal-footer-panel.md | 5 - .changeset/fn-6891-ce-review-skill.md | 5 - .../fn-6899-click-revealed-right-dock.md | 5 - ...fn-6903-workflow-lane-create-visibility.md | 5 - ...n-6904-ce-workflow-prompt-skill-callout.md | 5 - .../fn-6906-non-coding-workflow-prompts.md | 5 - .changeset/fn-6907-task-artifacts-tab.md | 5 - .changeset/fn-6910-subtask-breakdown-flag.md | 5 - .changeset/fn-6911-droid-cli-no-boot-spawn.md | 5 - .changeset/fn-6919-workflow-switcher-style.md | 5 - .../fn-6922-repo-root-acquisition-guard.md | 5 - .../fn-6934-workflow-movement-policy.md | 5 - .../fn-6947-workflow-ir-project-identity.md | 5 - .changeset/fn-6949-auto-merge-lifecycle.md | 5 - .../fn-blank-page-service-worker-assets.md | 5 - .changeset/focused-dashboard-polish.md | 5 - .changeset/full-chat-modal-and-graph-fit.md | 5 - .changeset/fuzzy-nodes-watch.md | 5 - .changeset/fuzzy-productivity-hours.md | 5 - .../github-import-pr-checks-comments.md | 5 - .changeset/github-import-project-remotes.md | 5 - .changeset/global-settings-task-chat-icons.md | 5 - .changeset/heartbeat-staleness-10min.md | 5 - .changeset/local-starts-engine.md | 5 - .changeset/loud-nodes-sync.md | 5 - .changeset/markdown-raw-html-and-mermaid.md | 5 - .changeset/mobile-chat-modal-chrome.md | 5 - .changeset/new-task-duplicates.md | 5 - .changeset/onboarding-first-agent-flow.md | 5 - .../planning-subtask-workflow-selection.md | 5 - .changeset/polish-dashboard-theme-roadmaps.md | 5 - .../preserve-progress-on-pause-abort.md | 5 - .changeset/proud-validators-verify.md | 5 - .changeset/settings-default-surfaces.md | 5 - .changeset/shadcn-color-variants.md | 5 - .changeset/shadcn-dashboard-theme.md | 5 - .changeset/shadcn-gray-blue-theme.md | 5 - .changeset/shadcn-gray-variant.md | 5 - .changeset/shadcn-mono-color-family.md | 5 - .changeset/sidebar-panel-redesign.md | 10 - .changeset/skills-detail-file-viewer.md | 5 - .../smooth-mobile-quick-chat-keyboard.md | 5 - .changeset/soft-badgers-measure.md | 5 - .changeset/stuck-kill-reset-on-progress.md | 5 - .changeset/task-card-files-changed-inline.md | 5 - .changeset/task-chat-effective-model-icons.md | 5 - .changeset/unified-floating-window-stack.md | 5 - .changeset/workflow-optional-steps.md | 5 - .changeset/workflow-runtime-cutover.md | 9 - CHANGELOG.md | 360 ++++++++++++++++++ package.json | 2 +- packages/cli-alias/CHANGELOG.md | 117 ++++++ packages/cli-alias/package.json | 2 +- packages/cli/CHANGELOG.md | 160 ++++++++ packages/cli/package.json | 2 +- packages/core/CHANGELOG.md | 17 + packages/core/package.json | 2 +- packages/dashboard/CHANGELOG.md | 19 + packages/dashboard/package.json | 2 +- packages/desktop/CHANGELOG.md | 10 + packages/desktop/package.json | 2 +- packages/droid-cli/CHANGELOG.md | 6 + packages/droid-cli/package.json | 2 +- packages/engine/CHANGELOG.md | 9 + packages/engine/package.json | 2 +- packages/i18n/CHANGELOG.md | 8 + packages/i18n/package.json | 2 +- packages/mobile/CHANGELOG.md | 2 + packages/mobile/package.json | 2 +- packages/pi-claude-cli/CHANGELOG.md | 2 + packages/pi-claude-cli/package.json | 2 +- packages/plugin-sdk/CHANGELOG.md | 8 + packages/plugin-sdk/package.json | 2 +- .../fusion-plugin-auto-label/CHANGELOG.md | 6 + .../fusion-plugin-auto-label/package.json | 2 +- .../fusion-plugin-ci-status/CHANGELOG.md | 6 + .../fusion-plugin-ci-status/package.json | 2 +- .../fusion-plugin-notification/CHANGELOG.md | 6 + .../fusion-plugin-notification/package.json | 2 +- .../fusion-plugin-settings-demo/CHANGELOG.md | 6 + .../fusion-plugin-settings-demo/package.json | 2 +- .../fusion-plugin-acp-runtime/CHANGELOG.md | 9 + .../fusion-plugin-acp-runtime/package.json | 2 +- .../fusion-plugin-agent-browser/CHANGELOG.md | 6 + .../fusion-plugin-agent-browser/package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../fusion-plugin-cursor-runtime/CHANGELOG.md | 6 + .../fusion-plugin-cursor-runtime/package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../fusion-plugin-droid-runtime/CHANGELOG.md | 6 + .../fusion-plugin-droid-runtime/package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../fusion-plugin-hermes-runtime/CHANGELOG.md | 6 + .../fusion-plugin-hermes-runtime/package.json | 2 +- .../CHANGELOG.md | 6 + .../package.json | 2 +- .../CHANGELOG.md | 6 + .../package.json | 2 +- plugins/fusion-plugin-reports/CHANGELOG.md | 10 + plugins/fusion-plugin-reports/package.json | 2 +- plugins/fusion-plugin-roadmap/CHANGELOG.md | 9 + plugins/fusion-plugin-roadmap/package.json | 2 +- .../fusion-plugin-whatsapp-chat/CHANGELOG.md | 6 + .../fusion-plugin-whatsapp-chat/package.json | 2 +- 172 files changed, 878 insertions(+), 628 deletions(-) delete mode 100644 .changeset/auto-continue-engine-pause-abort.md delete mode 100644 .changeset/dashboard-view-chrome-alignment.md delete mode 100644 .changeset/dashboard-view-toolbar-polish.md delete mode 100644 .changeset/engine-not-running-banner.md delete mode 100644 .changeset/factory-mono-theme.md delete mode 100644 .changeset/fast-tests-progress.md delete mode 100644 .changeset/first-run-agent-onboarding.md delete mode 100644 .changeset/fix-anthropic-compatible-custom-provider.md delete mode 100644 .changeset/fix-benign-todo-pause-abort-failure-notification.md delete mode 100644 .changeset/fix-ce-workflow-skill-loading.md delete mode 100644 .changeset/fix-compound-engineering-dist-freshness.md delete mode 100644 .changeset/fix-droid-model-discovery-process-storm.md delete mode 100644 .changeset/fix-editor-plugin-skill-catalog.md delete mode 100644 .changeset/fix-loading-spinners.md delete mode 100644 .changeset/fix-macos-memory-used.md delete mode 100644 .changeset/fix-orphan-worktree-dir-cleanup.md delete mode 100644 .changeset/fix-pause-abort-leak-storm.md delete mode 100644 .changeset/fix-quarantine-json-gate-mode.md delete mode 100644 .changeset/fix-reconcile-no-resurrect-stale-task-dirs.md delete mode 100644 .changeset/fix-task-chat-ephemeral-agent-working.md delete mode 100644 .changeset/fix-worktree-orphan-cleanup-hardening.md delete mode 100644 .changeset/fn-6705-plugin-activation-analytics.md delete mode 100644 .changeset/fn-6712-agent-set-instructions-tool.md delete mode 100644 .changeset/fn-6714-command-center-loc-backfill.md delete mode 100644 .changeset/fn-6715-command-center-overview-funnel.md delete mode 100644 .changeset/fn-6722-command-center-resolved-issue-detail.md delete mode 100644 .changeset/fn-6723-command-center-activity-charts.md delete mode 100644 .changeset/fn-6736-phantom-executor-binding.md delete mode 100644 .changeset/fn-6737-terminal-ctrl-shortcuts.md delete mode 100644 .changeset/fn-6745-xhigh-thinking-level.md delete mode 100644 .changeset/fn-6749-i18n-lint-rebaseline.md delete mode 100644 .changeset/fn-6759-lead-generation-workflow.md delete mode 100644 .changeset/fn-6760-design-workflow.md delete mode 100644 .changeset/fn-6761-marketing-workflow.md delete mode 100644 .changeset/fn-6766-mobile-nav-spacing.md delete mode 100644 .changeset/fn-6767-agents-sidebar.md delete mode 100644 .changeset/fn-6769-i18n-cluster.md delete mode 100644 .changeset/fn-6770-localize-workflow-task-pr.md delete mode 100644 .changeset/fn-6771-localize-settings-sections.md delete mode 100644 .changeset/fn-6776-board-flash.md delete mode 100644 .changeset/fn-6777-artifact-registry.md delete mode 100644 .changeset/fn-6778-artifact-agent-tools.md delete mode 100644 .changeset/fn-6779-artifacts-gallery.md delete mode 100644 .changeset/fn-6781-command-center-header.md delete mode 100644 .changeset/fn-6783-orphaned-task-dir-reconcile.md delete mode 100644 .changeset/fn-6793-dependency-gating.md delete mode 100644 .changeset/fn-6796-pause-resume-in-review-recovery.md delete mode 100644 .changeset/fn-6797-in-review-dependency-drift.md delete mode 100644 .changeset/fn-6800-mobile-nav-spacing.md delete mode 100644 .changeset/fn-6808-cli-probe-unhandled-rejection.md delete mode 100644 .changeset/fn-6816-shadcn-custom-colors.md delete mode 100644 .changeset/fn-6819-sidebar-footer-clearance.md delete mode 100644 .changeset/fn-6832-workflow-routing.md delete mode 100644 .changeset/fn-6839-close-cached-stores.md delete mode 100644 .changeset/fn-6851-stale-board-entries-after-move.md delete mode 100644 .changeset/fn-6853-pi-sdk-bump.md delete mode 100644 .changeset/fn-6858-toast-contrast.md delete mode 100644 .changeset/fn-6869-codex-pricing.md delete mode 100644 .changeset/fn-6875-allow-unpause-assigned.md delete mode 100644 .changeset/fn-6878-droid-boot.md delete mode 100644 .changeset/fn-6881-stash-recovery-git-manager.md delete mode 100644 .changeset/fn-6882-toolbar-to-right-sidebar.md delete mode 100644 .changeset/fn-6886-planning-sidebar-view.md delete mode 100644 .changeset/fn-6887-terminal-footer-panel.md delete mode 100644 .changeset/fn-6891-ce-review-skill.md delete mode 100644 .changeset/fn-6899-click-revealed-right-dock.md delete mode 100644 .changeset/fn-6903-workflow-lane-create-visibility.md delete mode 100644 .changeset/fn-6904-ce-workflow-prompt-skill-callout.md delete mode 100644 .changeset/fn-6906-non-coding-workflow-prompts.md delete mode 100644 .changeset/fn-6907-task-artifacts-tab.md delete mode 100644 .changeset/fn-6910-subtask-breakdown-flag.md delete mode 100644 .changeset/fn-6911-droid-cli-no-boot-spawn.md delete mode 100644 .changeset/fn-6919-workflow-switcher-style.md delete mode 100644 .changeset/fn-6922-repo-root-acquisition-guard.md delete mode 100644 .changeset/fn-6934-workflow-movement-policy.md delete mode 100644 .changeset/fn-6947-workflow-ir-project-identity.md delete mode 100644 .changeset/fn-6949-auto-merge-lifecycle.md delete mode 100644 .changeset/fn-blank-page-service-worker-assets.md delete mode 100644 .changeset/focused-dashboard-polish.md delete mode 100644 .changeset/full-chat-modal-and-graph-fit.md delete mode 100644 .changeset/fuzzy-nodes-watch.md delete mode 100644 .changeset/fuzzy-productivity-hours.md delete mode 100644 .changeset/github-import-pr-checks-comments.md delete mode 100644 .changeset/github-import-project-remotes.md delete mode 100644 .changeset/global-settings-task-chat-icons.md delete mode 100644 .changeset/heartbeat-staleness-10min.md delete mode 100644 .changeset/local-starts-engine.md delete mode 100644 .changeset/loud-nodes-sync.md delete mode 100644 .changeset/markdown-raw-html-and-mermaid.md delete mode 100644 .changeset/mobile-chat-modal-chrome.md delete mode 100644 .changeset/new-task-duplicates.md delete mode 100644 .changeset/onboarding-first-agent-flow.md delete mode 100644 .changeset/planning-subtask-workflow-selection.md delete mode 100644 .changeset/polish-dashboard-theme-roadmaps.md delete mode 100644 .changeset/preserve-progress-on-pause-abort.md delete mode 100644 .changeset/proud-validators-verify.md delete mode 100644 .changeset/settings-default-surfaces.md delete mode 100644 .changeset/shadcn-color-variants.md delete mode 100644 .changeset/shadcn-dashboard-theme.md delete mode 100644 .changeset/shadcn-gray-blue-theme.md delete mode 100644 .changeset/shadcn-gray-variant.md delete mode 100644 .changeset/shadcn-mono-color-family.md delete mode 100644 .changeset/sidebar-panel-redesign.md delete mode 100644 .changeset/skills-detail-file-viewer.md delete mode 100644 .changeset/smooth-mobile-quick-chat-keyboard.md delete mode 100644 .changeset/soft-badgers-measure.md delete mode 100644 .changeset/stuck-kill-reset-on-progress.md delete mode 100644 .changeset/task-card-files-changed-inline.md delete mode 100644 .changeset/task-chat-effective-model-icons.md delete mode 100644 .changeset/unified-floating-window-stack.md delete mode 100644 .changeset/workflow-optional-steps.md delete mode 100644 .changeset/workflow-runtime-cutover.md diff --git a/.changeset/auto-continue-engine-pause-abort.md b/.changeset/auto-continue-engine-pause-abort.md deleted file mode 100644 index 3b4cea551b..0000000000 --- a/.changeset/auto-continue-engine-pause-abort.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Auto-continue the agent session after an engine-internal pause/resume abort instead of re-queueing the task to todo. When the engine tears down in-flight work (hard-cancel) and the workflow graph run ends with the task back in `todo`, the executor now retries the agent session in place — bounded by the existing graph-resume retry budget with backoff, falling back to a benign re-queue only after retries are exhausted. Before re-dispatching, it re-checks the task at fire time and aborts the auto-continue if the task was paused, moved, or deleted during the backoff window, so genuine user/global/task pauses are never resumed against the operator's intent. The transient reclassification clears any stale `failed` status and emits an `Auto-recovered:` log so no spurious failure notification fires. diff --git a/.changeset/dashboard-view-chrome-alignment.md b/.changeset/dashboard-view-chrome-alignment.md deleted file mode 100644 index a4e8f5b998..0000000000 --- a/.changeset/dashboard-view-chrome-alignment.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Align dashboard view chrome and inner-pane spacing across Chat, Mailbox, Workflows, Artifacts-adjacent controls, Goals, and Compound Engineering. diff --git a/.changeset/dashboard-view-toolbar-polish.md b/.changeset/dashboard-view-toolbar-polish.md deleted file mode 100644 index 7701bccae0..0000000000 --- a/.changeset/dashboard-view-toolbar-polish.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Polish dashboard view chrome: align Dashboard, Import Tasks, Automations, Chat, and docked Files editor controls with the shared view header and toolbar styling. diff --git a/.changeset/engine-not-running-banner.md b/.changeset/engine-not-running-banner.md deleted file mode 100644 index cf4f5c5a5a..0000000000 --- a/.changeset/engine-not-running-banner.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix a false "engine not running" banner when another fusion process on the same machine already owns the engine. The dashboard's health check only counted engines this process started, so a second launch (e.g. `pnpm dev dashboard` alongside an already-running `fusion`) that was correctly refused the per-machine engine singleton lock reported the engine as unavailable — even though one was running. The `ProjectEngineManager` now tracks engines owned by another process (detected via `EngineAlreadyRunningError` from the singleton lock) and exposes `hasRunningEngine()`, which the dashboard health endpoint uses so the banner reflects machine-level truth. Reconciliation still retries so this process takes over if the other exits, and the "refusing to start" log is emitted once per project instead of on every reconciliation tick. diff --git a/.changeset/factory-mono-theme.md b/.changeset/factory-mono-theme.md deleted file mode 100644 index 4d1b1930cc..0000000000 --- a/.changeset/factory-mono-theme.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add the `factory-mono` dashboard color theme, a monochrome Factory variant with red accents and neutralized glow effects. diff --git a/.changeset/fast-tests-progress.md b/.changeset/fast-tests-progress.md deleted file mode 100644 index 65417386ea..0000000000 --- a/.changeset/fast-tests-progress.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Keep Fusion verification progress moving by making targeted script tests honor file arguments, reaping verification subprocess groups after clean exits, and preventing the line-count audit from blocking `pnpm test`. The changed-test runner now caps reverse-dependent fan-out so a foundational-package edit no longer expands into a whole-workspace run, and the executor/verification guidance now directs agents to scope verification to changed files rather than running the full workspace test suite. diff --git a/.changeset/first-run-agent-onboarding.md b/.changeset/first-run-agent-onboarding.md deleted file mode 100644 index 3853451cf4..0000000000 --- a/.changeset/first-run-agent-onboarding.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Ask first-run users whether to create an optional first persistent agent after project registration, with CEO as the default template, skip support, and no duplicate GitHub star prompt. diff --git a/.changeset/fix-anthropic-compatible-custom-provider.md b/.changeset/fix-anthropic-compatible-custom-provider.md deleted file mode 100644 index 227f5ac008..0000000000 --- a/.changeset/fix-anthropic-compatible-custom-provider.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix anthropic-compatible custom providers failing with "No API provider registered for api: anthropic". - -`resolveCustomProviderApiType` mapped the `anthropic-compatible` provider type to the api key `"anthropic"`, but pi-ai registers the Anthropic Messages API under `"anthropic-messages"`. Any custom provider configured as `anthropic-compatible` (self-hosted Claude proxy, gateway, etc.) therefore selected a model whose `api` did not match a registered provider and threw at stream time. Mapped it to `"anthropic-messages"` and added a regression assertion alongside the existing openai-compatible / openai-responses coverage. diff --git a/.changeset/fix-benign-todo-pause-abort-failure-notification.md b/.changeset/fix-benign-todo-pause-abort-failure-notification.md deleted file mode 100644 index bf6c5e122a..0000000000 --- a/.changeset/fix-benign-todo-pause-abort-failure-notification.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Clear the stale `failed` status when a pause/resume abort is reclassified as a benign todo re-queue, so the task no longer surfaces as failed on the board and the deferred failure notification is suppressed. Previously a pause-abort parked `status:"failed"` on an earlier non-todo observation stayed dispatchable (the scheduler filters on column+paused, not status), re-entered the benign-todo branch, and was logged benign while the row stayed failed — firing a contradictory failure alert during global pause when self-healing recovery was suppressed. The clear path also emits an `Auto-recovered:`-prefixed log so the notification service proactively cancels the pending failure timer instead of relying only on the fire-time re-check. diff --git a/.changeset/fix-ce-workflow-skill-loading.md b/.changeset/fix-ce-workflow-skill-loading.md deleted file mode 100644 index 2ced999a39..0000000000 --- a/.changeset/fix-ce-workflow-skill-loading.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Make the compound-engineering built-in workflow actually load skills and run the full CE flow. Previously the workflow named CE skills at each node but the graph-node execution path (`runGraphCustomNode`) never loaded them: the named skill was only injected as prompt text, the plugin-injected `FUSION_CE_*` runtime env never reached the step session, and `fn_spawn_agent` was never registered for workflow steps, so persona fan-out and skill loading silently no-op'd. Now skill-executor graph steps thread the injected env, load the named skill (discovery + selection via `additionalSkillPaths`), register the spawn tool in coding mode, and receive an engine-injected Fusion workflow-step conventions preamble (await-input for questions, `FUSION_HEADLESS` degrade path, persona fan-out via `systemPromptOverride`). Adds an explicit `unattended` opt-in for `FUSION_HEADLESS`, reconciles the preamble with the gate verdict-JSON contract, and carries `skillName` through the `WorkflowStep` round-trip. diff --git a/.changeset/fix-compound-engineering-dist-freshness.md b/.changeset/fix-compound-engineering-dist-freshness.md deleted file mode 100644 index 3e1d0593a4..0000000000 --- a/.changeset/fix-compound-engineering-dist-freshness.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix the persistent non-blocking Full Suite failure caused by the Compound Engineering plugin's `dist-freshness.test.ts`. The test reads the plugin's compiled `dist/settings.js` and `dist/session/orchestrator.js`, but the plugin had no `pretest` build and was absent from `ensure-test-artifacts.mjs`, so on a fresh checkout `dist/` did not exist and the freshness guard threw "dist/ is missing — run pnpm build first". Register the plugin's required artifacts in `ensure-test-artifacts.mjs` and add a `pretest` hook that builds them, matching the other bundled plugins. diff --git a/.changeset/fix-droid-model-discovery-process-storm.md b/.changeset/fix-droid-model-discovery-process-storm.md deleted file mode 100644 index acae2dab30..0000000000 --- a/.changeset/fix-droid-model-discovery-process-storm.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix the Droid runtime model discovery spawning a runaway storm of leaked `droid` processes. - -`discoverDroidModels` invoked `droid models --json` / `droid model list --json`, but the droid CLI has no such commands — an unknown subcommand is parsed as a *prompt*, so each call launched a full agent session (a persistent `droid exec --stream-jsonrpc` backend) that never exited. The promise never settled and the process leaked; because the dashboard re-loads the droid extension on every chat-send, these piled up into dozens of orphaned `droid` processes. - -Discovery now reads the catalog from `droid exec --help` (which lists `Available Models:` + `Custom Models:` and exits cleanly), parsed via the new `parseDroidModelsFromHelp` helper. A SIGKILL-on-timeout guard (`DROID_MODEL_DISCOVERY_TIMEOUT_MS`) ensures any wedged spawn is killed and the promise always settles, so a single discovery call can never leak a process again. Verified end-to-end against the real binary (46 models incl. custom, 0 leaked processes). diff --git a/.changeset/fix-editor-plugin-skill-catalog.md b/.changeset/fix-editor-plugin-skill-catalog.md deleted file mode 100644 index 0004ffdd8d..0000000000 --- a/.changeset/fix-editor-plugin-skill-catalog.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Show plugin-contributed skills (e.g. compound-engineering `ce-*`) in the workflow editor. The dashboard's discovered-skills catalog was built only from the disk-scanning package manager, so plugin skills — which the engine materializes for executor sessions separately — never appeared, and built-in workflow nodes that reference them (like `builtin:compound-engineering`) showed "— select skill —" / unresolved. The skills adapter now merges plugin skill contributions into the discovered list (deduped by bare name), and the editor's node summary + skill dropdown match namespaced skillNames (`compound-engineering:ce-work`) against the catalog's two-segment names (`ce-work/SKILL.md`) via a shared bare-name normalizer. diff --git a/.changeset/fix-loading-spinners.md b/.changeset/fix-loading-spinners.md deleted file mode 100644 index 052fa47f8f..0000000000 --- a/.changeset/fix-loading-spinners.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix loading spinners that didn't spin across the dashboard. Many loading states (Settings, task tabs, agents, documents, plugins, model pickers, command center, and more) rendered bare "Loading…" text with no spinner — and a couple rendered an unstyled `loading-spinner` div that never showed anything. Added a shared `` component (self-contained animated SVG, no `lucide-react` dependency so it survives partial test mocks) and adopted it across ~45 loading placeholders so every loading state now shows a consistent animated spinner. diff --git a/.changeset/fix-macos-memory-used.md b/.changeset/fix-macos-memory-used.md deleted file mode 100644 index fdbfd8bf29..0000000000 --- a/.changeset/fix-macos-memory-used.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix macOS system memory usage reporting by deriving host memory used from OS-available memory instead of raw `os.freemem()` pages. diff --git a/.changeset/fix-orphan-worktree-dir-cleanup.md b/.changeset/fix-orphan-worktree-dir-cleanup.md deleted file mode 100644 index 61306949dd..0000000000 --- a/.changeset/fix-orphan-worktree-dir-cleanup.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix worktree-creation failures (and the `Workflow graph terminated with failure at node 'execute'` they surface as) caused by leaked orphan worktree directories. - -A directory under `.worktrees/` that survives with a *dangling* `.git` pointer — present on disk, but the `.git/worktrees/` admin entry it references is gone — is invisible to `git worktree list` and untouched by `git worktree prune`, yet collides with a freshly generated worktree name. When the executor then tries to clean up the "conflict", `git worktree remove --force` fails with `is not a working tree` and the whole `execute` node fails after 3 attempts. - -- **On-demand recovery (`executor.ts`):** the FN-4813 stale-conflict recovery now also treats `is not a working tree` and `ENOENT` (not just `validation failed, cannot remove working tree`) as "no live worktree at this path" — it prunes any admin entry, force-removes the leftover directory, and proceeds with fresh worktree creation instead of failing. -- **Leak prevention (`worktree-pool.ts`):** `reapOrphanWorktrees` previously skipped any dir on the mere *presence* of a `.git` file ("may be partially registered"), contradicting its own documented invariant. It now resolves the `.git` pointer and only skips when the gitdir target actually exists; a dangling pointer is reaped like any other half-initialized orphan, so these directories no longer accumulate across runs. diff --git a/.changeset/fix-pause-abort-leak-storm.md b/.changeset/fix-pause-abort-leak-storm.md deleted file mode 100644 index d5d4487512..0000000000 --- a/.changeset/fix-pause-abort-leak-storm.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix the global pause/resume failure mode that stalled the board: a pause-abort that left a task back in `todo` was parked `status:"failed"` ("operator action required") and leaked its in-memory worktree slot, producing an instant re-fail retry storm and concurrency-starving the whole queue. - -- Root cause: `handleGraphFailure` now treats a pause-abort that has re-queued a task to `todo` as benign (FN-6782) — it no longer parks it failed, clears the `pausedAborted` marker so the next dispatch starts clean, and releases the leaked worktree slot. -- Auto-recovery: a new `recoverPausedAbortFailures` self-healing sweep clears any pause-abort park (`status:"failed"` with "operator action required") still on the board and requeues it for normal scheduling, so the board self-heals without operator intervention. -- Defense-in-depth: a new `reapLeakedConcurrencySlots` self-healing sweep reclaims any in-memory worktree slot whose holder is no longer in-progress (the "in todo yet still a `maxWorktrees` holder" leak), gated by the executor's live-session refusal so it can never pull a worktree out from under a running agent. This recovers a leaked slot from any future/unknown path without an engine restart. diff --git a/.changeset/fix-quarantine-json-gate-mode.md b/.changeset/fix-quarantine-json-gate-mode.md deleted file mode 100644 index ec95885b31..0000000000 --- a/.changeset/fix-quarantine-json-gate-mode.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Stop edits to `scripts/lib/test-quarantine.json` from forcing `pnpm test` into gate mode. The quarantine list is runtime data, not executable test infra; tripping the shared-infra catch-all dropped affected-package coverage, so a dev's real changes went untested whenever they also touched the quarantine list. Quarantine edits now stay in changed mode and run the affected packages. diff --git a/.changeset/fix-reconcile-no-resurrect-stale-task-dirs.md b/.changeset/fix-reconcile-no-resurrect-stale-task-dirs.md deleted file mode 100644 index f881888813..0000000000 --- a/.changeset/fix-reconcile-no-resurrect-stale-task-dirs.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@fusion/core": patch ---- - -Fix `reconcileOrphanedTaskDirs` silently resurrecting long-deleted tasks onto the live board after a restart ("all task IDs reset / starting over"). - -The sweep re-imports `.fusion/tasks//` directories that have no DB row, to recover heartbeat-created dirs that race store init or rows lost to a recent DB corruption. But it didn't distinguish a genuinely-recent orphan from an ancient deleted-task dir that merely lingered on disk. Modern deletes leave a soft-delete tombstone (caught by `taskIdExistsAnywhere`), but legacy hard-deletes left no tombstone — so a months-old `task.json` with no DB row was re-imported as a live task, surfacing old low-numbered IDs (FN-001, FN-002, …) at the top of the board. - -Reconcile now gates recovery on a recency window (`task.json` modified within the last 7 days). Older orphan dirs are skipped with reason `stale-orphan-dir-beyond-recency-window` and left for explicit recovery (unarchive/restore) or directory cleanup, while heartbeat-race and recent-corruption recovery still work. diff --git a/.changeset/fix-task-chat-ephemeral-agent-working.md b/.changeset/fix-task-chat-ephemeral-agent-working.md deleted file mode 100644 index 6842db64aa..0000000000 --- a/.changeset/fix-task-chat-ephemeral-agent-working.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix the task detail chat always showing "No agent is working on this task" for in-progress tasks. The active-session check required a persistent `assignedAgentId`/`checkedOutBy`, but in the default ephemeral-agents mode the scheduler never sets those fields, so an actively-executing task always read as idle. An assignment is now sufficient-but-not-necessary: a non-blocked, non-`queued` in-progress task counts as a live agent session on its own (`queued` stays assignment-gated, in-review is unchanged). diff --git a/.changeset/fix-worktree-orphan-cleanup-hardening.md b/.changeset/fix-worktree-orphan-cleanup-hardening.md deleted file mode 100644 index 85f9d2d0c1..0000000000 --- a/.changeset/fix-worktree-orphan-cleanup-hardening.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@runfusion/fusion": patch -"@fusion/core": patch ---- - -Harden the orphan-worktree and stale-task-dir cleanup fixes (code-review follow-up). - -- **executor.ts (P0):** the stale-conflict recovery's `rm(worktreePath, { recursive, force })` had no bounds check. `worktreePath` can originate from a git worktree admin entry that resolves outside `.worktrees/`, so an out-of-bounds or symlinked path could be force-removed. The recovery now refuses unless the path is inside the configured worktrees dir, is not a symlink (checked via `realpathSync`), is not a registered git worktree, and is not actively owned — and it re-verifies liveness inside the catch rather than trusting the error string. It also excludes `spawn` failures (e.g. `spawn git ENOENT` when git is missing) so a missing-binary error is no longer misread as a successful stale-path cleanup. -- **worktree-pool.ts:** `resolveGitdirPointer` is replaced by `dotGitPointerIsDangling`, which reaps **only** when a `.git` link's gitdir target is confirmed missing. A real `.git` directory, an unparseable pointer, or any read/stat failure now returns "not dangling" (conservative) so a transient read error on a live worktree's `.git` can't cause a force-remove. Removes the `string | "directory" | null` sentinel union. -- **core store.ts:** the `reconcileOrphanedTaskDirs` recency window is now bypassed when the live task table is empty (the corruption/restore case — surviving `task.json` files keep old mtimes), and when a corrupt `fusion.db` was auto-recovered on startup, so `.recover` row loss is not stranded by the gate. Adds an `ignoreRecencyWindow` option for explicit callers. -- Tests for all of the above: executor recovery + out-of-bounds refusal, unparseable `.git` skip, recency boundary, empty-DB/forced bypass. diff --git a/.changeset/fn-6705-plugin-activation-analytics.md b/.changeset/fn-6705-plugin-activation-analytics.md deleted file mode 100644 index e576457c6a..0000000000 --- a/.changeset/fn-6705-plugin-activation-analytics.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Track real plugin activation events and surface project-scoped Command Center plugin activation analytics instead of placeholder ecosystem counts. diff --git a/.changeset/fn-6712-agent-set-instructions-tool.md b/.changeset/fn-6712-agent-set-instructions-tool.md deleted file mode 100644 index 28835efc9b..0000000000 --- a/.changeset/fn-6712-agent-set-instructions-tool.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add the `fn_agent_set_instructions` extension tool so managing agents can update direct or indirect reports' inline or file-backed instructions with org-hierarchy authorization. diff --git a/.changeset/fn-6714-command-center-loc-backfill.md b/.changeset/fn-6714-command-center-loc-backfill.md deleted file mode 100644 index 21bf19c9cb..0000000000 --- a/.changeset/fn-6714-command-center-loc-backfill.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add an operator-triggered Command Center Productivity LOC backfill API and client for historical commit-association diff stats. diff --git a/.changeset/fn-6715-command-center-overview-funnel.md b/.changeset/fn-6715-command-center-overview-funnel.md deleted file mode 100644 index 5fbe174be1..0000000000 --- a/.changeset/fn-6715-command-center-overview-funnel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Move the Command Center Overview SDLC throughput funnel to the bottom of the tab and broaden hand-rolled chart primitive colors to cycle through existing semantic theme tokens. diff --git a/.changeset/fn-6722-command-center-resolved-issue-detail.md b/.changeset/fn-6722-command-center-resolved-issue-detail.md deleted file mode 100644 index c21c740e3e..0000000000 --- a/.changeset/fn-6722-command-center-resolved-issue-detail.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add a Command Center GitHub resolved-issues detail list and expose the resolved issue rows in the GitHub analytics endpoint payload and CSV export. diff --git a/.changeset/fn-6723-command-center-activity-charts.md b/.changeset/fn-6723-command-center-activity-charts.md deleted file mode 100644 index b9d5318d6f..0000000000 --- a/.changeset/fn-6723-command-center-activity-charts.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix Command Center Activity trend charts so mixed-unit agent/activity series stay visually legible instead of being flattened by high-volume message counts. diff --git a/.changeset/fn-6736-phantom-executor-binding.md b/.changeset/fn-6736-phantom-executor-binding.md deleted file mode 100644 index 715f2fdf60..0000000000 --- a/.changeset/fn-6736-phantom-executor-binding.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Recover in-progress tasks wedged behind stale in-memory executor bindings by clearing the phantom binding and requeueing with progress and worktree preserved. diff --git a/.changeset/fn-6737-terminal-ctrl-shortcuts.md b/.changeset/fn-6737-terminal-ctrl-shortcuts.md deleted file mode 100644 index e3d908c951..0000000000 --- a/.changeset/fn-6737-terminal-ctrl-shortcuts.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix terminal shortcut focus preservation so on-screen Ctrl combinations emit control bytes reliably on touch and pointer devices while keeping physical Ctrl behavior intact. diff --git a/.changeset/fn-6745-xhigh-thinking-level.md b/.changeset/fn-6745-xhigh-thinking-level.md deleted file mode 100644 index 89093411c4..0000000000 --- a/.changeset/fn-6745-xhigh-thinking-level.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add the `xhigh` reasoning effort level to model settings and task/agent selectors. Claude CLI adapters pass the value through to runtime mapping, where non-Opus models use `high` effort and Opus models use `max` effort. diff --git a/.changeset/fn-6749-i18n-lint-rebaseline.md b/.changeset/fn-6749-i18n-lint-rebaseline.md deleted file mode 100644 index 159fcb1500..0000000000 --- a/.changeset/fn-6749-i18n-lint-rebaseline.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Rebaseline the dashboard i18n lint guardrail by excluding non-shipping tests and stories, suppressing technical token categories, localizing plugin missing-view copy, and tracking remaining source-copy deferrals with narrow follow-up tasks. diff --git a/.changeset/fn-6759-lead-generation-workflow.md b/.changeset/fn-6759-lead-generation-workflow.md deleted file mode 100644 index f946f9ebdb..0000000000 --- a/.changeset/fn-6759-lead-generation-workflow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add a built-in lead-generation workflow with custom lead columns, fields, and stage prompts. diff --git a/.changeset/fn-6760-design-workflow.md b/.changeset/fn-6760-design-workflow.md deleted file mode 100644 index 20a39f8dd8..0000000000 --- a/.changeset/fn-6760-design-workflow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add a built-in Design workflow that gates UI-heavy work with a design/UX review before standard review and merge. diff --git a/.changeset/fn-6761-marketing-workflow.md b/.changeset/fn-6761-marketing-workflow.md deleted file mode 100644 index fec6fd79cd..0000000000 --- a/.changeset/fn-6761-marketing-workflow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add a built-in Marketing workflow with content-specific columns and prompts for brief, drafting, editorial review, and publishing. diff --git a/.changeset/fn-6766-mobile-nav-spacing.md b/.changeset/fn-6766-mobile-nav-spacing.md deleted file mode 100644 index 2530d3e90a..0000000000 --- a/.changeset/fn-6766-mobile-nav-spacing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix mobile bottom tab navigation icon spacing so every tab uses an equal-width column across optional tabs, badges, and status dots. diff --git a/.changeset/fn-6767-agents-sidebar.md b/.changeset/fn-6767-agents-sidebar.md deleted file mode 100644 index 6b46d7febd..0000000000 --- a/.changeset/fn-6767-agents-sidebar.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Make the Agents view sidebar wider by default on tablet and resizable with per-project persistence on non-mobile layouts. diff --git a/.changeset/fn-6769-i18n-cluster.md b/.changeset/fn-6769-i18n-cluster.md deleted file mode 100644 index d801c0f3aa..0000000000 --- a/.changeset/fn-6769-i18n-cluster.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Localize remaining plugin, agent, mission, node, research, document, activity, and miscellaneous dashboard strings and remove their i18n lint deferrals. diff --git a/.changeset/fn-6770-localize-workflow-task-pr.md b/.changeset/fn-6770-localize-workflow-task-pr.md deleted file mode 100644 index 5a8a7d6413..0000000000 --- a/.changeset/fn-6770-localize-workflow-task-pr.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Localized the dashboard workflow/task/setup/PR component cluster and removed the obsolete i18n lint deferrals for those files so the hardcoded-string guardrail scans them again. diff --git a/.changeset/fn-6771-localize-settings-sections.md b/.changeset/fn-6771-localize-settings-sections.md deleted file mode 100644 index bcad0cf642..0000000000 --- a/.changeset/fn-6771-localize-settings-sections.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Keep settings section dashboard copy covered by i18n lint by removing the settings/sections deferral and regenerating i18n resource types. diff --git a/.changeset/fn-6776-board-flash.md b/.changeset/fn-6776-board-flash.md deleted file mode 100644 index 5f96f6325c..0000000000 --- a/.changeset/fn-6776-board-flash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Eliminate the legacy board flash before workflow lanes load by caching per-project board workflow metadata and showing a neutral skeleton while metadata resolves. diff --git a/.changeset/fn-6777-artifact-registry.md b/.changeset/fn-6777-artifact-registry.md deleted file mode 100644 index 009349b717..0000000000 --- a/.changeset/fn-6777-artifact-registry.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add a core artifact registry data model and store APIs for persisted artifact metadata with on-disk binary storage. diff --git a/.changeset/fn-6778-artifact-agent-tools.md b/.changeset/fn-6778-artifact-agent-tools.md deleted file mode 100644 index e44e38472a..0000000000 --- a/.changeset/fn-6778-artifact-agent-tools.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add `fn_artifact_register`, `fn_artifact_list`, and `fn_artifact_view` agent tools for publishing and discovering multi-type artifacts, with best-effort dashboard user inbox notifications on registration. diff --git a/.changeset/fn-6779-artifacts-gallery.md b/.changeset/fn-6779-artifacts-gallery.md deleted file mode 100644 index 8e709b11b5..0000000000 --- a/.changeset/fn-6779-artifacts-gallery.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add dashboard artifact registry read APIs, client helpers, and a Documents-view Artifacts media gallery for images, videos, audio, documents, and generic artifacts. diff --git a/.changeset/fn-6781-command-center-header.md b/.changeset/fn-6781-command-center-header.md deleted file mode 100644 index be965fdc6e..0000000000 --- a/.changeset/fn-6781-command-center-header.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Keep Command Center inline next to Agents across desktop and tablet header widths instead of moving it into the More views overflow menu. diff --git a/.changeset/fn-6783-orphaned-task-dir-reconcile.md b/.changeset/fn-6783-orphaned-task-dir-reconcile.md deleted file mode 100644 index 301e64712d..0000000000 --- a/.changeset/fn-6783-orphaned-task-dir-reconcile.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Repair task-store startup and self-healing consistency by non-destructively re-importing orphaned live `.fusion/tasks/{ID}/task.json` records into the SQLite task index while preserving soft-deleted, archived, and tombstoned IDs. diff --git a/.changeset/fn-6793-dependency-gating.md b/.changeset/fn-6793-dependency-gating.md deleted file mode 100644 index ec4277e352..0000000000 --- a/.changeset/fn-6793-dependency-gating.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix dependency gating so workflow-graph and workflow-authoritative executor dispatches re-check unmet task dependencies before running, requeueing blocked work with `blockedBy` instead of allowing it to advance to review. - -Add self-healing reconciliation for already-advanced `in-review` tasks with unmet dependencies, including the `task:reconcile-in-review-unmet-dependencies` run-audit event and guarded no-action companion. diff --git a/.changeset/fn-6796-pause-resume-in-review-recovery.md b/.changeset/fn-6796-pause-resume-in-review-recovery.md deleted file mode 100644 index 82028c2c96..0000000000 --- a/.changeset/fn-6796-pause-resume-in-review-recovery.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Recover benign in-review pause/resume abort parks without requiring operator intervention while preserving hard-cancel, pause, and terminal merge safeguards. diff --git a/.changeset/fn-6797-in-review-dependency-drift.md b/.changeset/fn-6797-in-review-dependency-drift.md deleted file mode 100644 index beec4a1637..0000000000 --- a/.changeset/fn-6797-in-review-dependency-drift.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Harden in-review dependency drift reconciliation so guard-held or failed rebounds emit no-action audit evidence instead of silently wedging dependent tasks. diff --git a/.changeset/fn-6800-mobile-nav-spacing.md b/.changeset/fn-6800-mobile-nav-spacing.md deleted file mode 100644 index c130f3c445..0000000000 --- a/.changeset/fn-6800-mobile-nav-spacing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix mobile bottom navigation icon alignment so unread indicators use a centered token-sized icon slot without visually skewing tab spacing. diff --git a/.changeset/fn-6808-cli-probe-unhandled-rejection.md b/.changeset/fn-6808-cli-probe-unhandled-rejection.md deleted file mode 100644 index d9a26934e9..0000000000 --- a/.changeset/fn-6808-cli-probe-unhandled-rejection.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Prevent bundled Droid and Claude CLI auth/presence probes from surfacing unhandled promise rejections when `spawn` throws synchronously, such as when test guards block real AI CLI auth commands. These probes now resolve as unavailable/unauthenticated instead of rejecting from fire-and-forget validation paths. diff --git a/.changeset/fn-6816-shadcn-custom-colors.md b/.changeset/fn-6816-shadcn-custom-colors.md deleted file mode 100644 index 23a6093e70..0000000000 --- a/.changeset/fn-6816-shadcn-custom-colors.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add a Shadcn Custom dashboard theme with persisted, sanitized design-token color picker overrides across Settings and Command Center theme selectors. diff --git a/.changeset/fn-6819-sidebar-footer-clearance.md b/.changeset/fn-6819-sidebar-footer-clearance.md deleted file mode 100644 index 5758d00f30..0000000000 --- a/.changeset/fn-6819-sidebar-footer-clearance.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix the experimental left sidebar Settings button so it remains clear of the fixed executor status footer, and keep project-selector fallback labels readable when translations are incomplete. diff --git a/.changeset/fn-6832-workflow-routing.md b/.changeset/fn-6832-workflow-routing.md deleted file mode 100644 index 0a771cbabe..0000000000 --- a/.changeset/fn-6832-workflow-routing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Stop triage and planning prompts from auto-selecting alternate workflows based on task type; agents now preserve the project default workflow unless the user explicitly requests a specific workflow. diff --git a/.changeset/fn-6839-close-cached-stores.md b/.changeset/fn-6839-close-cached-stores.md deleted file mode 100644 index ac3b5577de..0000000000 --- a/.changeset/fn-6839-close-cached-stores.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Await CLI extension cached TaskStore shutdown so deferred filesystem writes and SQLite handles drain before fixture or process cleanup. diff --git a/.changeset/fn-6851-stale-board-entries-after-move.md b/.changeset/fn-6851-stale-board-entries-after-move.md deleted file mode 100644 index 4861403d68..0000000000 --- a/.changeset/fn-6851-stale-board-entries-after-move.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix stale board entries after dependency-driven task re-specification moves by syncing the watched task cache after `updateTaskDependencies` writes and defensively deduplicating `listTasks` rows so active task rows win over archived snapshots. diff --git a/.changeset/fn-6853-pi-sdk-bump.md b/.changeset/fn-6853-pi-sdk-bump.md deleted file mode 100644 index 8cc20dc532..0000000000 --- a/.changeset/fn-6853-pi-sdk-bump.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Bump the internal @earendil-works pi SDK family from ^0.79.1 to ^0.79.9 for the CLI, dashboard, and engine packages. diff --git a/.changeset/fn-6858-toast-contrast.md b/.changeset/fn-6858-toast-contrast.md deleted file mode 100644 index 700f7fe02f..0000000000 --- a/.changeset/fn-6858-toast-contrast.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix dashboard toast text colors so Shadcn dark-mode success, info, and error notifications remain readable against their themed backgrounds. diff --git a/.changeset/fn-6869-codex-pricing.md b/.changeset/fn-6869-codex-pricing.md deleted file mode 100644 index b15dde922c..0000000000 --- a/.changeset/fn-6869-codex-pricing.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add pricing entries for OpenAI Codex models used through the `openai-codex` provider, so Command Center token analytics can estimate costs for Codex runs instead of showing them as unavailable. - -This is marked minor because it expands the set of priced models surfaced by the published CLI/dashboard without changing existing pricing behavior. diff --git a/.changeset/fn-6875-allow-unpause-assigned.md b/.changeset/fn-6875-allow-unpause-assigned.md deleted file mode 100644 index dd46c7c5da..0000000000 --- a/.changeset/fn-6875-allow-unpause-assigned.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Allow users to manually pause and unpause agent-assigned tasks from the dashboard task detail view and API. diff --git a/.changeset/fn-6878-droid-boot.md b/.changeset/fn-6878-droid-boot.md deleted file mode 100644 index abbf7c40b1..0000000000 --- a/.changeset/fn-6878-droid-boot.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Ensure bundled Droid CLI provider startup registers without waiting for local `droid` probes and harden binary probes so missing, guarded, or hanging spawns resolve to unavailable sentinels instead of delaying engine boot. diff --git a/.changeset/fn-6881-stash-recovery-git-manager.md b/.changeset/fn-6881-stash-recovery-git-manager.md deleted file mode 100644 index d1b8473165..0000000000 --- a/.changeset/fn-6881-stash-recovery-git-manager.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Move Stash Recovery into the Git Manager Recovery tab and remove the standalone top-level Stash Recovery view from dashboard navigation. diff --git a/.changeset/fn-6882-toolbar-to-right-sidebar.md b/.changeset/fn-6882-toolbar-to-right-sidebar.md deleted file mode 100644 index 6e8c859571..0000000000 --- a/.changeset/fn-6882-toolbar-to-right-sidebar.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Move desktop toolbar tools into the right sidebar tools rail. The right dock now hosts Activity, Activity Log, Import from GitHub, Git Manager, Files, and Automation, and no longer duplicates left-sidebar content views. diff --git a/.changeset/fn-6886-planning-sidebar-view.md b/.changeset/fn-6886-planning-sidebar-view.md deleted file mode 100644 index 8254f0f19d..0000000000 --- a/.changeset/fn-6886-planning-sidebar-view.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Move Planning Mode into the dashboard sidebar as a first-class embedded view while removing the desktop toolbar affordance. diff --git a/.changeset/fn-6887-terminal-footer-panel.md b/.changeset/fn-6887-terminal-footer-panel.md deleted file mode 100644 index 4eaf532e6e..0000000000 --- a/.changeset/fn-6887-terminal-footer-panel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Move the dashboard terminal launcher to the footer executor status bar and add docked plus floating resizable terminal modes on desktop/tablet while preserving mobile fullscreen terminal behavior. diff --git a/.changeset/fn-6891-ce-review-skill.md b/.changeset/fn-6891-ce-review-skill.md deleted file mode 100644 index 8a08e8eaf3..0000000000 --- a/.changeset/fn-6891-ce-review-skill.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Update the built-in compound-engineering workflow so its Review stage runs the `compound-engineering:ce-code-review` skill directly. The redundant generic reviewer seam node was removed, leaving the CE code-review gate as the sole review stage. diff --git a/.changeset/fn-6899-click-revealed-right-dock.md b/.changeset/fn-6899-click-revealed-right-dock.md deleted file mode 100644 index 7439e5520a..0000000000 --- a/.changeset/fn-6899-click-revealed-right-dock.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Make the dashboard right dock persistent by default with an in-dock collapse toggle, and remove duplicate Header right-dock toggle behavior. diff --git a/.changeset/fn-6903-workflow-lane-create-visibility.md b/.changeset/fn-6903-workflow-lane-create-visibility.md deleted file mode 100644 index 69d2e69766..0000000000 --- a/.changeset/fn-6903-workflow-lane-create-visibility.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Tasks created from a selected non-default workflow lane now appear on that lane immediately instead of vanishing until the board-workflows metadata refetch catches up. diff --git a/.changeset/fn-6904-ce-workflow-prompt-skill-callout.md b/.changeset/fn-6904-ce-workflow-prompt-skill-callout.md deleted file mode 100644 index 2b041cb39c..0000000000 --- a/.changeset/fn-6904-ce-workflow-prompt-skill-callout.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Built-in compound-engineering workflow prompts now explicitly call out the `/ce-` skill slash command at each stage. diff --git a/.changeset/fn-6906-non-coding-workflow-prompts.md b/.changeset/fn-6906-non-coding-workflow-prompts.md deleted file mode 100644 index 0635fa3522..0000000000 --- a/.changeset/fn-6906-non-coding-workflow-prompts.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Improve bundled non-coding workflow prompts so marketing, lead-generation, and design runs produce structured deliverables, with content and design preview artifacts persisted for review. diff --git a/.changeset/fn-6907-task-artifacts-tab.md b/.changeset/fn-6907-task-artifacts-tab.md deleted file mode 100644 index ffdb6f32b0..0000000000 --- a/.changeset/fn-6907-task-artifacts-tab.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Rename the task detail Documents tab to Artifacts and add a task-scoped media artifact gallery alongside existing task documents. diff --git a/.changeset/fn-6910-subtask-breakdown-flag.md b/.changeset/fn-6910-subtask-breakdown-flag.md deleted file mode 100644 index 8c750b8e07..0000000000 --- a/.changeset/fn-6910-subtask-breakdown-flag.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Hide the dashboard AI subtask-breakdown quick-add button behind the default-off `subtaskBreakdown` experimental feature flag. diff --git a/.changeset/fn-6911-droid-cli-no-boot-spawn.md b/.changeset/fn-6911-droid-cli-no-boot-spawn.md deleted file mode 100644 index 6f23dc32e9..0000000000 --- a/.changeset/fn-6911-droid-cli-no-boot-spawn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Prevent the bundled Droid CLI extension from starting local `droid` probes during server boot; validation now runs only when a Droid stream is actually used while existing probe paths remain non-interactive and timeout-bounded. diff --git a/.changeset/fn-6919-workflow-switcher-style.md b/.changeset/fn-6919-workflow-switcher-style.md deleted file mode 100644 index e0871b0e65..0000000000 --- a/.changeset/fn-6919-workflow-switcher-style.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Restyle the workflow switcher trigger and dropdown to visually match the project selector. diff --git a/.changeset/fn-6922-repo-root-acquisition-guard.md b/.changeset/fn-6922-repo-root-acquisition-guard.md deleted file mode 100644 index 702a3d851e..0000000000 --- a/.changeset/fn-6922-repo-root-acquisition-guard.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Prevent task worktree acquisition from returning the project repository root by enforcing a non-root postcondition across resume, pooled, and fresh checkout paths. diff --git a/.changeset/fn-6934-workflow-movement-policy.md b/.changeset/fn-6934-workflow-movement-policy.md deleted file mode 100644 index 7f4abf694e..0000000000 --- a/.changeset/fn-6934-workflow-movement-policy.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Tighten agent workflow-routing prompt policy so triage and executor agents must not move a task's workflow unless the user explicitly requested it or the agent created that task. Executor prompts now include an explicit `fn_workflow_select` guardrail while preserving workflow selection for tasks agents create. diff --git a/.changeset/fn-6947-workflow-ir-project-identity.md b/.changeset/fn-6947-workflow-ir-project-identity.md deleted file mode 100644 index ef1b12002b..0000000000 --- a/.changeset/fn-6947-workflow-ir-project-identity.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Keep workflow IR and effective-settings resolution usable when project identity lookup fails, falling back to declaration defaults instead of propagating the identity error. diff --git a/.changeset/fn-6949-auto-merge-lifecycle.md b/.changeset/fn-6949-auto-merge-lifecycle.md deleted file mode 100644 index d04cd11181..0000000000 --- a/.changeset/fn-6949-auto-merge-lifecycle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix auto-merge lifecycle finalization so successful squash commits reliably leave tasks done, clear transient auto-merge state, and preserve actionable failure state when lifecycle updates fail. diff --git a/.changeset/fn-blank-page-service-worker-assets.md b/.changeset/fn-blank-page-service-worker-assets.md deleted file mode 100644 index 19dfd36ecf..0000000000 --- a/.changeset/fn-blank-page-service-worker-assets.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Revalidate dashboard service-worker assets before falling back to cache so rebuilt tabs cannot stay on stale bundles and render a blank page. diff --git a/.changeset/focused-dashboard-polish.md b/.changeset/focused-dashboard-polish.md deleted file mode 100644 index 90545dec35..0000000000 --- a/.changeset/focused-dashboard-polish.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Polish dashboard navigation, floating modal, file browser, chat footer, agent role, insights, and list-view action surfaces for a more consistent responsive UI. diff --git a/.changeset/full-chat-modal-and-graph-fit.md b/.changeset/full-chat-modal-and-graph-fit.md deleted file mode 100644 index a06022c9c1..0000000000 --- a/.changeset/full-chat-modal-and-graph-fit.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Replace the compact Quick Chat implementation with the full Chat modal launcher and configurable footer/FAB/off setting, move the file browser into the shared floating-window shell with a compact New menu and consistent narrow editor toolbar, fit the dependency graph after layout settles, and align chat/mailbox/task-detail expansion plus header/theme polish. diff --git a/.changeset/fuzzy-nodes-watch.md b/.changeset/fuzzy-nodes-watch.md deleted file mode 100644 index 00a97df076..0000000000 --- a/.changeset/fuzzy-nodes-watch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add a Command Center System node selector so local and registered remote node telemetry can be inspected from the dashboard. diff --git a/.changeset/fuzzy-productivity-hours.md b/.changeset/fuzzy-productivity-hours.md deleted file mode 100644 index 4795f50b9c..0000000000 --- a/.changeset/fuzzy-productivity-hours.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add estimated human hours saved to Command Center Productivity analytics, UI stats, and CSV exports. diff --git a/.changeset/github-import-pr-checks-comments.md b/.changeset/github-import-pr-checks-comments.md deleted file mode 100644 index 9932ef3c94..0000000000 --- a/.changeset/github-import-pr-checks-comments.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Import Tasks PR preview now shows the full comment thread and per-check status (with success/failure/pending indicators) for the selected pull request, fetched on selection and cached per PR. The body still renders immediately while checks and comments stream in. diff --git a/.changeset/github-import-project-remotes.md b/.changeset/github-import-project-remotes.md deleted file mode 100644 index b960e8fc67..0000000000 --- a/.changeset/github-import-project-remotes.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Fix Import from GitHub remote detection in multi-project dashboards by passing the active `projectId` to the `/api/git/remotes` lookup. The dialog now lists configured GitHub remotes instead of showing "No GitHub remotes detected" when the backend requires project scope. diff --git a/.changeset/global-settings-task-chat-icons.md b/.changeset/global-settings-task-chat-icons.md deleted file mode 100644 index b2d4af9137..0000000000 --- a/.changeset/global-settings-task-chat-icons.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Prevent global settings updates from overwriting an existing unreadable settings file with defaults, and use provider/CPU icons in task chat agent headers. diff --git a/.changeset/heartbeat-staleness-10min.md b/.changeset/heartbeat-staleness-10min.md deleted file mode 100644 index 543d12b360..0000000000 --- a/.changeset/heartbeat-staleness-10min.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Raise the minimum agent heartbeat staleness floor from 5 to 10 minutes. Agents go silent during long-running but legitimate work (notably a verification step running a multi-minute test command, where the agent is blocked awaiting the command and cannot tick/heartbeat). The 5-minute floor could misread such a busy agent as dead and reclaim its in-progress task mid-run; 10 minutes gives long operations room before the liveness gate acts. diff --git a/.changeset/local-starts-engine.md b/.changeset/local-starts-engine.md deleted file mode 100644 index e4ec39f8e1..0000000000 --- a/.changeset/local-starts-engine.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Start the AI engine by default in `pnpm local`, keep dashboard `--dev` engine-on unless `--no-engine` is passed, start desktop local runtimes with engines, and show dashboard instructions when Fusion is launched without an engine. diff --git a/.changeset/loud-nodes-sync.md b/.changeset/loud-nodes-sync.md deleted file mode 100644 index a0181373f6..0000000000 --- a/.changeset/loud-nodes-sync.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Sync workflow setting values across nodes in settings push, pull, receive, and status flows. diff --git a/.changeset/markdown-raw-html-and-mermaid.md b/.changeset/markdown-raw-html-and-mermaid.md deleted file mode 100644 index d855a5427b..0000000000 --- a/.changeset/markdown-raw-html-and-mermaid.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -The shared markdown renderer (GitHub PR/issue bodies + comments, mailbox, chat) now renders embedded raw HTML and mermaid diagrams. Raw HTML (`
`/``, ``, ``, tables) renders as real elements via `rehype-raw`, with `rehype-sanitize` stripping XSS (script/style/iframe, event handlers, `javascript:` URLs) since these bodies come from GitHub; HTML comments (``) are dropped. Fenced ```mermaid blocks render as actual diagrams via a lazy-loaded `mermaid` import (kept out of the main bundle, loaded only when a diagram is present), falling back to the raw code block on parse error and following the dashboard theme. diff --git a/.changeset/mobile-chat-modal-chrome.md b/.changeset/mobile-chat-modal-chrome.md deleted file mode 100644 index 6500c8dcde..0000000000 --- a/.changeset/mobile-chat-modal-chrome.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Polish mobile workflow header alignment, task chat provider icons, modal overlay chrome, and shadcn font consistency. diff --git a/.changeset/new-task-duplicates.md b/.changeset/new-task-duplicates.md deleted file mode 100644 index 172ee97aa0..0000000000 --- a/.changeset/new-task-duplicates.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Check for duplicate tasks from the New Task dialog and show duplicate descriptions in the warning modal. diff --git a/.changeset/onboarding-first-agent-flow.md b/.changeset/onboarding-first-agent-flow.md deleted file mode 100644 index 74334f2f94..0000000000 --- a/.changeset/onboarding-first-agent-flow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Update first-run onboarding to include an optional first-agent step and clearer temporary-agent task guidance. diff --git a/.changeset/planning-subtask-workflow-selection.md b/.changeset/planning-subtask-workflow-selection.md deleted file mode 100644 index 7e074a038e..0000000000 --- a/.changeset/planning-subtask-workflow-selection.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Carry the selected workflow lane through Planning Mode and Subtask Breakdown task creation so saved tasks appear on the active workflow instead of falling back to the main board. diff --git a/.changeset/polish-dashboard-theme-roadmaps.md b/.changeset/polish-dashboard-theme-roadmaps.md deleted file mode 100644 index 3ca226922c..0000000000 --- a/.changeset/polish-dashboard-theme-roadmaps.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Polish dashboard navigation and app chrome, add responsive chat/file/modal behavior, refine roadmaps, missions, task details, workflow defaults, theme defaults, and sidebar/header styling. diff --git a/.changeset/preserve-progress-on-pause-abort.md b/.changeset/preserve-progress-on-pause-abort.md deleted file mode 100644 index 6aaae53271..0000000000 --- a/.changeset/preserve-progress-on-pause-abort.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Preserve task progress when a single-session run is hard-cancelled mid-execution. When the engine aborted in-flight work and bounced the task back to `todo`, the single-session teardown cleared the task `branch` and re-queued without `preserveResumeState` — resetting every step to `pending` and dropping the pointer to commits already on the task branch, so the next dispatch re-planned from Step 0 and the committed work was stranded (observed as a task that "lost all progress" and got stuck). The teardown now keeps the branch and moves with `preserveResumeState` whenever the task has resumable step progress, matching the step-session and pause-park paths, so execution resumes onto the existing branch from the first incomplete step. The worktree is still removed to free its concurrency slot — only the durable pointers (branch + step state) are kept. diff --git a/.changeset/proud-validators-verify.md b/.changeset/proud-validators-verify.md deleted file mode 100644 index ec11eee30e..0000000000 --- a/.changeset/proud-validators-verify.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Close the validator reaper→slice deadlock and harden every validation re-drive site for the new behavioral-verification posture. A reaped, task-less "done" feature (left in `loopState="validating"`/`needs_fix`+`error`) is now re-driven by recovery to a terminal pass/fail/inconclusive verdict instead of livelocking the slice, milestone, and mission. Adds an adversarial reliability suite enumerating every re-drive entry point (normal `processTaskOutcome`, each `recoverActiveMissions` branch, and the stale-run reaper) and asserting source-tree git-cleanliness, zero duplicate Fix Features, a terminal verdict, and no `error`-state deadlock. Documents the non-mutating verification run, the first-class `inconclusive` verdict, and the adversarial default-to-fail posture across `docs/missions.md`, `docs/missions-completion-contract.md`, and `CONCEPTS.md`. diff --git a/.changeset/settings-default-surfaces.md b/.changeset/settings-default-surfaces.md deleted file mode 100644 index 83bc82d0e8..0000000000 --- a/.changeset/settings-default-surfaces.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Preserve unrelated global settings when saving Settings sections, and graduate Chat Rooms, Goals, Memory, Insights, Skills, and Todo to default-on dashboard surfaces. diff --git a/.changeset/shadcn-color-variants.md b/.changeset/shadcn-color-variants.md deleted file mode 100644 index 826b9a55a5..0000000000 --- a/.changeset/shadcn-color-variants.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add Shadcn color-variant dashboard themes for blue, green, red, purple, pink, orange, yellow, mono, and black variants. diff --git a/.changeset/shadcn-dashboard-theme.md b/.changeset/shadcn-dashboard-theme.md deleted file mode 100644 index b372f3f197..0000000000 --- a/.changeset/shadcn-dashboard-theme.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add a Shadcn dashboard color theme with zinc neutral tokens, sans-serif typography, 1px borders, subtle flat shadows, and solid primary buttons. diff --git a/.changeset/shadcn-gray-blue-theme.md b/.changeset/shadcn-gray-blue-theme.md deleted file mode 100644 index 2393b7bec0..0000000000 --- a/.changeset/shadcn-gray-blue-theme.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add the `shadcn-gray-blue` dashboard color theme with slate blue-gray surfaces and a muted slate-blue accent. diff --git a/.changeset/shadcn-gray-variant.md b/.changeset/shadcn-gray-variant.md deleted file mode 100644 index 5e75544ecf..0000000000 --- a/.changeset/shadcn-gray-variant.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add a Shadcn Gray dashboard color theme with a fully neutral zinc-gray accent. diff --git a/.changeset/shadcn-mono-color-family.md b/.changeset/shadcn-mono-color-family.md deleted file mode 100644 index 8dae317b2c..0000000000 --- a/.changeset/shadcn-mono-color-family.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add Shadcn Mono Red/Blue/Green/Purple/Pink/Orange/Yellow dashboard color themes and migrate legacy `shadcn-mono` selections to `shadcn-mono-red`. diff --git a/.changeset/sidebar-panel-redesign.md b/.changeset/sidebar-panel-redesign.md deleted file mode 100644 index e66c4f4545..0000000000 --- a/.changeset/sidebar-panel-redesign.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Dashboard navigation and panel redesign (desktop/tablet; mobile unchanged): - -- **Right sidebar**: a single show/hide toggle now lives in the top header (replacing the tablet overflow menu); the dock is hidden when closed and no longer keeps a persistent icon rail or in-dock collapse button. Its tools (Files — now the default/first tab, Activity, Activity Log, Git Manager) render inline inside the dock instead of opening popup modals. Files opens inline with a pop-out to the resizable file modal. The embedded Git Manager adapts to its width (compact horizontal tab strip in the dock, full two-pane in the wide pop-out). The dependency graph no longer appears in the dock. -- **Left sidebar**: New Task button matches the item-highlight box; footer spacing between Collapse and Settings; divider before the secondary section removed with uniform row spacing. New main-content destinations — Workflows, Import Tasks (GitHub import, with the GitHub mark), and Automations (two-pane, Command Center styling) — render in the main panel instead of as modals. -- **Embedded views**: Planning Mode embeds without modal chrome (no header/close/shadow), fills the full content area, and renders correctly on mobile; the board WorkflowSwitcher is available in Planning. Dev Server header matches Command Center. Insights header wraps so actions don't overlap. List view's left pane can be dragged much narrower with two-line title wrapping. -- **Other**: the docked terminal no longer blurs or blocks the page behind it; the footer Terminal button renders as plain text like the running-state trigger; the workflow selector matches the project selector's styling, height, and font size; the Automations screen uses theme color tokens. diff --git a/.changeset/skills-detail-file-viewer.md b/.changeset/skills-detail-file-viewer.md deleted file mode 100644 index 0b1f89cb74..0000000000 --- a/.changeset/skills-detail-file-viewer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Skills view detail pane: render SKILL.md as Markdown (GFM + sanitized HTML + mermaid), compact the referenced-files area while showing all files, and make each file clickable to view its content with a "Back to SKILL.md" affordance. Adds a `GET /api/skills/:id/file` endpoint for per-file content. diff --git a/.changeset/smooth-mobile-quick-chat-keyboard.md b/.changeset/smooth-mobile-quick-chat-keyboard.md deleted file mode 100644 index efaa19df61..0000000000 --- a/.changeset/smooth-mobile-quick-chat-keyboard.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Smooth the mobile Quick Chat fullscreen sheet during Android soft-keyboard viewport resizing while preserving synchronous iOS visualViewport alignment. diff --git a/.changeset/soft-badgers-measure.md b/.changeset/soft-badgers-measure.md deleted file mode 100644 index b5ecf8e654..0000000000 --- a/.changeset/soft-badgers-measure.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add Command Center Productivity task-duration analytics, dashboard stat cards, and CSV export rows for completed-task active execution time. diff --git a/.changeset/stuck-kill-reset-on-progress.md b/.changeset/stuck-kill-reset-on-progress.md deleted file mode 100644 index b9ce5ec9f4..0000000000 --- a/.changeset/stuck-kill-reset-on-progress.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Reset a task's stuck-kill streak on genuine forward progress. `stuckKillCount` was a lifetime counter — incremented by self-healing on each stuck-kill and cleared only by a manual retry — so a long, genuinely-progressing task could be terminalized by accumulation toward the stuck-kill budget. It now resets when a step reaches a terminal forward status (done/skipped), so only consecutive no-progress stalls count toward the budget. diff --git a/.changeset/task-card-files-changed-inline.md b/.changeset/task-card-files-changed-inline.md deleted file mode 100644 index 0cb48179d7..0000000000 --- a/.changeset/task-card-files-changed-inline.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Open task-card files changed actions in the inline task detail Changes tab instead of the task modal. diff --git a/.changeset/task-chat-effective-model-icons.md b/.changeset/task-chat-effective-model-icons.md deleted file mode 100644 index 5db4a547a1..0000000000 --- a/.changeset/task-chat-effective-model-icons.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Show provider icons in task detail chat for default-backed executor, reviewer, planner, and merger models. diff --git a/.changeset/unified-floating-window-stack.md b/.changeset/unified-floating-window-stack.md deleted file mode 100644 index 046cc9c26b..0000000000 --- a/.changeset/unified-floating-window-stack.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Floating modals (the reusable FloatingWindow, the right-dock pop-out, the floating terminal, and the floating New Task dialog) now share a single z-index stack, so tapping any of them brings it to the front above all the others regardless of type. diff --git a/.changeset/workflow-optional-steps.md b/.changeset/workflow-optional-steps.md deleted file mode 100644 index 140a3347ab..0000000000 --- a/.changeset/workflow-optional-steps.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -Add workflow optional steps: workflows can declare optional step templates that tasks toggle on/off per task, with a workflow-level default. The built-in coding and stepwise-coding workflows expose agent browser verification as an optional step (the stepwise workflow gains a pre-merge workflow-step seam so enabled steps actually run). Optional steps are authorable in the node editor, preserved across node-editor saves, and selectable from a steps dropdown in both the quick-add card and the full New Task modal. diff --git a/.changeset/workflow-runtime-cutover.md b/.changeset/workflow-runtime-cutover.md deleted file mode 100644 index 6b8c4d8778..0000000000 --- a/.changeset/workflow-runtime-cutover.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -Graduate workflow columns and the workflow graph executor to the default runtime path. - -Upgrade notes: stale persisted `experimentalFeatures.workflowColumns` and `experimentalFeatures.workflowGraphExecutor` values are ignored by the engine, so prior installs keep dispatching tasks through the workflow runtime after upgrade. `workflowInterpreterDualObserve` remains an internal diagnostic and defaults off. - -If an upgraded project appears stalled, treat `todo` tasks with unmet dependencies, `paused`/`userPaused`, active checkout leases, unavailable assigned nodes, or file-scope overlap as intentionally parked. Eligible `todo` tasks without those blockers should be picked up by the workflow scheduler; eligible `in-progress` rows without a live executor are recovered through the normal orphan-resume/self-healing path. The old Experimental toggles are no longer a rollback switch; use a source rollback/downgrade to the previous release if the workflow runtime itself must be reverted. diff --git a/CHANGELOG.md b/CHANGELOG.md index 633012536b..70bacaa8e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,348 @@ 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.45.0 + +### @fusion/core + +#### Patch Changes + +- 26ebb92: Fix `reconcileOrphanedTaskDirs` silently resurrecting long-deleted tasks onto the live board after a restart ("all task IDs reset / starting over"). + + The sweep re-imports `.fusion/tasks//` directories that have no DB row, to recover heartbeat-created dirs that race store init or rows lost to a recent DB corruption. But it didn't distinguish a genuinely-recent orphan from an ancient deleted-task dir that merely lingered on disk. Modern deletes leave a soft-delete tombstone (caught by `taskIdExistsAnywhere`), but legacy hard-deletes left no tombstone — so a months-old `task.json` with no DB row was re-imported as a live task, surfacing old low-numbered IDs (FN-001, FN-002, …) at the top of the board. + + Reconcile now gates recovery on a recency window (`task.json` modified within the last 7 days). Older orphan dirs are skipped with reason `stale-orphan-dir-beyond-recency-window` and left for explicit recovery (unarchive/restore) or directory cleanup, while heartbeat-race and recent-corruption recovery still work. + +- 7e7eb62: Harden the orphan-worktree and stale-task-dir cleanup fixes (code-review follow-up). + + - **executor.ts (P0):** the stale-conflict recovery's `rm(worktreePath, { recursive, force })` had no bounds check. `worktreePath` can originate from a git worktree admin entry that resolves outside `.worktrees/`, so an out-of-bounds or symlinked path could be force-removed. The recovery now refuses unless the path is inside the configured worktrees dir, is not a symlink (checked via `realpathSync`), is not a registered git worktree, and is not actively owned — and it re-verifies liveness inside the catch rather than trusting the error string. It also excludes `spawn` failures (e.g. `spawn git ENOENT` when git is missing) so a missing-binary error is no longer misread as a successful stale-path cleanup. + - **worktree-pool.ts:** `resolveGitdirPointer` is replaced by `dotGitPointerIsDangling`, which reaps **only** when a `.git` link's gitdir target is confirmed missing. A real `.git` directory, an unparseable pointer, or any read/stat failure now returns "not dangling" (conservative) so a transient read error on a live worktree's `.git` can't cause a force-remove. Removes the `string | "directory" | null` sentinel union. + - **core store.ts:** the `reconcileOrphanedTaskDirs` recency window is now bypassed when the live task table is empty (the corruption/restore case — surviving `task.json` files keep old mtimes), and when a corrupt `fusion.db` was auto-recovered on startup, so `.recover` row loss is not stranded by the gate. Adds an `ignoreRecencyWindow` option for explicit callers. + - Tests for all of the above: executor recovery + out-of-bounds refusal, unparseable `.git` skip, recency boundary, empty-DB/forced bypass. + +### @fusion/dashboard + +#### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + - @fusion/engine@0.45.0 + - @fusion/i18n@0.39.8 + - @fusion-plugin-examples/cli-printing-press@0.1.25 + - @fusion-plugin-examples/compound-engineering@0.1.8 + - @fusion-plugin-examples/dependency-graph@0.1.39 + - @fusion-plugin-examples/roadmap@0.1.27 + - @fusion-plugin-examples/cursor-runtime@0.1.27 + - @fusion-plugin-examples/droid-runtime@0.1.34 + - @fusion-plugin-examples/hermes-runtime@0.2.58 + - @fusion-plugin-examples/openclaw-runtime@0.2.58 + - @fusion-plugin-examples/paperclip-runtime@0.2.58 + +### @fusion/desktop + +#### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + - @fusion/dashboard@0.45.0 + - @fusion/engine@0.45.0 + +### @fusion/engine + +#### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + - @fusion/pi-claude-cli@0.45.0 + +### @fusion/plugin-sdk + +#### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + +### @runfusion/fusion + +#### Minor Changes + +- 26e5514: Add the `factory-mono` dashboard color theme, a monochrome Factory variant with red accents and neutralized glow effects. +- 130fea2: Ask first-run users whether to create an optional first persistent agent after project registration, with CEO as the default template, skip support, and no duplicate GitHub star prompt. +- 70cce18: Add the `fn_agent_set_instructions` extension tool so managing agents can update direct or indirect reports' inline or file-backed instructions with org-hierarchy authorization. +- 8dd9697: Add an operator-triggered Command Center Productivity LOC backfill API and client for historical commit-association diff stats. +- f13aaa1: Add a Command Center GitHub resolved-issues detail list and expose the resolved issue rows in the GitHub analytics endpoint payload and CSV export. +- c158dda: Add the `xhigh` reasoning effort level to model settings and task/agent selectors. Claude CLI adapters pass the value through to runtime mapping, where non-Opus models use `high` effort and Opus models use `max` effort. +- 52924ba: Add a built-in lead-generation workflow with custom lead columns, fields, and stage prompts. +- 7f3e942: Add a built-in Design workflow that gates UI-heavy work with a design/UX review before standard review and merge. +- 281ce35: Add a built-in Marketing workflow with content-specific columns and prompts for brief, drafting, editorial review, and publishing. +- fbce59b: Add a core artifact registry data model and store APIs for persisted artifact metadata with on-disk binary storage. +- af06170: Add `fn_artifact_register`, `fn_artifact_list`, and `fn_artifact_view` agent tools for publishing and discovering multi-type artifacts, with best-effort dashboard user inbox notifications on registration. +- ef48895: Add dashboard artifact registry read APIs, client helpers, and a Documents-view Artifacts media gallery for images, videos, audio, documents, and generic artifacts. +- 58f7588: Add a Shadcn Custom dashboard theme with persisted, sanitized design-token color picker overrides across Settings and Command Center theme selectors. +- f80a785: Add pricing entries for OpenAI Codex models used through the `openai-codex` provider, so Command Center token analytics can estimate costs for Codex runs instead of showing them as unavailable. + + This is marked minor because it expands the set of priced models surfaced by the published CLI/dashboard without changing existing pricing behavior. + +- 09acfbb: Allow users to manually pause and unpause agent-assigned tasks from the dashboard task detail view and API. +- 4fec139: Move Stash Recovery into the Git Manager Recovery tab and remove the standalone top-level Stash Recovery view from dashboard navigation. +- 5b33da9: Move desktop toolbar tools into the right sidebar tools rail. The right dock now hosts Activity, Activity Log, Import from GitHub, Git Manager, Files, and Automation, and no longer duplicates left-sidebar content views. +- 7034b55: Move the dashboard terminal launcher to the footer executor status bar and add docked plus floating resizable terminal modes on desktop/tablet while preserving mobile fullscreen terminal behavior. +- a913881: Make the dashboard right dock persistent by default with an in-dock collapse toggle, and remove duplicate Header right-dock toggle behavior. +- 7fd14eb: Rename the task detail Documents tab to Artifacts and add a task-scoped media artifact gallery alongside existing task documents. +- 496167c: Polish dashboard navigation, floating modal, file browser, chat footer, agent role, insights, and list-view action surfaces for a more consistent responsive UI. +- eb3477a: Add a Command Center System node selector so local and registered remote node telemetry can be inspected from the dashboard. +- 59d3eee: Add estimated human hours saved to Command Center Productivity analytics, UI stats, and CSV exports. +- 2dc36d9: Import Tasks PR preview now shows the full comment thread and per-check status (with success/failure/pending indicators) for the selected pull request, fetched on selection and cached per PR. The body still renders immediately while checks and comments stream in. +- 7ef3817: Start the AI engine by default in `pnpm local`, keep dashboard `--dev` engine-on unless `--no-engine` is passed, start desktop local runtimes with engines, and show dashboard instructions when Fusion is launched without an engine. +- 7ddf58d: Sync workflow setting values across nodes in settings push, pull, receive, and status flows. +- 8640a74: The shared markdown renderer (GitHub PR/issue bodies + comments, mailbox, chat) now renders embedded raw HTML and mermaid diagrams. Raw HTML (`
`/``, ``, ``, tables) renders as real elements via `rehype-raw`, with `rehype-sanitize` stripping XSS (script/style/iframe, event handlers, `javascript:` URLs) since these bodies come from GitHub; HTML comments (``) are dropped. Fenced ```mermaid blocks render as actual diagrams via a lazy-loaded `mermaid` import (kept out of the main bundle, loaded only when a diagram is present), falling back to the raw code block on parse error and following the dashboard theme. +- 4fd8d44: Polish dashboard navigation and app chrome, add responsive chat/file/modal behavior, refine roadmaps, missions, task details, workflow defaults, theme defaults, and sidebar/header styling. +- 91180fb: Close the validator reaper→slice deadlock and harden every validation re-drive site for the new behavioral-verification posture. A reaped, task-less "done" feature (left in `loopState="validating"`/`needs_fix`+`error`) is now re-driven by recovery to a terminal pass/fail/inconclusive verdict instead of livelocking the slice, milestone, and mission. Adds an adversarial reliability suite enumerating every re-drive entry point (normal `processTaskOutcome`, each `recoverActiveMissions` branch, and the stale-run reaper) and asserting source-tree git-cleanliness, zero duplicate Fix Features, a terminal verdict, and no `error`-state deadlock. Documents the non-mutating verification run, the first-class `inconclusive` verdict, and the adversarial default-to-fail posture across `docs/missions.md`, `docs/missions-completion-contract.md`, and `CONCEPTS.md`. +- da5fea6: Add Shadcn color-variant dashboard themes for blue, green, red, purple, pink, orange, yellow, mono, and black variants. +- e19f7c2: Add a Shadcn dashboard color theme with zinc neutral tokens, sans-serif typography, 1px borders, subtle flat shadows, and solid primary buttons. +- b20a25c: Add the `shadcn-gray-blue` dashboard color theme with slate blue-gray surfaces and a muted slate-blue accent. +- 4672203: Add a Shadcn Gray dashboard color theme with a fully neutral zinc-gray accent. +- 12aae94: Add Shadcn Mono Red/Blue/Green/Purple/Pink/Orange/Yellow dashboard color themes and migrate legacy `shadcn-mono` selections to `shadcn-mono-red`. +- dc0064b: Dashboard navigation and panel redesign (desktop/tablet; mobile unchanged): + + - **Right sidebar**: a single show/hide toggle now lives in the top header (replacing the tablet overflow menu); the dock is hidden when closed and no longer keeps a persistent icon rail or in-dock collapse button. Its tools (Files — now the default/first tab, Activity, Activity Log, Git Manager) render inline inside the dock instead of opening popup modals. Files opens inline with a pop-out to the resizable file modal. The embedded Git Manager adapts to its width (compact horizontal tab strip in the dock, full two-pane in the wide pop-out). The dependency graph no longer appears in the dock. + - **Left sidebar**: New Task button matches the item-highlight box; footer spacing between Collapse and Settings; divider before the secondary section removed with uniform row spacing. New main-content destinations — Workflows, Import Tasks (GitHub import, with the GitHub mark), and Automations (two-pane, Command Center styling) — render in the main panel instead of as modals. + - **Embedded views**: Planning Mode embeds without modal chrome (no header/close/shadow), fills the full content area, and renders correctly on mobile; the board WorkflowSwitcher is available in Planning. Dev Server header matches Command Center. Insights header wraps so actions don't overlap. List view's left pane can be dragged much narrower with two-line title wrapping. + - **Other**: the docked terminal no longer blurs or blocks the page behind it; the footer Terminal button renders as plain text like the running-state trigger; the workflow selector matches the project selector's styling, height, and font size; the Automations screen uses theme color tokens. + +- 5697d2c: Skills view detail pane: render SKILL.md as Markdown (GFM + sanitized HTML + mermaid), compact the referenced-files area while showing all files, and make each file clickable to view its content with a "Back to SKILL.md" affordance. Adds a `GET /api/skills/:id/file` endpoint for per-file content. +- 5117944: Add Command Center Productivity task-duration analytics, dashboard stat cards, and CSV export rows for completed-task active execution time. +- d4e91d4: Add workflow optional steps: workflows can declare optional step templates that tasks toggle on/off per task, with a workflow-level default. The built-in coding and stepwise-coding workflows expose agent browser verification as an optional step (the stepwise workflow gains a pre-merge workflow-step seam so enabled steps actually run). Optional steps are authorable in the node editor, preserved across node-editor saves, and selectable from a steps dropdown in both the quick-add card and the full New Task modal. + +#### Patch Changes + +- c8a82e7: Auto-continue the agent session after an engine-internal pause/resume abort instead of re-queueing the task to todo. When the engine tears down in-flight work (hard-cancel) and the workflow graph run ends with the task back in `todo`, the executor now retries the agent session in place — bounded by the existing graph-resume retry budget with backoff, falling back to a benign re-queue only after retries are exhausted. Before re-dispatching, it re-checks the task at fire time and aborts the auto-continue if the task was paused, moved, or deleted during the backoff window, so genuine user/global/task pauses are never resumed against the operator's intent. The transient reclassification clears any stale `failed` status and emits an `Auto-recovered:` log so no spurious failure notification fires. +- ee9c8ab: Align dashboard view chrome and inner-pane spacing across Chat, Mailbox, Workflows, Artifacts-adjacent controls, Goals, and Compound Engineering. +- ce6c0fb: Polish dashboard view chrome: align Dashboard, Import Tasks, Automations, Chat, and docked Files editor controls with the shared view header and toolbar styling. +- 7635ba8: Fix a false "engine not running" banner when another fusion process on the same machine already owns the engine. The dashboard's health check only counted engines this process started, so a second launch (e.g. `pnpm dev dashboard` alongside an already-running `fusion`) that was correctly refused the per-machine engine singleton lock reported the engine as unavailable — even though one was running. The `ProjectEngineManager` now tracks engines owned by another process (detected via `EngineAlreadyRunningError` from the singleton lock) and exposes `hasRunningEngine()`, which the dashboard health endpoint uses so the banner reflects machine-level truth. Reconciliation still retries so this process takes over if the other exits, and the "refusing to start" log is emitted once per project instead of on every reconciliation tick. +- ce90cc9: Keep Fusion verification progress moving by making targeted script tests honor file arguments, reaping verification subprocess groups after clean exits, and preventing the line-count audit from blocking `pnpm test`. The changed-test runner now caps reverse-dependent fan-out so a foundational-package edit no longer expands into a whole-workspace run, and the executor/verification guidance now directs agents to scope verification to changed files rather than running the full workspace test suite. +- 5a422b0: Fix anthropic-compatible custom providers failing with "No API provider registered for api: anthropic". + + `resolveCustomProviderApiType` mapped the `anthropic-compatible` provider type to the api key `"anthropic"`, but pi-ai registers the Anthropic Messages API under `"anthropic-messages"`. Any custom provider configured as `anthropic-compatible` (self-hosted Claude proxy, gateway, etc.) therefore selected a model whose `api` did not match a registered provider and threw at stream time. Mapped it to `"anthropic-messages"` and added a regression assertion alongside the existing openai-compatible / openai-responses coverage. + +- 2d32760: Clear the stale `failed` status when a pause/resume abort is reclassified as a benign todo re-queue, so the task no longer surfaces as failed on the board and the deferred failure notification is suppressed. Previously a pause-abort parked `status:"failed"` on an earlier non-todo observation stayed dispatchable (the scheduler filters on column+paused, not status), re-entered the benign-todo branch, and was logged benign while the row stayed failed — firing a contradictory failure alert during global pause when self-healing recovery was suppressed. The clear path also emits an `Auto-recovered:`-prefixed log so the notification service proactively cancels the pending failure timer instead of relying only on the fire-time re-check. +- b564ee0: Make the compound-engineering built-in workflow actually load skills and run the full CE flow. Previously the workflow named CE skills at each node but the graph-node execution path (`runGraphCustomNode`) never loaded them: the named skill was only injected as prompt text, the plugin-injected `FUSION_CE_*` runtime env never reached the step session, and `fn_spawn_agent` was never registered for workflow steps, so persona fan-out and skill loading silently no-op'd. Now skill-executor graph steps thread the injected env, load the named skill (discovery + selection via `additionalSkillPaths`), register the spawn tool in coding mode, and receive an engine-injected Fusion workflow-step conventions preamble (await-input for questions, `FUSION_HEADLESS` degrade path, persona fan-out via `systemPromptOverride`). Adds an explicit `unattended` opt-in for `FUSION_HEADLESS`, reconciles the preamble with the gate verdict-JSON contract, and carries `skillName` through the `WorkflowStep` round-trip. +- 8b5b9a7: Fix the persistent non-blocking Full Suite failure caused by the Compound Engineering plugin's `dist-freshness.test.ts`. The test reads the plugin's compiled `dist/settings.js` and `dist/session/orchestrator.js`, but the plugin had no `pretest` build and was absent from `ensure-test-artifacts.mjs`, so on a fresh checkout `dist/` did not exist and the freshness guard threw "dist/ is missing — run pnpm build first". Register the plugin's required artifacts in `ensure-test-artifacts.mjs` and add a `pretest` hook that builds them, matching the other bundled plugins. +- 68c4053: Fix the Droid runtime model discovery spawning a runaway storm of leaked `droid` processes. + + `discoverDroidModels` invoked `droid models --json` / `droid model list --json`, but the droid CLI has no such commands — an unknown subcommand is parsed as a _prompt_, so each call launched a full agent session (a persistent `droid exec --stream-jsonrpc` backend) that never exited. The promise never settled and the process leaked; because the dashboard re-loads the droid extension on every chat-send, these piled up into dozens of orphaned `droid` processes. + + Discovery now reads the catalog from `droid exec --help` (which lists `Available Models:` + `Custom Models:` and exits cleanly), parsed via the new `parseDroidModelsFromHelp` helper. A SIGKILL-on-timeout guard (`DROID_MODEL_DISCOVERY_TIMEOUT_MS`) ensures any wedged spawn is killed and the promise always settles, so a single discovery call can never leak a process again. Verified end-to-end against the real binary (46 models incl. custom, 0 leaked processes). + +- 9101705: Show plugin-contributed skills (e.g. compound-engineering `ce-*`) in the workflow editor. The dashboard's discovered-skills catalog was built only from the disk-scanning package manager, so plugin skills — which the engine materializes for executor sessions separately — never appeared, and built-in workflow nodes that reference them (like `builtin:compound-engineering`) showed "— select skill —" / unresolved. The skills adapter now merges plugin skill contributions into the discovered list (deduped by bare name), and the editor's node summary + skill dropdown match namespaced skillNames (`compound-engineering:ce-work`) against the catalog's two-segment names (`ce-work/SKILL.md`) via a shared bare-name normalizer. +- 3b61ac3: Fix loading spinners that didn't spin across the dashboard. Many loading states (Settings, task tabs, agents, documents, plugins, model pickers, command center, and more) rendered bare "Loading…" text with no spinner — and a couple rendered an unstyled `loading-spinner` div that never showed anything. Added a shared `` component (self-contained animated SVG, no `lucide-react` dependency so it survives partial test mocks) and adopted it across ~45 loading placeholders so every loading state now shows a consistent animated spinner. +- d99246c: Fix macOS system memory usage reporting by deriving host memory used from OS-available memory instead of raw `os.freemem()` pages. +- 438cd75: Fix worktree-creation failures (and the `Workflow graph terminated with failure at node 'execute'` they surface as) caused by leaked orphan worktree directories. + + A directory under `.worktrees/` that survives with a _dangling_ `.git` pointer — present on disk, but the `.git/worktrees/` admin entry it references is gone — is invisible to `git worktree list` and untouched by `git worktree prune`, yet collides with a freshly generated worktree name. When the executor then tries to clean up the "conflict", `git worktree remove --force` fails with `is not a working tree` and the whole `execute` node fails after 3 attempts. + + - **On-demand recovery (`executor.ts`):** the FN-4813 stale-conflict recovery now also treats `is not a working tree` and `ENOENT` (not just `validation failed, cannot remove working tree`) as "no live worktree at this path" — it prunes any admin entry, force-removes the leftover directory, and proceeds with fresh worktree creation instead of failing. + - **Leak prevention (`worktree-pool.ts`):** `reapOrphanWorktrees` previously skipped any dir on the mere _presence_ of a `.git` file ("may be partially registered"), contradicting its own documented invariant. It now resolves the `.git` pointer and only skips when the gitdir target actually exists; a dangling pointer is reaped like any other half-initialized orphan, so these directories no longer accumulate across runs. + +- 9643563: Fix the global pause/resume failure mode that stalled the board: a pause-abort that left a task back in `todo` was parked `status:"failed"` ("operator action required") and leaked its in-memory worktree slot, producing an instant re-fail retry storm and concurrency-starving the whole queue. + + - Root cause: `handleGraphFailure` now treats a pause-abort that has re-queued a task to `todo` as benign (FN-6782) — it no longer parks it failed, clears the `pausedAborted` marker so the next dispatch starts clean, and releases the leaked worktree slot. + - Auto-recovery: a new `recoverPausedAbortFailures` self-healing sweep clears any pause-abort park (`status:"failed"` with "operator action required") still on the board and requeues it for normal scheduling, so the board self-heals without operator intervention. + - Defense-in-depth: a new `reapLeakedConcurrencySlots` self-healing sweep reclaims any in-memory worktree slot whose holder is no longer in-progress (the "in todo yet still a `maxWorktrees` holder" leak), gated by the executor's live-session refusal so it can never pull a worktree out from under a running agent. This recovers a leaked slot from any future/unknown path without an engine restart. + +- 24ff124: Stop edits to `scripts/lib/test-quarantine.json` from forcing `pnpm test` into gate mode. The quarantine list is runtime data, not executable test infra; tripping the shared-infra catch-all dropped affected-package coverage, so a dev's real changes went untested whenever they also touched the quarantine list. Quarantine edits now stay in changed mode and run the affected packages. +- a2342ca: Fix the task detail chat always showing "No agent is working on this task" for in-progress tasks. The active-session check required a persistent `assignedAgentId`/`checkedOutBy`, but in the default ephemeral-agents mode the scheduler never sets those fields, so an actively-executing task always read as idle. An assignment is now sufficient-but-not-necessary: a non-blocked, non-`queued` in-progress task counts as a live agent session on its own (`queued` stays assignment-gated, in-review is unchanged). +- 7e7eb62: Harden the orphan-worktree and stale-task-dir cleanup fixes (code-review follow-up). + + - **executor.ts (P0):** the stale-conflict recovery's `rm(worktreePath, { recursive, force })` had no bounds check. `worktreePath` can originate from a git worktree admin entry that resolves outside `.worktrees/`, so an out-of-bounds or symlinked path could be force-removed. The recovery now refuses unless the path is inside the configured worktrees dir, is not a symlink (checked via `realpathSync`), is not a registered git worktree, and is not actively owned — and it re-verifies liveness inside the catch rather than trusting the error string. It also excludes `spawn` failures (e.g. `spawn git ENOENT` when git is missing) so a missing-binary error is no longer misread as a successful stale-path cleanup. + - **worktree-pool.ts:** `resolveGitdirPointer` is replaced by `dotGitPointerIsDangling`, which reaps **only** when a `.git` link's gitdir target is confirmed missing. A real `.git` directory, an unparseable pointer, or any read/stat failure now returns "not dangling" (conservative) so a transient read error on a live worktree's `.git` can't cause a force-remove. Removes the `string | "directory" | null` sentinel union. + - **core store.ts:** the `reconcileOrphanedTaskDirs` recency window is now bypassed when the live task table is empty (the corruption/restore case — surviving `task.json` files keep old mtimes), and when a corrupt `fusion.db` was auto-recovered on startup, so `.recover` row loss is not stranded by the gate. Adds an `ignoreRecencyWindow` option for explicit callers. + - Tests for all of the above: executor recovery + out-of-bounds refusal, unparseable `.git` skip, recency boundary, empty-DB/forced bypass. + +- 87f18f8: Track real plugin activation events and surface project-scoped Command Center plugin activation analytics instead of placeholder ecosystem counts. +- ee72c94: Move the Command Center Overview SDLC throughput funnel to the bottom of the tab and broaden hand-rolled chart primitive colors to cycle through existing semantic theme tokens. +- 8f052c6: Fix Command Center Activity trend charts so mixed-unit agent/activity series stay visually legible instead of being flattened by high-volume message counts. +- df139ec: Recover in-progress tasks wedged behind stale in-memory executor bindings by clearing the phantom binding and requeueing with progress and worktree preserved. +- e6f6111: Fix terminal shortcut focus preservation so on-screen Ctrl combinations emit control bytes reliably on touch and pointer devices while keeping physical Ctrl behavior intact. +- d4d7623: Rebaseline the dashboard i18n lint guardrail by excluding non-shipping tests and stories, suppressing technical token categories, localizing plugin missing-view copy, and tracking remaining source-copy deferrals with narrow follow-up tasks. +- 98720f3: Fix mobile bottom tab navigation icon spacing so every tab uses an equal-width column across optional tabs, badges, and status dots. +- c4f34ce: Make the Agents view sidebar wider by default on tablet and resizable with per-project persistence on non-mobile layouts. +- b760fa0: Localize remaining plugin, agent, mission, node, research, document, activity, and miscellaneous dashboard strings and remove their i18n lint deferrals. +- bdf95f8: Localized the dashboard workflow/task/setup/PR component cluster and removed the obsolete i18n lint deferrals for those files so the hardcoded-string guardrail scans them again. +- eca96fb: Keep settings section dashboard copy covered by i18n lint by removing the settings/sections deferral and regenerating i18n resource types. +- c808177: Eliminate the legacy board flash before workflow lanes load by caching per-project board workflow metadata and showing a neutral skeleton while metadata resolves. +- 0c0fda1: Keep Command Center inline next to Agents across desktop and tablet header widths instead of moving it into the More views overflow menu. +- c32c925: Repair task-store startup and self-healing consistency by non-destructively re-importing orphaned live `.fusion/tasks/{ID}/task.json` records into the SQLite task index while preserving soft-deleted, archived, and tombstoned IDs. +- d2fc70a: Fix dependency gating so workflow-graph and workflow-authoritative executor dispatches re-check unmet task dependencies before running, requeueing blocked work with `blockedBy` instead of allowing it to advance to review. + + Add self-healing reconciliation for already-advanced `in-review` tasks with unmet dependencies, including the `task:reconcile-in-review-unmet-dependencies` run-audit event and guarded no-action companion. + +- 08d1f09: Recover benign in-review pause/resume abort parks without requiring operator intervention while preserving hard-cancel, pause, and terminal merge safeguards. +- 61ff17a: Harden in-review dependency drift reconciliation so guard-held or failed rebounds emit no-action audit evidence instead of silently wedging dependent tasks. +- 26bd85d: Fix mobile bottom navigation icon alignment so unread indicators use a centered token-sized icon slot without visually skewing tab spacing. +- 37c4cfa: Prevent bundled Droid and Claude CLI auth/presence probes from surfacing unhandled promise rejections when `spawn` throws synchronously, such as when test guards block real AI CLI auth commands. These probes now resolve as unavailable/unauthenticated instead of rejecting from fire-and-forget validation paths. +- 185ff70: Fix the experimental left sidebar Settings button so it remains clear of the fixed executor status footer, and keep project-selector fallback labels readable when translations are incomplete. +- c7b56a5: Stop triage and planning prompts from auto-selecting alternate workflows based on task type; agents now preserve the project default workflow unless the user explicitly requests a specific workflow. +- c18e827: Await CLI extension cached TaskStore shutdown so deferred filesystem writes and SQLite handles drain before fixture or process cleanup. +- 8c478ad: Fix stale board entries after dependency-driven task re-specification moves by syncing the watched task cache after `updateTaskDependencies` writes and defensively deduplicating `listTasks` rows so active task rows win over archived snapshots. +- 47ba99a: Bump the internal @earendil-works pi SDK family from ^0.79.1 to ^0.79.9 for the CLI, dashboard, and engine packages. +- 24c1c02: Fix dashboard toast text colors so Shadcn dark-mode success, info, and error notifications remain readable against their themed backgrounds. +- 1f23a2e: Ensure bundled Droid CLI provider startup registers without waiting for local `droid` probes and harden binary probes so missing, guarded, or hanging spawns resolve to unavailable sentinels instead of delaying engine boot. +- 15d427b: Move Planning Mode into the dashboard sidebar as a first-class embedded view while removing the desktop toolbar affordance. +- 91971b6: Update the built-in compound-engineering workflow so its Review stage runs the `compound-engineering:ce-code-review` skill directly. The redundant generic reviewer seam node was removed, leaving the CE code-review gate as the sole review stage. +- c4c8961: Tasks created from a selected non-default workflow lane now appear on that lane immediately instead of vanishing until the board-workflows metadata refetch catches up. +- 4342172: Built-in compound-engineering workflow prompts now explicitly call out the `/ce-` skill slash command at each stage. +- bb663a4: Improve bundled non-coding workflow prompts so marketing, lead-generation, and design runs produce structured deliverables, with content and design preview artifacts persisted for review. +- f4d2fa2: Hide the dashboard AI subtask-breakdown quick-add button behind the default-off `subtaskBreakdown` experimental feature flag. +- 5191e1f: Prevent the bundled Droid CLI extension from starting local `droid` probes during server boot; validation now runs only when a Droid stream is actually used while existing probe paths remain non-interactive and timeout-bounded. +- 4879996: Restyle the workflow switcher trigger and dropdown to visually match the project selector. +- ec1d29e: Prevent task worktree acquisition from returning the project repository root by enforcing a non-root postcondition across resume, pooled, and fresh checkout paths. +- c229a15: Tighten agent workflow-routing prompt policy so triage and executor agents must not move a task's workflow unless the user explicitly requested it or the agent created that task. Executor prompts now include an explicit `fn_workflow_select` guardrail while preserving workflow selection for tasks agents create. +- 849b40d: Keep workflow IR and effective-settings resolution usable when project identity lookup fails, falling back to declaration defaults instead of propagating the identity error. +- 9218613: Fix auto-merge lifecycle finalization so successful squash commits reliably leave tasks done, clear transient auto-merge state, and preserve actionable failure state when lifecycle updates fail. +- 6e563b9: Revalidate dashboard service-worker assets before falling back to cache so rebuilt tabs cannot stay on stale bundles and render a blank page. +- a1cac3a: Replace the compact Quick Chat implementation with the full Chat modal launcher and configurable footer/FAB/off setting, move the file browser into the shared floating-window shell with a compact New menu and consistent narrow editor toolbar, fit the dependency graph after layout settles, and align chat/mailbox/task-detail expansion plus header/theme polish. +- 67281fe: Fix Import from GitHub remote detection in multi-project dashboards by passing the active `projectId` to the `/api/git/remotes` lookup. The dialog now lists configured GitHub remotes instead of showing "No GitHub remotes detected" when the backend requires project scope. +- a147a98: Prevent global settings updates from overwriting an existing unreadable settings file with defaults, and use provider/CPU icons in task chat agent headers. +- e788537: Raise the minimum agent heartbeat staleness floor from 5 to 10 minutes. Agents go silent during long-running but legitimate work (notably a verification step running a multi-minute test command, where the agent is blocked awaiting the command and cannot tick/heartbeat). The 5-minute floor could misread such a busy agent as dead and reclaim its in-progress task mid-run; 10 minutes gives long operations room before the liveness gate acts. +- 4ed84be: Polish mobile workflow header alignment, task chat provider icons, modal overlay chrome, and shadcn font consistency. +- a6685b7: Check for duplicate tasks from the New Task dialog and show duplicate descriptions in the warning modal. +- f0fbc59: Update first-run onboarding to include an optional first-agent step and clearer temporary-agent task guidance. +- 36b8950: Carry the selected workflow lane through Planning Mode and Subtask Breakdown task creation so saved tasks appear on the active workflow instead of falling back to the main board. +- 93017a3: Preserve task progress when a single-session run is hard-cancelled mid-execution. When the engine aborted in-flight work and bounced the task back to `todo`, the single-session teardown cleared the task `branch` and re-queued without `preserveResumeState` — resetting every step to `pending` and dropping the pointer to commits already on the task branch, so the next dispatch re-planned from Step 0 and the committed work was stranded (observed as a task that "lost all progress" and got stuck). The teardown now keeps the branch and moves with `preserveResumeState` whenever the task has resumable step progress, matching the step-session and pause-park paths, so execution resumes onto the existing branch from the first incomplete step. The worktree is still removed to free its concurrency slot — only the durable pointers (branch + step state) are kept. +- 192a2f2: Preserve unrelated global settings when saving Settings sections, and graduate Chat Rooms, Goals, Memory, Insights, Skills, and Todo to default-on dashboard surfaces. +- 2e3b965: Smooth the mobile Quick Chat fullscreen sheet during Android soft-keyboard viewport resizing while preserving synchronous iOS visualViewport alignment. +- b9b9447: Reset a task's stuck-kill streak on genuine forward progress. `stuckKillCount` was a lifetime counter — incremented by self-healing on each stuck-kill and cleared only by a manual retry — so a long, genuinely-progressing task could be terminalized by accumulation toward the stuck-kill budget. It now resets when a step reaches a terminal forward status (done/skipped), so only consecutive no-progress stalls count toward the budget. +- 192a2f2: Open task-card files changed actions in the inline task detail Changes tab instead of the task modal. +- 5e55d9c: Show provider icons in task detail chat for default-backed executor, reviewer, planner, and merger models. +- 19be91c: Floating modals (the reusable FloatingWindow, the right-dock pop-out, the floating terminal, and the floating New Task dialog) now share a single z-index stack, so tapping any of them brings it to the front above all the others regardless of type. +- 65c4dc5: Graduate workflow columns and the workflow graph executor to the default runtime path. + + Upgrade notes: stale persisted `experimentalFeatures.workflowColumns` and `experimentalFeatures.workflowGraphExecutor` values are ignored by the engine, so prior installs keep dispatching tasks through the workflow runtime after upgrade. `workflowInterpreterDualObserve` remains an internal diagnostic and defaults off. + + If an upgraded project appears stalled, treat `todo` tasks with unmet dependencies, `paused`/`userPaused`, active checkout leases, unavailable assigned nodes, or file-scope overlap as intentionally parked. Eligible `todo` tasks without those blockers should be picked up by the workflow scheduler; eligible `in-progress` rows without a live executor are recovered through the normal orphan-resume/self-healing path. The old Experimental toggles are no longer a rollback switch; use a source rollback/downgrade to the previous release if the workflow runtime itself must be reverted. + +### runfusion.ai + +#### Patch Changes + +- Updated dependencies [c8a82e7] +- Updated dependencies [ee9c8ab] +- Updated dependencies [ce6c0fb] +- Updated dependencies [7635ba8] +- Updated dependencies [26e5514] +- Updated dependencies [ce90cc9] +- Updated dependencies [130fea2] +- Updated dependencies [5a422b0] +- Updated dependencies [2d32760] +- Updated dependencies [b564ee0] +- Updated dependencies [8b5b9a7] +- Updated dependencies [68c4053] +- Updated dependencies [9101705] +- Updated dependencies [3b61ac3] +- Updated dependencies [d99246c] +- Updated dependencies [438cd75] +- Updated dependencies [9643563] +- Updated dependencies [24ff124] +- Updated dependencies [a2342ca] +- Updated dependencies [7e7eb62] +- Updated dependencies [87f18f8] +- Updated dependencies [70cce18] +- Updated dependencies [8dd9697] +- Updated dependencies [ee72c94] +- Updated dependencies [f13aaa1] +- Updated dependencies [8f052c6] +- Updated dependencies [df139ec] +- Updated dependencies [e6f6111] +- Updated dependencies [c158dda] +- Updated dependencies [d4d7623] +- Updated dependencies [52924ba] +- Updated dependencies [7f3e942] +- Updated dependencies [281ce35] +- Updated dependencies [98720f3] +- Updated dependencies [c4f34ce] +- Updated dependencies [b760fa0] +- Updated dependencies [bdf95f8] +- Updated dependencies [eca96fb] +- Updated dependencies [c808177] +- Updated dependencies [fbce59b] +- Updated dependencies [af06170] +- Updated dependencies [ef48895] +- Updated dependencies [0c0fda1] +- Updated dependencies [c32c925] +- Updated dependencies [d2fc70a] +- Updated dependencies [08d1f09] +- Updated dependencies [61ff17a] +- Updated dependencies [26bd85d] +- Updated dependencies [37c4cfa] +- Updated dependencies [58f7588] +- Updated dependencies [185ff70] +- Updated dependencies [c7b56a5] +- Updated dependencies [c18e827] +- Updated dependencies [8c478ad] +- Updated dependencies [47ba99a] +- Updated dependencies [24c1c02] +- Updated dependencies [f80a785] +- Updated dependencies [09acfbb] +- Updated dependencies [1f23a2e] +- Updated dependencies [4fec139] +- Updated dependencies [5b33da9] +- Updated dependencies [15d427b] +- Updated dependencies [7034b55] +- Updated dependencies [91971b6] +- Updated dependencies [a913881] +- Updated dependencies [c4c8961] +- Updated dependencies [4342172] +- Updated dependencies [bb663a4] +- Updated dependencies [7fd14eb] +- Updated dependencies [f4d2fa2] +- Updated dependencies [5191e1f] +- Updated dependencies [4879996] +- Updated dependencies [ec1d29e] +- Updated dependencies [c229a15] +- Updated dependencies [849b40d] +- Updated dependencies [9218613] +- Updated dependencies [6e563b9] +- Updated dependencies [496167c] +- Updated dependencies [a1cac3a] +- Updated dependencies [eb3477a] +- Updated dependencies [59d3eee] +- Updated dependencies [2dc36d9] +- Updated dependencies [67281fe] +- Updated dependencies [a147a98] +- Updated dependencies [e788537] +- Updated dependencies [7ef3817] +- Updated dependencies [7ddf58d] +- Updated dependencies [8640a74] +- Updated dependencies [4ed84be] +- Updated dependencies [a6685b7] +- Updated dependencies [f0fbc59] +- Updated dependencies [36b8950] +- Updated dependencies [4fd8d44] +- Updated dependencies [93017a3] +- Updated dependencies [91180fb] +- Updated dependencies [192a2f2] +- Updated dependencies [da5fea6] +- Updated dependencies [e19f7c2] +- Updated dependencies [b20a25c] +- Updated dependencies [4672203] +- Updated dependencies [12aae94] +- Updated dependencies [dc0064b] +- Updated dependencies [5697d2c] +- Updated dependencies [2e3b965] +- Updated dependencies [5117944] +- Updated dependencies [b9b9447] +- Updated dependencies [192a2f2] +- Updated dependencies [5e55d9c] +- Updated dependencies [19be91c] +- Updated dependencies [d4e91d4] +- Updated dependencies [65c4dc5] + - @runfusion/fusion@0.45.0 + ## 0.44.0 ### @fusion/dashboard @@ -9322,6 +9664,16 @@ for reference. - Updated dependencies [a2ed6d0] - @runfusion/fusion@0.1.0 +## 0.39.8 + +### @fusion/i18n + +#### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + ## 0.39.7 ### @fusion/i18n @@ -9378,6 +9730,14 @@ for reference. - @fusion/core@0.40.0 +## 0.11.34 + +### @fusion/droid-cli + +#### Patch Changes + +- @fusion-plugin-examples/droid-runtime@0.1.34 + ## 0.11.33 ### @fusion/droid-cli diff --git a/package.json b/package.json index bd0d16f998..a84956fcbe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fusion-workspace", - "version": "0.44.0", + "version": "0.45.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 236d40841d..4d44780ba9 100644 --- a/packages/cli-alias/CHANGELOG.md +++ b/packages/cli-alias/CHANGELOG.md @@ -1,5 +1,122 @@ # runfusion.ai +## 0.45.0 + +### Patch Changes + +- Updated dependencies [c8a82e7] +- Updated dependencies [ee9c8ab] +- Updated dependencies [ce6c0fb] +- Updated dependencies [7635ba8] +- Updated dependencies [26e5514] +- Updated dependencies [ce90cc9] +- Updated dependencies [130fea2] +- Updated dependencies [5a422b0] +- Updated dependencies [2d32760] +- Updated dependencies [b564ee0] +- Updated dependencies [8b5b9a7] +- Updated dependencies [68c4053] +- Updated dependencies [9101705] +- Updated dependencies [3b61ac3] +- Updated dependencies [d99246c] +- Updated dependencies [438cd75] +- Updated dependencies [9643563] +- Updated dependencies [24ff124] +- Updated dependencies [a2342ca] +- Updated dependencies [7e7eb62] +- Updated dependencies [87f18f8] +- Updated dependencies [70cce18] +- Updated dependencies [8dd9697] +- Updated dependencies [ee72c94] +- Updated dependencies [f13aaa1] +- Updated dependencies [8f052c6] +- Updated dependencies [df139ec] +- Updated dependencies [e6f6111] +- Updated dependencies [c158dda] +- Updated dependencies [d4d7623] +- Updated dependencies [52924ba] +- Updated dependencies [7f3e942] +- Updated dependencies [281ce35] +- Updated dependencies [98720f3] +- Updated dependencies [c4f34ce] +- Updated dependencies [b760fa0] +- Updated dependencies [bdf95f8] +- Updated dependencies [eca96fb] +- Updated dependencies [c808177] +- Updated dependencies [fbce59b] +- Updated dependencies [af06170] +- Updated dependencies [ef48895] +- Updated dependencies [0c0fda1] +- Updated dependencies [c32c925] +- Updated dependencies [d2fc70a] +- Updated dependencies [08d1f09] +- Updated dependencies [61ff17a] +- Updated dependencies [26bd85d] +- Updated dependencies [37c4cfa] +- Updated dependencies [58f7588] +- Updated dependencies [185ff70] +- Updated dependencies [c7b56a5] +- Updated dependencies [c18e827] +- Updated dependencies [8c478ad] +- Updated dependencies [47ba99a] +- Updated dependencies [24c1c02] +- Updated dependencies [f80a785] +- Updated dependencies [09acfbb] +- Updated dependencies [1f23a2e] +- Updated dependencies [4fec139] +- Updated dependencies [5b33da9] +- Updated dependencies [15d427b] +- Updated dependencies [7034b55] +- Updated dependencies [91971b6] +- Updated dependencies [a913881] +- Updated dependencies [c4c8961] +- Updated dependencies [4342172] +- Updated dependencies [bb663a4] +- Updated dependencies [7fd14eb] +- Updated dependencies [f4d2fa2] +- Updated dependencies [5191e1f] +- Updated dependencies [4879996] +- Updated dependencies [ec1d29e] +- Updated dependencies [c229a15] +- Updated dependencies [849b40d] +- Updated dependencies [9218613] +- Updated dependencies [6e563b9] +- Updated dependencies [496167c] +- Updated dependencies [a1cac3a] +- Updated dependencies [eb3477a] +- Updated dependencies [59d3eee] +- Updated dependencies [2dc36d9] +- Updated dependencies [67281fe] +- Updated dependencies [a147a98] +- Updated dependencies [e788537] +- Updated dependencies [7ef3817] +- Updated dependencies [7ddf58d] +- Updated dependencies [8640a74] +- Updated dependencies [4ed84be] +- Updated dependencies [a6685b7] +- Updated dependencies [f0fbc59] +- Updated dependencies [36b8950] +- Updated dependencies [4fd8d44] +- Updated dependencies [93017a3] +- Updated dependencies [91180fb] +- Updated dependencies [192a2f2] +- Updated dependencies [da5fea6] +- Updated dependencies [e19f7c2] +- Updated dependencies [b20a25c] +- Updated dependencies [4672203] +- Updated dependencies [12aae94] +- Updated dependencies [dc0064b] +- Updated dependencies [5697d2c] +- Updated dependencies [2e3b965] +- Updated dependencies [5117944] +- Updated dependencies [b9b9447] +- Updated dependencies [192a2f2] +- Updated dependencies [5e55d9c] +- Updated dependencies [19be91c] +- Updated dependencies [d4e91d4] +- Updated dependencies [65c4dc5] + - @runfusion/fusion@0.45.0 + ## 0.44.0 ### Patch Changes diff --git a/packages/cli-alias/package.json b/packages/cli-alias/package.json index dd8269ff97..1416012849 100644 --- a/packages/cli-alias/package.json +++ b/packages/cli-alias/package.json @@ -1,6 +1,6 @@ { "name": "runfusion.ai", - "version": "0.44.0", + "version": "0.45.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 291c0c3ba0..9c975fcd19 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,165 @@ # @runfusion/fusion +## 0.45.0 + +### Minor Changes + +- 26e5514: Add the `factory-mono` dashboard color theme, a monochrome Factory variant with red accents and neutralized glow effects. +- 130fea2: Ask first-run users whether to create an optional first persistent agent after project registration, with CEO as the default template, skip support, and no duplicate GitHub star prompt. +- 70cce18: Add the `fn_agent_set_instructions` extension tool so managing agents can update direct or indirect reports' inline or file-backed instructions with org-hierarchy authorization. +- 8dd9697: Add an operator-triggered Command Center Productivity LOC backfill API and client for historical commit-association diff stats. +- f13aaa1: Add a Command Center GitHub resolved-issues detail list and expose the resolved issue rows in the GitHub analytics endpoint payload and CSV export. +- c158dda: Add the `xhigh` reasoning effort level to model settings and task/agent selectors. Claude CLI adapters pass the value through to runtime mapping, where non-Opus models use `high` effort and Opus models use `max` effort. +- 52924ba: Add a built-in lead-generation workflow with custom lead columns, fields, and stage prompts. +- 7f3e942: Add a built-in Design workflow that gates UI-heavy work with a design/UX review before standard review and merge. +- 281ce35: Add a built-in Marketing workflow with content-specific columns and prompts for brief, drafting, editorial review, and publishing. +- fbce59b: Add a core artifact registry data model and store APIs for persisted artifact metadata with on-disk binary storage. +- af06170: Add `fn_artifact_register`, `fn_artifact_list`, and `fn_artifact_view` agent tools for publishing and discovering multi-type artifacts, with best-effort dashboard user inbox notifications on registration. +- ef48895: Add dashboard artifact registry read APIs, client helpers, and a Documents-view Artifacts media gallery for images, videos, audio, documents, and generic artifacts. +- 58f7588: Add a Shadcn Custom dashboard theme with persisted, sanitized design-token color picker overrides across Settings and Command Center theme selectors. +- f80a785: Add pricing entries for OpenAI Codex models used through the `openai-codex` provider, so Command Center token analytics can estimate costs for Codex runs instead of showing them as unavailable. + + This is marked minor because it expands the set of priced models surfaced by the published CLI/dashboard without changing existing pricing behavior. + +- 09acfbb: Allow users to manually pause and unpause agent-assigned tasks from the dashboard task detail view and API. +- 4fec139: Move Stash Recovery into the Git Manager Recovery tab and remove the standalone top-level Stash Recovery view from dashboard navigation. +- 5b33da9: Move desktop toolbar tools into the right sidebar tools rail. The right dock now hosts Activity, Activity Log, Import from GitHub, Git Manager, Files, and Automation, and no longer duplicates left-sidebar content views. +- 7034b55: Move the dashboard terminal launcher to the footer executor status bar and add docked plus floating resizable terminal modes on desktop/tablet while preserving mobile fullscreen terminal behavior. +- a913881: Make the dashboard right dock persistent by default with an in-dock collapse toggle, and remove duplicate Header right-dock toggle behavior. +- 7fd14eb: Rename the task detail Documents tab to Artifacts and add a task-scoped media artifact gallery alongside existing task documents. +- 496167c: Polish dashboard navigation, floating modal, file browser, chat footer, agent role, insights, and list-view action surfaces for a more consistent responsive UI. +- eb3477a: Add a Command Center System node selector so local and registered remote node telemetry can be inspected from the dashboard. +- 59d3eee: Add estimated human hours saved to Command Center Productivity analytics, UI stats, and CSV exports. +- 2dc36d9: Import Tasks PR preview now shows the full comment thread and per-check status (with success/failure/pending indicators) for the selected pull request, fetched on selection and cached per PR. The body still renders immediately while checks and comments stream in. +- 7ef3817: Start the AI engine by default in `pnpm local`, keep dashboard `--dev` engine-on unless `--no-engine` is passed, start desktop local runtimes with engines, and show dashboard instructions when Fusion is launched without an engine. +- 7ddf58d: Sync workflow setting values across nodes in settings push, pull, receive, and status flows. +- 8640a74: The shared markdown renderer (GitHub PR/issue bodies + comments, mailbox, chat) now renders embedded raw HTML and mermaid diagrams. Raw HTML (`
`/``, ``, ``, tables) renders as real elements via `rehype-raw`, with `rehype-sanitize` stripping XSS (script/style/iframe, event handlers, `javascript:` URLs) since these bodies come from GitHub; HTML comments (``) are dropped. Fenced ```mermaid blocks render as actual diagrams via a lazy-loaded `mermaid` import (kept out of the main bundle, loaded only when a diagram is present), falling back to the raw code block on parse error and following the dashboard theme. +- 4fd8d44: Polish dashboard navigation and app chrome, add responsive chat/file/modal behavior, refine roadmaps, missions, task details, workflow defaults, theme defaults, and sidebar/header styling. +- 91180fb: Close the validator reaper→slice deadlock and harden every validation re-drive site for the new behavioral-verification posture. A reaped, task-less "done" feature (left in `loopState="validating"`/`needs_fix`+`error`) is now re-driven by recovery to a terminal pass/fail/inconclusive verdict instead of livelocking the slice, milestone, and mission. Adds an adversarial reliability suite enumerating every re-drive entry point (normal `processTaskOutcome`, each `recoverActiveMissions` branch, and the stale-run reaper) and asserting source-tree git-cleanliness, zero duplicate Fix Features, a terminal verdict, and no `error`-state deadlock. Documents the non-mutating verification run, the first-class `inconclusive` verdict, and the adversarial default-to-fail posture across `docs/missions.md`, `docs/missions-completion-contract.md`, and `CONCEPTS.md`. +- da5fea6: Add Shadcn color-variant dashboard themes for blue, green, red, purple, pink, orange, yellow, mono, and black variants. +- e19f7c2: Add a Shadcn dashboard color theme with zinc neutral tokens, sans-serif typography, 1px borders, subtle flat shadows, and solid primary buttons. +- b20a25c: Add the `shadcn-gray-blue` dashboard color theme with slate blue-gray surfaces and a muted slate-blue accent. +- 4672203: Add a Shadcn Gray dashboard color theme with a fully neutral zinc-gray accent. +- 12aae94: Add Shadcn Mono Red/Blue/Green/Purple/Pink/Orange/Yellow dashboard color themes and migrate legacy `shadcn-mono` selections to `shadcn-mono-red`. +- dc0064b: Dashboard navigation and panel redesign (desktop/tablet; mobile unchanged): + + - **Right sidebar**: a single show/hide toggle now lives in the top header (replacing the tablet overflow menu); the dock is hidden when closed and no longer keeps a persistent icon rail or in-dock collapse button. Its tools (Files — now the default/first tab, Activity, Activity Log, Git Manager) render inline inside the dock instead of opening popup modals. Files opens inline with a pop-out to the resizable file modal. The embedded Git Manager adapts to its width (compact horizontal tab strip in the dock, full two-pane in the wide pop-out). The dependency graph no longer appears in the dock. + - **Left sidebar**: New Task button matches the item-highlight box; footer spacing between Collapse and Settings; divider before the secondary section removed with uniform row spacing. New main-content destinations — Workflows, Import Tasks (GitHub import, with the GitHub mark), and Automations (two-pane, Command Center styling) — render in the main panel instead of as modals. + - **Embedded views**: Planning Mode embeds without modal chrome (no header/close/shadow), fills the full content area, and renders correctly on mobile; the board WorkflowSwitcher is available in Planning. Dev Server header matches Command Center. Insights header wraps so actions don't overlap. List view's left pane can be dragged much narrower with two-line title wrapping. + - **Other**: the docked terminal no longer blurs or blocks the page behind it; the footer Terminal button renders as plain text like the running-state trigger; the workflow selector matches the project selector's styling, height, and font size; the Automations screen uses theme color tokens. + +- 5697d2c: Skills view detail pane: render SKILL.md as Markdown (GFM + sanitized HTML + mermaid), compact the referenced-files area while showing all files, and make each file clickable to view its content with a "Back to SKILL.md" affordance. Adds a `GET /api/skills/:id/file` endpoint for per-file content. +- 5117944: Add Command Center Productivity task-duration analytics, dashboard stat cards, and CSV export rows for completed-task active execution time. +- d4e91d4: Add workflow optional steps: workflows can declare optional step templates that tasks toggle on/off per task, with a workflow-level default. The built-in coding and stepwise-coding workflows expose agent browser verification as an optional step (the stepwise workflow gains a pre-merge workflow-step seam so enabled steps actually run). Optional steps are authorable in the node editor, preserved across node-editor saves, and selectable from a steps dropdown in both the quick-add card and the full New Task modal. + +### Patch Changes + +- c8a82e7: Auto-continue the agent session after an engine-internal pause/resume abort instead of re-queueing the task to todo. When the engine tears down in-flight work (hard-cancel) and the workflow graph run ends with the task back in `todo`, the executor now retries the agent session in place — bounded by the existing graph-resume retry budget with backoff, falling back to a benign re-queue only after retries are exhausted. Before re-dispatching, it re-checks the task at fire time and aborts the auto-continue if the task was paused, moved, or deleted during the backoff window, so genuine user/global/task pauses are never resumed against the operator's intent. The transient reclassification clears any stale `failed` status and emits an `Auto-recovered:` log so no spurious failure notification fires. +- ee9c8ab: Align dashboard view chrome and inner-pane spacing across Chat, Mailbox, Workflows, Artifacts-adjacent controls, Goals, and Compound Engineering. +- ce6c0fb: Polish dashboard view chrome: align Dashboard, Import Tasks, Automations, Chat, and docked Files editor controls with the shared view header and toolbar styling. +- 7635ba8: Fix a false "engine not running" banner when another fusion process on the same machine already owns the engine. The dashboard's health check only counted engines this process started, so a second launch (e.g. `pnpm dev dashboard` alongside an already-running `fusion`) that was correctly refused the per-machine engine singleton lock reported the engine as unavailable — even though one was running. The `ProjectEngineManager` now tracks engines owned by another process (detected via `EngineAlreadyRunningError` from the singleton lock) and exposes `hasRunningEngine()`, which the dashboard health endpoint uses so the banner reflects machine-level truth. Reconciliation still retries so this process takes over if the other exits, and the "refusing to start" log is emitted once per project instead of on every reconciliation tick. +- ce90cc9: Keep Fusion verification progress moving by making targeted script tests honor file arguments, reaping verification subprocess groups after clean exits, and preventing the line-count audit from blocking `pnpm test`. The changed-test runner now caps reverse-dependent fan-out so a foundational-package edit no longer expands into a whole-workspace run, and the executor/verification guidance now directs agents to scope verification to changed files rather than running the full workspace test suite. +- 5a422b0: Fix anthropic-compatible custom providers failing with "No API provider registered for api: anthropic". + + `resolveCustomProviderApiType` mapped the `anthropic-compatible` provider type to the api key `"anthropic"`, but pi-ai registers the Anthropic Messages API under `"anthropic-messages"`. Any custom provider configured as `anthropic-compatible` (self-hosted Claude proxy, gateway, etc.) therefore selected a model whose `api` did not match a registered provider and threw at stream time. Mapped it to `"anthropic-messages"` and added a regression assertion alongside the existing openai-compatible / openai-responses coverage. + +- 2d32760: Clear the stale `failed` status when a pause/resume abort is reclassified as a benign todo re-queue, so the task no longer surfaces as failed on the board and the deferred failure notification is suppressed. Previously a pause-abort parked `status:"failed"` on an earlier non-todo observation stayed dispatchable (the scheduler filters on column+paused, not status), re-entered the benign-todo branch, and was logged benign while the row stayed failed — firing a contradictory failure alert during global pause when self-healing recovery was suppressed. The clear path also emits an `Auto-recovered:`-prefixed log so the notification service proactively cancels the pending failure timer instead of relying only on the fire-time re-check. +- b564ee0: Make the compound-engineering built-in workflow actually load skills and run the full CE flow. Previously the workflow named CE skills at each node but the graph-node execution path (`runGraphCustomNode`) never loaded them: the named skill was only injected as prompt text, the plugin-injected `FUSION_CE_*` runtime env never reached the step session, and `fn_spawn_agent` was never registered for workflow steps, so persona fan-out and skill loading silently no-op'd. Now skill-executor graph steps thread the injected env, load the named skill (discovery + selection via `additionalSkillPaths`), register the spawn tool in coding mode, and receive an engine-injected Fusion workflow-step conventions preamble (await-input for questions, `FUSION_HEADLESS` degrade path, persona fan-out via `systemPromptOverride`). Adds an explicit `unattended` opt-in for `FUSION_HEADLESS`, reconciles the preamble with the gate verdict-JSON contract, and carries `skillName` through the `WorkflowStep` round-trip. +- 8b5b9a7: Fix the persistent non-blocking Full Suite failure caused by the Compound Engineering plugin's `dist-freshness.test.ts`. The test reads the plugin's compiled `dist/settings.js` and `dist/session/orchestrator.js`, but the plugin had no `pretest` build and was absent from `ensure-test-artifacts.mjs`, so on a fresh checkout `dist/` did not exist and the freshness guard threw "dist/ is missing — run pnpm build first". Register the plugin's required artifacts in `ensure-test-artifacts.mjs` and add a `pretest` hook that builds them, matching the other bundled plugins. +- 68c4053: Fix the Droid runtime model discovery spawning a runaway storm of leaked `droid` processes. + + `discoverDroidModels` invoked `droid models --json` / `droid model list --json`, but the droid CLI has no such commands — an unknown subcommand is parsed as a _prompt_, so each call launched a full agent session (a persistent `droid exec --stream-jsonrpc` backend) that never exited. The promise never settled and the process leaked; because the dashboard re-loads the droid extension on every chat-send, these piled up into dozens of orphaned `droid` processes. + + Discovery now reads the catalog from `droid exec --help` (which lists `Available Models:` + `Custom Models:` and exits cleanly), parsed via the new `parseDroidModelsFromHelp` helper. A SIGKILL-on-timeout guard (`DROID_MODEL_DISCOVERY_TIMEOUT_MS`) ensures any wedged spawn is killed and the promise always settles, so a single discovery call can never leak a process again. Verified end-to-end against the real binary (46 models incl. custom, 0 leaked processes). + +- 9101705: Show plugin-contributed skills (e.g. compound-engineering `ce-*`) in the workflow editor. The dashboard's discovered-skills catalog was built only from the disk-scanning package manager, so plugin skills — which the engine materializes for executor sessions separately — never appeared, and built-in workflow nodes that reference them (like `builtin:compound-engineering`) showed "— select skill —" / unresolved. The skills adapter now merges plugin skill contributions into the discovered list (deduped by bare name), and the editor's node summary + skill dropdown match namespaced skillNames (`compound-engineering:ce-work`) against the catalog's two-segment names (`ce-work/SKILL.md`) via a shared bare-name normalizer. +- 3b61ac3: Fix loading spinners that didn't spin across the dashboard. Many loading states (Settings, task tabs, agents, documents, plugins, model pickers, command center, and more) rendered bare "Loading…" text with no spinner — and a couple rendered an unstyled `loading-spinner` div that never showed anything. Added a shared `` component (self-contained animated SVG, no `lucide-react` dependency so it survives partial test mocks) and adopted it across ~45 loading placeholders so every loading state now shows a consistent animated spinner. +- d99246c: Fix macOS system memory usage reporting by deriving host memory used from OS-available memory instead of raw `os.freemem()` pages. +- 438cd75: Fix worktree-creation failures (and the `Workflow graph terminated with failure at node 'execute'` they surface as) caused by leaked orphan worktree directories. + + A directory under `.worktrees/` that survives with a _dangling_ `.git` pointer — present on disk, but the `.git/worktrees/` admin entry it references is gone — is invisible to `git worktree list` and untouched by `git worktree prune`, yet collides with a freshly generated worktree name. When the executor then tries to clean up the "conflict", `git worktree remove --force` fails with `is not a working tree` and the whole `execute` node fails after 3 attempts. + + - **On-demand recovery (`executor.ts`):** the FN-4813 stale-conflict recovery now also treats `is not a working tree` and `ENOENT` (not just `validation failed, cannot remove working tree`) as "no live worktree at this path" — it prunes any admin entry, force-removes the leftover directory, and proceeds with fresh worktree creation instead of failing. + - **Leak prevention (`worktree-pool.ts`):** `reapOrphanWorktrees` previously skipped any dir on the mere _presence_ of a `.git` file ("may be partially registered"), contradicting its own documented invariant. It now resolves the `.git` pointer and only skips when the gitdir target actually exists; a dangling pointer is reaped like any other half-initialized orphan, so these directories no longer accumulate across runs. + +- 9643563: Fix the global pause/resume failure mode that stalled the board: a pause-abort that left a task back in `todo` was parked `status:"failed"` ("operator action required") and leaked its in-memory worktree slot, producing an instant re-fail retry storm and concurrency-starving the whole queue. + + - Root cause: `handleGraphFailure` now treats a pause-abort that has re-queued a task to `todo` as benign (FN-6782) — it no longer parks it failed, clears the `pausedAborted` marker so the next dispatch starts clean, and releases the leaked worktree slot. + - Auto-recovery: a new `recoverPausedAbortFailures` self-healing sweep clears any pause-abort park (`status:"failed"` with "operator action required") still on the board and requeues it for normal scheduling, so the board self-heals without operator intervention. + - Defense-in-depth: a new `reapLeakedConcurrencySlots` self-healing sweep reclaims any in-memory worktree slot whose holder is no longer in-progress (the "in todo yet still a `maxWorktrees` holder" leak), gated by the executor's live-session refusal so it can never pull a worktree out from under a running agent. This recovers a leaked slot from any future/unknown path without an engine restart. + +- 24ff124: Stop edits to `scripts/lib/test-quarantine.json` from forcing `pnpm test` into gate mode. The quarantine list is runtime data, not executable test infra; tripping the shared-infra catch-all dropped affected-package coverage, so a dev's real changes went untested whenever they also touched the quarantine list. Quarantine edits now stay in changed mode and run the affected packages. +- a2342ca: Fix the task detail chat always showing "No agent is working on this task" for in-progress tasks. The active-session check required a persistent `assignedAgentId`/`checkedOutBy`, but in the default ephemeral-agents mode the scheduler never sets those fields, so an actively-executing task always read as idle. An assignment is now sufficient-but-not-necessary: a non-blocked, non-`queued` in-progress task counts as a live agent session on its own (`queued` stays assignment-gated, in-review is unchanged). +- 7e7eb62: Harden the orphan-worktree and stale-task-dir cleanup fixes (code-review follow-up). + + - **executor.ts (P0):** the stale-conflict recovery's `rm(worktreePath, { recursive, force })` had no bounds check. `worktreePath` can originate from a git worktree admin entry that resolves outside `.worktrees/`, so an out-of-bounds or symlinked path could be force-removed. The recovery now refuses unless the path is inside the configured worktrees dir, is not a symlink (checked via `realpathSync`), is not a registered git worktree, and is not actively owned — and it re-verifies liveness inside the catch rather than trusting the error string. It also excludes `spawn` failures (e.g. `spawn git ENOENT` when git is missing) so a missing-binary error is no longer misread as a successful stale-path cleanup. + - **worktree-pool.ts:** `resolveGitdirPointer` is replaced by `dotGitPointerIsDangling`, which reaps **only** when a `.git` link's gitdir target is confirmed missing. A real `.git` directory, an unparseable pointer, or any read/stat failure now returns "not dangling" (conservative) so a transient read error on a live worktree's `.git` can't cause a force-remove. Removes the `string | "directory" | null` sentinel union. + - **core store.ts:** the `reconcileOrphanedTaskDirs` recency window is now bypassed when the live task table is empty (the corruption/restore case — surviving `task.json` files keep old mtimes), and when a corrupt `fusion.db` was auto-recovered on startup, so `.recover` row loss is not stranded by the gate. Adds an `ignoreRecencyWindow` option for explicit callers. + - Tests for all of the above: executor recovery + out-of-bounds refusal, unparseable `.git` skip, recency boundary, empty-DB/forced bypass. + +- 87f18f8: Track real plugin activation events and surface project-scoped Command Center plugin activation analytics instead of placeholder ecosystem counts. +- ee72c94: Move the Command Center Overview SDLC throughput funnel to the bottom of the tab and broaden hand-rolled chart primitive colors to cycle through existing semantic theme tokens. +- 8f052c6: Fix Command Center Activity trend charts so mixed-unit agent/activity series stay visually legible instead of being flattened by high-volume message counts. +- df139ec: Recover in-progress tasks wedged behind stale in-memory executor bindings by clearing the phantom binding and requeueing with progress and worktree preserved. +- e6f6111: Fix terminal shortcut focus preservation so on-screen Ctrl combinations emit control bytes reliably on touch and pointer devices while keeping physical Ctrl behavior intact. +- d4d7623: Rebaseline the dashboard i18n lint guardrail by excluding non-shipping tests and stories, suppressing technical token categories, localizing plugin missing-view copy, and tracking remaining source-copy deferrals with narrow follow-up tasks. +- 98720f3: Fix mobile bottom tab navigation icon spacing so every tab uses an equal-width column across optional tabs, badges, and status dots. +- c4f34ce: Make the Agents view sidebar wider by default on tablet and resizable with per-project persistence on non-mobile layouts. +- b760fa0: Localize remaining plugin, agent, mission, node, research, document, activity, and miscellaneous dashboard strings and remove their i18n lint deferrals. +- bdf95f8: Localized the dashboard workflow/task/setup/PR component cluster and removed the obsolete i18n lint deferrals for those files so the hardcoded-string guardrail scans them again. +- eca96fb: Keep settings section dashboard copy covered by i18n lint by removing the settings/sections deferral and regenerating i18n resource types. +- c808177: Eliminate the legacy board flash before workflow lanes load by caching per-project board workflow metadata and showing a neutral skeleton while metadata resolves. +- 0c0fda1: Keep Command Center inline next to Agents across desktop and tablet header widths instead of moving it into the More views overflow menu. +- c32c925: Repair task-store startup and self-healing consistency by non-destructively re-importing orphaned live `.fusion/tasks/{ID}/task.json` records into the SQLite task index while preserving soft-deleted, archived, and tombstoned IDs. +- d2fc70a: Fix dependency gating so workflow-graph and workflow-authoritative executor dispatches re-check unmet task dependencies before running, requeueing blocked work with `blockedBy` instead of allowing it to advance to review. + + Add self-healing reconciliation for already-advanced `in-review` tasks with unmet dependencies, including the `task:reconcile-in-review-unmet-dependencies` run-audit event and guarded no-action companion. + +- 08d1f09: Recover benign in-review pause/resume abort parks without requiring operator intervention while preserving hard-cancel, pause, and terminal merge safeguards. +- 61ff17a: Harden in-review dependency drift reconciliation so guard-held or failed rebounds emit no-action audit evidence instead of silently wedging dependent tasks. +- 26bd85d: Fix mobile bottom navigation icon alignment so unread indicators use a centered token-sized icon slot without visually skewing tab spacing. +- 37c4cfa: Prevent bundled Droid and Claude CLI auth/presence probes from surfacing unhandled promise rejections when `spawn` throws synchronously, such as when test guards block real AI CLI auth commands. These probes now resolve as unavailable/unauthenticated instead of rejecting from fire-and-forget validation paths. +- 185ff70: Fix the experimental left sidebar Settings button so it remains clear of the fixed executor status footer, and keep project-selector fallback labels readable when translations are incomplete. +- c7b56a5: Stop triage and planning prompts from auto-selecting alternate workflows based on task type; agents now preserve the project default workflow unless the user explicitly requests a specific workflow. +- c18e827: Await CLI extension cached TaskStore shutdown so deferred filesystem writes and SQLite handles drain before fixture or process cleanup. +- 8c478ad: Fix stale board entries after dependency-driven task re-specification moves by syncing the watched task cache after `updateTaskDependencies` writes and defensively deduplicating `listTasks` rows so active task rows win over archived snapshots. +- 47ba99a: Bump the internal @earendil-works pi SDK family from ^0.79.1 to ^0.79.9 for the CLI, dashboard, and engine packages. +- 24c1c02: Fix dashboard toast text colors so Shadcn dark-mode success, info, and error notifications remain readable against their themed backgrounds. +- 1f23a2e: Ensure bundled Droid CLI provider startup registers without waiting for local `droid` probes and harden binary probes so missing, guarded, or hanging spawns resolve to unavailable sentinels instead of delaying engine boot. +- 15d427b: Move Planning Mode into the dashboard sidebar as a first-class embedded view while removing the desktop toolbar affordance. +- 91971b6: Update the built-in compound-engineering workflow so its Review stage runs the `compound-engineering:ce-code-review` skill directly. The redundant generic reviewer seam node was removed, leaving the CE code-review gate as the sole review stage. +- c4c8961: Tasks created from a selected non-default workflow lane now appear on that lane immediately instead of vanishing until the board-workflows metadata refetch catches up. +- 4342172: Built-in compound-engineering workflow prompts now explicitly call out the `/ce-` skill slash command at each stage. +- bb663a4: Improve bundled non-coding workflow prompts so marketing, lead-generation, and design runs produce structured deliverables, with content and design preview artifacts persisted for review. +- f4d2fa2: Hide the dashboard AI subtask-breakdown quick-add button behind the default-off `subtaskBreakdown` experimental feature flag. +- 5191e1f: Prevent the bundled Droid CLI extension from starting local `droid` probes during server boot; validation now runs only when a Droid stream is actually used while existing probe paths remain non-interactive and timeout-bounded. +- 4879996: Restyle the workflow switcher trigger and dropdown to visually match the project selector. +- ec1d29e: Prevent task worktree acquisition from returning the project repository root by enforcing a non-root postcondition across resume, pooled, and fresh checkout paths. +- c229a15: Tighten agent workflow-routing prompt policy so triage and executor agents must not move a task's workflow unless the user explicitly requested it or the agent created that task. Executor prompts now include an explicit `fn_workflow_select` guardrail while preserving workflow selection for tasks agents create. +- 849b40d: Keep workflow IR and effective-settings resolution usable when project identity lookup fails, falling back to declaration defaults instead of propagating the identity error. +- 9218613: Fix auto-merge lifecycle finalization so successful squash commits reliably leave tasks done, clear transient auto-merge state, and preserve actionable failure state when lifecycle updates fail. +- 6e563b9: Revalidate dashboard service-worker assets before falling back to cache so rebuilt tabs cannot stay on stale bundles and render a blank page. +- a1cac3a: Replace the compact Quick Chat implementation with the full Chat modal launcher and configurable footer/FAB/off setting, move the file browser into the shared floating-window shell with a compact New menu and consistent narrow editor toolbar, fit the dependency graph after layout settles, and align chat/mailbox/task-detail expansion plus header/theme polish. +- 67281fe: Fix Import from GitHub remote detection in multi-project dashboards by passing the active `projectId` to the `/api/git/remotes` lookup. The dialog now lists configured GitHub remotes instead of showing "No GitHub remotes detected" when the backend requires project scope. +- a147a98: Prevent global settings updates from overwriting an existing unreadable settings file with defaults, and use provider/CPU icons in task chat agent headers. +- e788537: Raise the minimum agent heartbeat staleness floor from 5 to 10 minutes. Agents go silent during long-running but legitimate work (notably a verification step running a multi-minute test command, where the agent is blocked awaiting the command and cannot tick/heartbeat). The 5-minute floor could misread such a busy agent as dead and reclaim its in-progress task mid-run; 10 minutes gives long operations room before the liveness gate acts. +- 4ed84be: Polish mobile workflow header alignment, task chat provider icons, modal overlay chrome, and shadcn font consistency. +- a6685b7: Check for duplicate tasks from the New Task dialog and show duplicate descriptions in the warning modal. +- f0fbc59: Update first-run onboarding to include an optional first-agent step and clearer temporary-agent task guidance. +- 36b8950: Carry the selected workflow lane through Planning Mode and Subtask Breakdown task creation so saved tasks appear on the active workflow instead of falling back to the main board. +- 93017a3: Preserve task progress when a single-session run is hard-cancelled mid-execution. When the engine aborted in-flight work and bounced the task back to `todo`, the single-session teardown cleared the task `branch` and re-queued without `preserveResumeState` — resetting every step to `pending` and dropping the pointer to commits already on the task branch, so the next dispatch re-planned from Step 0 and the committed work was stranded (observed as a task that "lost all progress" and got stuck). The teardown now keeps the branch and moves with `preserveResumeState` whenever the task has resumable step progress, matching the step-session and pause-park paths, so execution resumes onto the existing branch from the first incomplete step. The worktree is still removed to free its concurrency slot — only the durable pointers (branch + step state) are kept. +- 192a2f2: Preserve unrelated global settings when saving Settings sections, and graduate Chat Rooms, Goals, Memory, Insights, Skills, and Todo to default-on dashboard surfaces. +- 2e3b965: Smooth the mobile Quick Chat fullscreen sheet during Android soft-keyboard viewport resizing while preserving synchronous iOS visualViewport alignment. +- b9b9447: Reset a task's stuck-kill streak on genuine forward progress. `stuckKillCount` was a lifetime counter — incremented by self-healing on each stuck-kill and cleared only by a manual retry — so a long, genuinely-progressing task could be terminalized by accumulation toward the stuck-kill budget. It now resets when a step reaches a terminal forward status (done/skipped), so only consecutive no-progress stalls count toward the budget. +- 192a2f2: Open task-card files changed actions in the inline task detail Changes tab instead of the task modal. +- 5e55d9c: Show provider icons in task detail chat for default-backed executor, reviewer, planner, and merger models. +- 19be91c: Floating modals (the reusable FloatingWindow, the right-dock pop-out, the floating terminal, and the floating New Task dialog) now share a single z-index stack, so tapping any of them brings it to the front above all the others regardless of type. +- 65c4dc5: Graduate workflow columns and the workflow graph executor to the default runtime path. + + Upgrade notes: stale persisted `experimentalFeatures.workflowColumns` and `experimentalFeatures.workflowGraphExecutor` values are ignored by the engine, so prior installs keep dispatching tasks through the workflow runtime after upgrade. `workflowInterpreterDualObserve` remains an internal diagnostic and defaults off. + + If an upgraded project appears stalled, treat `todo` tasks with unmet dependencies, `paused`/`userPaused`, active checkout leases, unavailable assigned nodes, or file-scope overlap as intentionally parked. Eligible `todo` tasks without those blockers should be picked up by the workflow scheduler; eligible `in-progress` rows without a live executor are recovered through the normal orphan-resume/self-healing path. The old Experimental toggles are no longer a rollback switch; use a source rollback/downgrade to the previous release if the workflow runtime itself must be reverted. + ## 0.44.0 ### Minor Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index f06fe78bb1..20396382c1 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@runfusion/fusion", - "version": "0.44.0", + "version": "0.45.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 e8a0e13aea..53e70555a9 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,22 @@ # @fusion/core +## 0.45.0 + +### Patch Changes + +- 26ebb92: Fix `reconcileOrphanedTaskDirs` silently resurrecting long-deleted tasks onto the live board after a restart ("all task IDs reset / starting over"). + + The sweep re-imports `.fusion/tasks//` directories that have no DB row, to recover heartbeat-created dirs that race store init or rows lost to a recent DB corruption. But it didn't distinguish a genuinely-recent orphan from an ancient deleted-task dir that merely lingered on disk. Modern deletes leave a soft-delete tombstone (caught by `taskIdExistsAnywhere`), but legacy hard-deletes left no tombstone — so a months-old `task.json` with no DB row was re-imported as a live task, surfacing old low-numbered IDs (FN-001, FN-002, …) at the top of the board. + + Reconcile now gates recovery on a recency window (`task.json` modified within the last 7 days). Older orphan dirs are skipped with reason `stale-orphan-dir-beyond-recency-window` and left for explicit recovery (unarchive/restore) or directory cleanup, while heartbeat-race and recent-corruption recovery still work. + +- 7e7eb62: Harden the orphan-worktree and stale-task-dir cleanup fixes (code-review follow-up). + + - **executor.ts (P0):** the stale-conflict recovery's `rm(worktreePath, { recursive, force })` had no bounds check. `worktreePath` can originate from a git worktree admin entry that resolves outside `.worktrees/`, so an out-of-bounds or symlinked path could be force-removed. The recovery now refuses unless the path is inside the configured worktrees dir, is not a symlink (checked via `realpathSync`), is not a registered git worktree, and is not actively owned — and it re-verifies liveness inside the catch rather than trusting the error string. It also excludes `spawn` failures (e.g. `spawn git ENOENT` when git is missing) so a missing-binary error is no longer misread as a successful stale-path cleanup. + - **worktree-pool.ts:** `resolveGitdirPointer` is replaced by `dotGitPointerIsDangling`, which reaps **only** when a `.git` link's gitdir target is confirmed missing. A real `.git` directory, an unparseable pointer, or any read/stat failure now returns "not dangling" (conservative) so a transient read error on a live worktree's `.git` can't cause a force-remove. Removes the `string | "directory" | null` sentinel union. + - **core store.ts:** the `reconcileOrphanedTaskDirs` recency window is now bypassed when the live task table is empty (the corruption/restore case — surviving `task.json` files keep old mtimes), and when a corrupt `fusion.db` was auto-recovered on startup, so `.recover` row loss is not stranded by the gate. Adds an `ignoreRecencyWindow` option for explicit callers. + - Tests for all of the above: executor recovery + out-of-bounds refusal, unparseable `.git` skip, recency boundary, empty-DB/forced bypass. + ## 0.44.0 ## 0.43.1 diff --git a/packages/core/package.json b/packages/core/package.json index b209f12d2b..dde502f24d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/core", - "version": "0.44.0", + "version": "0.45.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 fe843cb769..8905851c97 100644 --- a/packages/dashboard/CHANGELOG.md +++ b/packages/dashboard/CHANGELOG.md @@ -1,5 +1,24 @@ # @fusion/dashboard +## 0.45.0 + +### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + - @fusion/engine@0.45.0 + - @fusion/i18n@0.39.8 + - @fusion-plugin-examples/cli-printing-press@0.1.25 + - @fusion-plugin-examples/compound-engineering@0.1.8 + - @fusion-plugin-examples/dependency-graph@0.1.39 + - @fusion-plugin-examples/roadmap@0.1.27 + - @fusion-plugin-examples/cursor-runtime@0.1.27 + - @fusion-plugin-examples/droid-runtime@0.1.34 + - @fusion-plugin-examples/hermes-runtime@0.2.58 + - @fusion-plugin-examples/openclaw-runtime@0.2.58 + - @fusion-plugin-examples/paperclip-runtime@0.2.58 + ## 0.44.0 ### Patch Changes diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index a95033f1e2..ea7385f527 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/dashboard", - "version": "0.44.0", + "version": "0.45.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 928c1b42c2..3bdc9c102e 100644 --- a/packages/desktop/CHANGELOG.md +++ b/packages/desktop/CHANGELOG.md @@ -1,5 +1,15 @@ # @fusion/desktop +## 0.45.0 + +### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + - @fusion/dashboard@0.45.0 + - @fusion/engine@0.45.0 + ## 0.44.0 ### Patch Changes diff --git a/packages/desktop/package.json b/packages/desktop/package.json index c32f5caa47..1ef37995f8 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@fusion/desktop", "productName": "Fusion", - "version": "0.44.0", + "version": "0.45.0", "license": "MIT", "author": { "name": "Runfusion", diff --git a/packages/droid-cli/CHANGELOG.md b/packages/droid-cli/CHANGELOG.md index 86076eed18..7bb25e6eeb 100644 --- a/packages/droid-cli/CHANGELOG.md +++ b/packages/droid-cli/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion/droid-cli +## 0.11.34 + +### Patch Changes + +- @fusion-plugin-examples/droid-runtime@0.1.34 + ## 0.11.33 ### Patch Changes diff --git a/packages/droid-cli/package.json b/packages/droid-cli/package.json index 1d316e414e..c360416b29 100644 --- a/packages/droid-cli/package.json +++ b/packages/droid-cli/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/droid-cli", - "version": "0.11.33", + "version": "0.11.34", "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 59d5316a37..f37cad4184 100644 --- a/packages/engine/CHANGELOG.md +++ b/packages/engine/CHANGELOG.md @@ -1,5 +1,14 @@ # @fusion/engine +## 0.45.0 + +### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + - @fusion/pi-claude-cli@0.45.0 + ## 0.44.0 ### Patch Changes diff --git a/packages/engine/package.json b/packages/engine/package.json index 652d93b120..c93cd46189 100644 --- a/packages/engine/package.json +++ b/packages/engine/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/engine", - "version": "0.44.0", + "version": "0.45.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 a979ac36ab..e4a1b800cd 100644 --- a/packages/i18n/CHANGELOG.md +++ b/packages/i18n/CHANGELOG.md @@ -1,5 +1,13 @@ # @fusion/i18n +## 0.39.8 + +### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + ## 0.39.7 ### Patch Changes diff --git a/packages/i18n/package.json b/packages/i18n/package.json index a2129009ef..baa16d0a6a 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/i18n", - "version": "0.39.7", + "version": "0.39.8", "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 54ead26fde..e2f5139b2c 100644 --- a/packages/mobile/CHANGELOG.md +++ b/packages/mobile/CHANGELOG.md @@ -1,5 +1,7 @@ # @fusion/mobile +## 0.45.0 + ## 0.44.0 ## 0.43.1 diff --git a/packages/mobile/package.json b/packages/mobile/package.json index a2e2a48514..4272d5c0d8 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/mobile", - "version": "0.44.0", + "version": "0.45.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 dd1b09dd19..76bb3f3d7b 100644 --- a/packages/pi-claude-cli/CHANGELOG.md +++ b/packages/pi-claude-cli/CHANGELOG.md @@ -1,5 +1,7 @@ # @fusion/pi-claude-cli +## 0.45.0 + ## 0.44.0 ## 0.43.1 diff --git a/packages/pi-claude-cli/package.json b/packages/pi-claude-cli/package.json index 0a48cbda19..8a9f694e06 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.44.0", + "version": "0.45.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 6eafe015dd..7663d8276c 100644 --- a/packages/plugin-sdk/CHANGELOG.md +++ b/packages/plugin-sdk/CHANGELOG.md @@ -1,5 +1,13 @@ # @fusion/plugin-sdk +## 0.45.0 + +### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + ## 0.44.0 ### Patch Changes diff --git a/packages/plugin-sdk/package.json b/packages/plugin-sdk/package.json index c571d95994..a8b9aab0ea 100644 --- a/packages/plugin-sdk/package.json +++ b/packages/plugin-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/plugin-sdk", - "version": "0.44.0", + "version": "0.45.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 73acafd095..d84b0c9722 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.58 + +### Patch Changes + +- @fusion/plugin-sdk@0.45.0 + ## 0.2.57 ### Patch Changes diff --git a/plugins/examples/fusion-plugin-auto-label/package.json b/plugins/examples/fusion-plugin-auto-label/package.json index 333389dce0..d6cf0ecdec 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.57", + "version": "0.2.58", "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 2ba6b5b9c8..67c4edf61a 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.58 + +### Patch Changes + +- @fusion/plugin-sdk@0.45.0 + ## 0.2.57 ### Patch Changes diff --git a/plugins/examples/fusion-plugin-ci-status/package.json b/plugins/examples/fusion-plugin-ci-status/package.json index 627ff133cf..90fb5e3318 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.57", + "version": "0.2.58", "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 7fbd7e492e..ef3cec8ac2 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.58 + +### Patch Changes + +- @fusion/plugin-sdk@0.45.0 + ## 0.2.57 ### Patch Changes diff --git a/plugins/examples/fusion-plugin-notification/package.json b/plugins/examples/fusion-plugin-notification/package.json index 9decabe550..af1e9e5e0e 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.57", + "version": "0.2.58", "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 ffd7e0e953..f68c8de5a5 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.58 + +### Patch Changes + +- @fusion/plugin-sdk@0.45.0 + ## 0.2.57 ### Patch Changes diff --git a/plugins/examples/fusion-plugin-settings-demo/package.json b/plugins/examples/fusion-plugin-settings-demo/package.json index 1878d26043..a1d971eed2 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.57", + "version": "0.2.58", "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 19bc774dcc..00304c1333 100644 --- a/plugins/fusion-plugin-acp-runtime/CHANGELOG.md +++ b/plugins/fusion-plugin-acp-runtime/CHANGELOG.md @@ -1,5 +1,14 @@ # @fusion-plugin-examples/acp-runtime +## 0.1.8 + +### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + - @fusion/plugin-sdk@0.45.0 + ## 0.1.7 ### Patch Changes diff --git a/plugins/fusion-plugin-acp-runtime/package.json b/plugins/fusion-plugin-acp-runtime/package.json index 71b2d965c2..d88b449c3a 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.7", + "version": "0.1.8", "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 5bc53a1217..60fa1c1a38 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.28 + +### Patch Changes + +- @fusion/plugin-sdk@0.45.0 + ## 0.1.27 ### Patch Changes diff --git a/plugins/fusion-plugin-agent-browser/package.json b/plugins/fusion-plugin-agent-browser/package.json index 1c1108a483..a0838bd6dd 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.27", + "version": "0.1.28", "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 87515c1b89..89194e34b3 100644 --- a/plugins/fusion-plugin-cli-printing-press/CHANGELOG.md +++ b/plugins/fusion-plugin-cli-printing-press/CHANGELOG.md @@ -1,5 +1,14 @@ # @fusion-plugin-examples/cli-printing-press +## 0.1.25 + +### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + - @fusion/plugin-sdk@0.45.0 + ## 0.1.24 ### Patch Changes diff --git a/plugins/fusion-plugin-cli-printing-press/package.json b/plugins/fusion-plugin-cli-printing-press/package.json index 746242c3e5..80ae6d1179 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.24", + "version": "0.1.25", "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 be82a6bd57..ac1321fb2e 100644 --- a/plugins/fusion-plugin-compound-engineering/CHANGELOG.md +++ b/plugins/fusion-plugin-compound-engineering/CHANGELOG.md @@ -1,5 +1,14 @@ # @fusion-plugin-examples/compound-engineering +## 0.1.8 + +### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + - @fusion/plugin-sdk@0.45.0 + ## 0.1.7 ### Patch Changes diff --git a/plugins/fusion-plugin-compound-engineering/package.json b/plugins/fusion-plugin-compound-engineering/package.json index 36873fb54d..584f2cb099 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.7", + "version": "0.1.8", "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 3011cc939c..bd5ac5cbaf 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.27 + +### Patch Changes + +- @fusion/plugin-sdk@0.45.0 + ## 0.1.26 ### Patch Changes diff --git a/plugins/fusion-plugin-cursor-runtime/package.json b/plugins/fusion-plugin-cursor-runtime/package.json index 39e16f618f..a0e5838a4d 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.26", + "version": "0.1.27", "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 fa6338e4c9..f0de0cdfc4 100644 --- a/plugins/fusion-plugin-dependency-graph/CHANGELOG.md +++ b/plugins/fusion-plugin-dependency-graph/CHANGELOG.md @@ -1,5 +1,14 @@ # @fusion-plugin-examples/dependency-graph +## 0.1.39 + +### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + - @fusion/plugin-sdk@0.45.0 + ## 0.1.38 ### Patch Changes diff --git a/plugins/fusion-plugin-dependency-graph/package.json b/plugins/fusion-plugin-dependency-graph/package.json index e1a3ed55e3..e815dbb1f6 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.38", + "version": "0.1.39", "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 92b8c47e3b..b86b26a786 100644 --- a/plugins/fusion-plugin-droid-runtime/CHANGELOG.md +++ b/plugins/fusion-plugin-droid-runtime/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.1.34 + +### Patch Changes + +- @fusion/plugin-sdk@0.45.0 + ## 0.1.33 ### Patch Changes diff --git a/plugins/fusion-plugin-droid-runtime/package.json b/plugins/fusion-plugin-droid-runtime/package.json index 44aed28d66..f339416f79 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.33", + "version": "0.1.34", "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 2e463d7060..c766f38ba7 100644 --- a/plugins/fusion-plugin-even-realities-glasses/CHANGELOG.md +++ b/plugins/fusion-plugin-even-realities-glasses/CHANGELOG.md @@ -1,5 +1,14 @@ # @fusion-plugin-examples/even-realities-glasses +## 0.1.27 + +### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + - @fusion/plugin-sdk@0.45.0 + ## 0.1.26 ### Patch Changes diff --git a/plugins/fusion-plugin-even-realities-glasses/package.json b/plugins/fusion-plugin-even-realities-glasses/package.json index 0b731f1590..de391c0c97 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.26", + "version": "0.1.27", "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 c4fe08a526..c1969c2080 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.58 + +### Patch Changes + +- @fusion/plugin-sdk@0.45.0 + ## 0.2.57 ### Patch Changes diff --git a/plugins/fusion-plugin-hermes-runtime/package.json b/plugins/fusion-plugin-hermes-runtime/package.json index fb5390036a..8936087d5e 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.57", + "version": "0.2.58", "type": "module", "description": "Hermes AI runtime plugin for Fusion - provides AI agent execution runtime", "keywords": [ diff --git a/plugins/fusion-plugin-openclaw-runtime/CHANGELOG.md b/plugins/fusion-plugin-openclaw-runtime/CHANGELOG.md index f1e6c7e011..cc5bad5c91 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.58 + +### Patch Changes + +- @fusion/plugin-sdk@0.45.0 + ## 0.2.57 ### Patch Changes diff --git a/plugins/fusion-plugin-openclaw-runtime/package.json b/plugins/fusion-plugin-openclaw-runtime/package.json index 68c260159f..3523154d9b 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.57", + "version": "0.2.58", "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 d2d6c35746..98a5280483 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.58 + +### Patch Changes + +- @fusion/plugin-sdk@0.45.0 + ## 0.2.57 ### Patch Changes diff --git a/plugins/fusion-plugin-paperclip-runtime/package.json b/plugins/fusion-plugin-paperclip-runtime/package.json index 75ac6f8b8d..0b9060c174 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.57", + "version": "0.2.58", "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 a8d768d5e2..a7f23c7061 100644 --- a/plugins/fusion-plugin-reports/CHANGELOG.md +++ b/plugins/fusion-plugin-reports/CHANGELOG.md @@ -1,5 +1,15 @@ # @fusion-plugin-examples/reports +## 0.1.27 + +### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + - @fusion/dashboard@0.45.0 + - @fusion/plugin-sdk@0.45.0 + ## 0.1.26 ### Patch Changes diff --git a/plugins/fusion-plugin-reports/package.json b/plugins/fusion-plugin-reports/package.json index d97805d164..47343b8fca 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.26", + "version": "0.1.27", "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 003388b8d8..7c5ba7c979 100644 --- a/plugins/fusion-plugin-roadmap/CHANGELOG.md +++ b/plugins/fusion-plugin-roadmap/CHANGELOG.md @@ -1,5 +1,14 @@ # @fusion-plugin-examples/roadmap +## 0.1.27 + +### Patch Changes + +- Updated dependencies [26ebb92] +- Updated dependencies [7e7eb62] + - @fusion/core@0.45.0 + - @fusion/plugin-sdk@0.45.0 + ## 0.1.26 ### Patch Changes diff --git a/plugins/fusion-plugin-roadmap/package.json b/plugins/fusion-plugin-roadmap/package.json index 9dc1826673..5ae2ac1001 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.26", + "version": "0.1.27", "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 6b058b17e3..afb44a0500 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.27 + +### Patch Changes + +- @fusion/plugin-sdk@0.45.0 + ## 0.1.26 ### Patch Changes diff --git a/plugins/fusion-plugin-whatsapp-chat/package.json b/plugins/fusion-plugin-whatsapp-chat/package.json index f81f4e5b1c..6ddf8491e9 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.26", + "version": "0.1.27", "type": "module", "description": "WhatsApp Web (Baileys) chat bridge for Fusion agents", "keywords": [