chore(release): v0.45.0

Version bump via changesets.
This commit is contained in:
gsxdsm
2026-06-23 01:07:59 -07:00
parent 192a2f2e94
commit b599b6ab41
172 changed files with 878 additions and 628 deletions

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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).

View File

@@ -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.

View File

@@ -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 `<LoadingSpinner>` 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.

View File

@@ -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.

View File

@@ -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/<name>` 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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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/<id>/` 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.

View File

@@ -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).

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -1,5 +0,0 @@
---
"@runfusion/fusion": minor
---
Add a built-in lead-generation workflow with custom lead columns, fields, and stage prompts.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -1,5 +0,0 @@
---
"@runfusion/fusion": patch
---
Hide the dashboard AI subtask-breakdown quick-add button behind the default-off `subtaskBreakdown` experimental feature flag.

View File

@@ -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.

View File

@@ -1,5 +0,0 @@
---
"@runfusion/fusion": patch
---
Restyle the workflow switcher trigger and dropdown to visually match the project selector.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -1,5 +0,0 @@
---
"@runfusion/fusion": minor
---
Add estimated human hours saved to Command Center Productivity analytics, UI stats, and CSV exports.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -1,5 +0,0 @@
---
"@runfusion/fusion": minor
---
Sync workflow setting values across nodes in settings push, pull, receive, and status flows.

View File

@@ -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 (`<details>`/`<summary>`, `<kbd>`, `<sub>`, 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.

View File

@@ -1,5 +0,0 @@
---
"@runfusion/fusion": patch
---
Polish mobile workflow header alignment, task chat provider icons, modal overlay chrome, and shadcn font consistency.

View File

@@ -1,5 +0,0 @@
---
"@runfusion/fusion": patch
---
Check for duplicate tasks from the New Task dialog and show duplicate descriptions in the warning modal.

View File

@@ -1,5 +0,0 @@
---
"@runfusion/fusion": patch
---
Update first-run onboarding to include an optional first-agent step and clearer temporary-agent task guidance.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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`.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

Some files were not shown because too many files have changed in this diff Show More