diff --git a/.changeset/fix-release-binary-publish.md b/.changeset/fix-release-binary-publish.md deleted file mode 100644 index 2e3953b992..0000000000 --- a/.changeset/fix-release-binary-publish.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Fix release pipeline so binaries and desktop installers publish again. -category: fix -dev: github-release job sparse-checks-out CHANGELOG.md (was missing a checkout, so the release-notes step threw ENOENT and published 0 assets on v0.47.0); desktop esbuild build externalizes @fusion/engine so it no longer tries to bundle node-pty's native .node binaries. diff --git a/.changeset/fn-6941-graph-workflow-dropdown.md b/.changeset/fn-6941-graph-workflow-dropdown.md deleted file mode 100644 index c55a5d5803..0000000000 --- a/.changeset/fn-6941-graph-workflow-dropdown.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": minor ---- - -summary: Add a workflow dropdown to filter tasks in the dependency Graph view. -category: feature -dev: Scopes plugin-hosted graph tasks through the dashboard workflow assignment payload. diff --git a/.changeset/fn-6944-quick-entry-width.md b/.changeset/fn-6944-quick-entry-width.md deleted file mode 100644 index ea23d125f3..0000000000 --- a/.changeset/fn-6944-quick-entry-width.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Let quick-entry text use the full entry box width instead of wrapping early. -category: fix -dev: Adds a QuickEntryBox-specific textarea padding override and CSS cascade regression coverage. diff --git a/.changeset/fn-6946-github-reference-picker.md b/.changeset/fn-6946-github-reference-picker.md deleted file mode 100644 index 113e4d92b5..0000000000 --- a/.changeset/fn-6946-github-reference-picker.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Add a New Task dialog picker that seeds prompts from current-remote GitHub issues and PRs. -category: feature -dev: Reuses existing GitHub remote, issue, and pull list endpoints; PR prompts direct agents to address review comments. diff --git a/.changeset/fn-6959-footer-launcher-style.md b/.changeset/fn-6959-footer-launcher-style.md deleted file mode 100644 index 84d338ae00..0000000000 --- a/.changeset/fn-6959-footer-launcher-style.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Match Quick Chat and Terminal typography in the dashboard footer. -category: fix -dev: Footer launcher CSS now shares inherited font and color contracts between Quick Chat and Terminal. diff --git a/.changeset/fn-6960-pr-metadata-bounded.md b/.changeset/fn-6960-pr-metadata-bounded.md deleted file mode 100644 index 8b6e5d5bc1..0000000000 --- a/.changeset/fn-6960-pr-metadata-bounded.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Prevent Create PR metadata generation from hanging and provide editable fallback content. -category: fix -dev: Bounds PR metadata generation and validates non-empty PR bodies before GitHub PR creation. diff --git a/.changeset/fn-6967-tablet-chat-bubble-width.md b/.changeset/fn-6967-tablet-chat-bubble-width.md deleted file mode 100644 index d512d5220a..0000000000 --- a/.changeset/fn-6967-tablet-chat-bubble-width.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Widen tablet Chat View agent response bubbles for easier reading. -category: fix -dev: Uses ChatView container queries to target assistant, streaming, and failure bubbles without widening user or Quick Chat bubbles. diff --git a/.changeset/fn-6971-workflow-cutover-readiness.md b/.changeset/fn-6971-workflow-cutover-readiness.md deleted file mode 100644 index 40f8016925..0000000000 --- a/.changeset/fn-6971-workflow-cutover-readiness.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Retire dual-observe as a workflow-authoritative cutover prerequisite. -category: fix -dev: Cutover readiness now uses the authoritative flag plus clean populated parity summaries; stale dual-observe settings remain inert. diff --git a/.changeset/fn-6976-planning-json-recovery.md b/.changeset/fn-6976-planning-json-recovery.md deleted file mode 100644 index 77fde172ad..0000000000 --- a/.changeset/fn-6976-planning-json-recovery.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Keep Planning Mode malformed AI responses retryable instead of stranding sessions. -category: fix -dev: Hardens planning JSON candidate selection and persists bounded parse failures as retryable AI-session errors. diff --git a/.changeset/fn-6981-git-manager-mobile-tabs.md b/.changeset/fn-6981-git-manager-mobile-tabs.md deleted file mode 100644 index 917c6455a9..0000000000 --- a/.changeset/fn-6981-git-manager-mobile-tabs.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Keep Git Manager tabs reachable in mobile and docked layouts. -category: fix -dev: Makes the shared Git Manager tablist a non-wrapping horizontal touch scroller in mobile and embedded narrow containers. diff --git a/.changeset/fn-6982-task-chat-guidance.md b/.changeset/fn-6982-task-chat-guidance.md deleted file mode 100644 index 65a6dd8eac..0000000000 --- a/.changeset/fn-6982-task-chat-guidance.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Remove helper guidance above the task chat composer. -category: fix -dev: Task chat placeholders now carry active/idle/done composer guidance without an extra status shell. diff --git a/.changeset/fn-6987-mission-delete-confirm.md b/.changeset/fn-6987-mission-delete-confirm.md deleted file mode 100644 index eda6f509d0..0000000000 --- a/.changeset/fn-6987-mission-delete-confirm.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Open Mission Manager mission-delete confirmations in the standard modal dialog. -category: fix -dev: Routes mission list and detail delete affordances through ConfirmDialogProvider with regression coverage. diff --git a/.changeset/fn-6997-diff-panel-width.md b/.changeset/fn-6997-diff-panel-width.md deleted file mode 100644 index 9172ddabae..0000000000 --- a/.changeset/fn-6997-diff-panel-width.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Make the task Changes tab inline diff panel wider on narrow screens. -category: fix -dev: Reclaims task-detail body padding for compact inline diff lists with mobile CSS contract coverage. diff --git a/.changeset/fn-6999-mobile-nav-side-spacing.md b/.changeset/fn-6999-mobile-nav-side-spacing.md deleted file mode 100644 index 99324dd8ac..0000000000 --- a/.changeset/fn-6999-mobile-nav-side-spacing.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@runfusion/fusion": patch ---- - -summary: Equalize mobile bottom navigation side spacing. -category: fix -dev: Adds tokenized MobileNavBar horizontal padding while preserving ICB and safe-area behavior. diff --git a/CHANGELOG.md b/CHANGELOG.md index d8b4a2b3cd..188af8d54b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,37 +2,166 @@ 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.47.0 +## 0.48.0 ### New -- Structured changeset format with AI-distilled release notes for cleaner, user-facing changelogs. +- Add a workflow dropdown to filter tasks in the dependency Graph view. +- Add a New Task dialog picker that seeds prompts from current-remote GitHub issues and PRs. -### Internal +### Fixed -- Saved agent tool-output details now default off to reduce persisted log payloads, while timeline rows remain logged and detailed tool arguments/results stay available via the global `persistAgentToolOutput: true` opt-in. -- Harden the workspace per-repo land loop against partial-failure races. A lost `landedSha` DB write after a sub-repo's integration ref already advanced no longer silently continues — it escalates to a retryable partial-land error, and the landed predicate now recognizes an already-landed repo via its `Fusion-Task-Id` trailer on retry, so a re-run never produces a second squash commit. The land lease is now taskId-aware across registry kinds: a merging task can no longer clobber an executing task's acquire lease on a shared sub-repo (any foreign-task holder is treated as contention), and the active-session registry rejects foreign-task overwrites instead of silently clobbering. The transient `merging` status is always reset before any throw escapes the land loop (no stuck-`merging` leak), and finalize re-reads the latest task and no longer swallows the merge-details persist failure (no finalizing on a stale row). -- Address Phase C workspace merge-loop review feedback. A sub-repo recognized as already-landed via the `Fusion-Task-Id` trailer fallback (when its `landedSha` persist was lost) now resolves and re-records a concrete `landedSha`, so finalize no longer drops it and mis-reports a fully-landed workspace task as a no-op (`mergeConfirmed:false`). A manual merge that hits sub-repo land-lease contention now surfaces the busy error to the user without consuming the persisted `mergeRetries` quota (matching the auto path's separate busy counter). The partial-land retry persists the incremented retry count before arming the backoff timer — a failed write now fails closed instead of looping without consuming budget — and clears the stale busy-contention counter when a real partial land supersedes transient busy failures. The CLI and dashboard merge doors use the shared `isWorkspaceTask` predicate instead of re-inlining the workspace check, and integration-branch shell interpolation in base-commit capture uses POSIX single-quote escaping. -- Fix narrow right-sidebar Dev Server preview overlap by replacing the inline preview with an accessible modal launcher when the dock is very narrow, while keeping inline preview for full-page, mobile viewport, and expanded pop-out hosts. -- Fix ntfy test notifications to honor unsaved Settings form config so users can enable ntfy, enter a valid topic/server/token, and send a test notification before saving. -- Close task detail dialogs and embedded task-detail hosts immediately after delete confirmations complete, while delete requests continue reporting success or error toasts asynchronously. -- Stack task-detail Chat agent headers above output blocks in the List View split-pane detail pane while preserving full-width desktop chat layout. -- Merger unification (master-plan U0): `runAiMerge` (the FN-5633 clean-room AI merge path) is now the **sole** merge path. The engine dispatch, the `fn task merge` CLI command, and the UI-only (`--no-engine`) dashboard merge all route through `runAiMerge`; the legacy `aiMergeTask` pipeline is soft-deprecated (body retained, `@deprecated`). The `merger.mode` setting is now **inert and deprecated** — the type and field are retained as published surface, but the `"deterministic"` value no longer selects a different pipeline; observing it logs a one-time deprecation warning and proceeds via the unified AI merge path. A new shared `assertNotWorkspaceTaskMerge` guard rejects workspace-mode tasks (populated `workspaceWorktrees`) at every merge entry point with a clear error until per-repo merge support (master-plan U6) lands. -- Fix multiworkspace tasks failing to complete. `task.workspaceWorktrees` is now durably persisted (it previously had no SQLite column, so `fn_acquire_repo_worktree`'s write was dropped on every persist and `fn_task_done` always reported "acquired no sub-repo worktrees"). Concurrent workspace tasks no longer collide on the shared browse-root active-session path — each task gets a task-scoped session key, so a second workspace task no longer fails with "active-session path … is held by …". -- **Breaking:** the `WorkflowOptionalStep` type, previously exported from `@runfusion/fusion`, is removed — any consumer importing it must migrate to `optional-group` nodes / `ResolvedWorkflowOptionalStep`. -- Add `X-Session-Id` and `X-Session-Affinity` request headers to all LLM chat completion requests. These let LLM gateways sticky-route consecutive requests from the same conversation to the same backend, and let observability tools (Langfuse, Arize, etc.) group the otherwise-stateless API calls of a session into a single multi-turn trace. Both headers carry the same stable identifier — the task id when available (stable across pause/resume), otherwise the pi session id. (#1675) -- Workflow editor: add a Help section to the node detail pane. Every node now documents what it does, how to configure it, and its inputs/outputs/edges — including the engine-managed merge-lifecycle nodes (auto-merge gate, branch-group member integration, branch-group promotion, PR and recovery nodes), which are surfaced read-only with an "Engine-managed" badge. -- Workflow editor: optional steps are now graph-native. A new `optional-group` container node (foreach/loop-style) holds a subgraph the executor runs once when the group is enabled for a task (per-task `enabledWorkflowSteps` + workflow `defaultOn`) and bypasses when disabled. All seven built-in add-ons (documentation-review, qa-check, security-audit, performance-review, accessibility-check, browser-verification, frontend-ux-design) are insertable from the node-editor palette as a node or wrapped in an optional-group. The built-in coding and stepwise-coding workflows now express `browser-verification` as an optional-group. Optional-group enable resolution correctly handles id collisions with add-on template ids, so a group's enable state is not silently bypassed during task creation/update. (The legacy declaration-based optional-steps model is retired in a sibling changeset; only the `workflow-step` seam infrastructure removal remains a follow-up.) -- Workspace tasks no longer render blank in the dashboard. Task cards and the task -- Add workspace mode: open a folder of git repositories as a single Fusion -- Workspace mode (Phase A / U2): harden per-repo worktree acquisition. Each sub-repo worktree now gets the task identity guard installed (single-repo parity), a per-repo base commit SHA captured local-first against that sub-repo's resolved integration branch (shared `integrationBranch` override stripped so each repo falls through to its own `origin/HEAD`), and same-sub-repo acquisition exclusivity registered in the path-keyed active-session registry. Re-acquiring an already-acquired `(taskId, repo)` is idempotent, and acquisition failures surface an error plus an audit event instead of silently stalling. -- Workspace mode (Phase C U3): serialize concurrent same-sub-repo lands with a per-repo file-scope lease. When two workspace tasks try to land onto the SAME sub-repo's local integration ref at the same time, the merge phase now registers the sub-repo's absolute path in the path-keyed active-session registry under a distinct `workspace-repo-land` kind before each land and releases it in a `finally` (on land success or failure — no stuck lock). A second task contending for the same sub-repo fast-fails with a retryable `WorkspaceRepoLandBusyError`, which the existing partial-land auto-retry-then-park dispatch handles (consume a `mergeRetry`, re-enqueue with backoff, then operator-park). Disjoint sub-repos lease different paths and never serialize against each other. The lease prevents clean-room ai-merge worktree collisions; ref correctness is already guaranteed by `advanceIntegrationBranchRef`'s CAS (concurrent-advance → rebuild). -- Workspace mode Phase A (U1): executor session scoping. In workspace mode the executor now skips the root worktree acquisition and every rootDir git preflight (base-commit capture, contamination, worktree-liveness), runs the agent session rooted at the browse-only workspace root, and tracks acquired sub-repo worktrees as a per-task set. Single-repo tasks are unchanged (one-element set, byte-for-byte preflight parity). -- Workspace mode (Phase B, U1): per-repo post-session change capture, contamination detection, and worktree-invariant verification. In workspace mode the executor now loops `task.workspaceWorktrees`, reusing `captureModifiedFiles` per sub-repo (diffing each against its own `baseCommitSha`, with a merge-base fallback when undefined) to aggregate repo-prefixed `task.modifiedFiles` and surface per-repo contamination, and un-stubs `verifyWorktreeInvariants` to assert each acquired worktree's git toplevel and `fusion/` branch. Single-repo behavior is unchanged. -- Workspace mode (Phase B, U2): per-repo review at both review entry points plus per-repo `fn_task_done` completion + scope-leak verification. In workspace mode both review call sites (the in-session `fn_review_step` tool and the step-inversion review seam) now loop the single-cwd `reviewStep` once per acquired sub-repo (cwd = each repo's worktree) and aggregate the repo-tagged verdicts as a conjunction — the task is reviewed only when every sub-repo approves, and the first failing sub-repo's verdict (with repo-tagged findings) drives the existing verdict→edge mapping. `fn_task_done` now verifies worktree invariants per acquired repo and iterates the scope-leak guard per sub-repo (cwd = repo worktree, repo `baseCommitSha`), blocking completion on any sub-repo carrying off-scope changes and naming the repo. Adds a minimal shared repo-prefix-derivation helper (`workspace-paths.ts`). Single-repo behavior is unchanged. -- Workspace mode Phase C (U1): per-repo merge loop. Extract `landOneRepo` from the -- Workspace mode Phase C (U2): per-repo landed predicate, finalize-once, and idempotent -- Workspace mode Phase D (U1): workspace-aware self-healing. The existing merging-status reconcilers no longer mis-finalize a partial-landed workspace task (recoverInterruptedMergingTasks now clears the transient `merging` status and re-enqueues the idempotent per-repo land instead of running the single-commit finalize over the non-git workspace root), and recoverMergeableReviewTasks now admits workspace tasks (task.worktree is null). Adds three reconcilers: partial-land recovery (re-enqueue via enqueueMerge, FORK-A unrecoverable → park failed; guarded by autoMerge:false + user-pause + workspace-aware liveness), phantom `workspace-repo-land` lease reclaim (new `entriesByKind` registry seam), and per-repo worktree cleanup from stored paths (no temp walk). New run-audit events: `task:reconcile-workspace-partial-land`(`-no-action`), `task:reclaim-phantom-workspace-land-lease`, `task:reconcile-orphaned-workspace-worktree`. +- Fix release pipeline so binaries and desktop installers publish again. +- Let quick-entry text use the full entry box width instead of wrapping early. +- Match Quick Chat and Terminal typography in the dashboard footer. +- Prevent Create PR metadata generation from hanging and provide editable fallback content. +- Widen tablet Chat View agent response bubbles for easier reading. +- Retire dual-observe as a workflow-authoritative cutover prerequisite. +- Keep Planning Mode malformed AI responses retryable instead of stranding sessions. +- Keep Git Manager tabs reachable in mobile and docked layouts. +- Remove helper guidance above the task chat composer. +- Open Mission Manager mission-delete confirmations in the standard modal dialog. +- Make the task Changes tab inline diff panel wider on narrow screens. +- Equalize mobile bottom navigation side spacing. + +## 0.47.0 + +### @fusion/dashboard + +#### Patch Changes + +- @fusion/core@0.47.0 +- @fusion/engine@0.47.0 +- @fusion/i18n@0.39.10 +- @fusion-plugin-examples/cli-printing-press@0.1.27 +- @fusion-plugin-examples/compound-engineering@0.1.10 +- @fusion-plugin-examples/dependency-graph@0.1.41 +- @fusion-plugin-examples/roadmap@0.1.29 +- @fusion-plugin-examples/cursor-runtime@0.1.29 +- @fusion-plugin-examples/droid-runtime@0.1.36 +- @fusion-plugin-examples/hermes-runtime@0.2.60 +- @fusion-plugin-examples/openclaw-runtime@0.2.60 +- @fusion-plugin-examples/paperclip-runtime@0.2.60 + +### @fusion/desktop + +#### Patch Changes + +- @fusion/core@0.47.0 +- @fusion/dashboard@0.47.0 +- @fusion/engine@0.47.0 + +### @fusion/engine + +#### Patch Changes + +- @fusion/core@0.47.0 +- @fusion/pi-claude-cli@0.47.0 + +### @fusion/plugin-sdk + +#### Patch Changes + +- @fusion/core@0.47.0 + +### @runfusion/fusion + +#### Minor Changes + +- a6252e5: Merger unification (master-plan U0): `runAiMerge` (the FN-5633 clean-room AI merge path) is now the **sole** merge path. The engine dispatch, the `fn task merge` CLI command, and the UI-only (`--no-engine`) dashboard merge all route through `runAiMerge`; the legacy `aiMergeTask` pipeline is soft-deprecated (body retained, `@deprecated`). The `merger.mode` setting is now **inert and deprecated** — the type and field are retained as published surface, but the `"deterministic"` value no longer selects a different pipeline; observing it logs a one-time deprecation warning and proceeds via the unified AI merge path. A new shared `assertNotWorkspaceTaskMerge` guard rejects workspace-mode tasks (populated `workspaceWorktrees`) at every merge entry point with a clear error until per-repo merge support (master-plan U6) lands. +- e5382f0: **Breaking:** the `WorkflowOptionalStep` type, previously exported from `@runfusion/fusion`, is removed — any consumer importing it must migrate to `optional-group` nodes / `ResolvedWorkflowOptionalStep`. + + Retire the legacy optional-step DECLARATION model now that optional steps are graph-native `optional-group` nodes. Remove the `WorkflowOptionalStep` type and the `WorkflowIrV2.optionalSteps` IR field, drop the workflow node editor's optional-step declaration authoring panel (sidebar section, mobile tab, and collapse state), and stop threading an `optionalSteps` array through `flowToIr`/`serializeGraph`. A legacy persisted `optionalSteps` key on an old v2 workflow row is now tolerated (ignored, not validated) at parse so old rows still load as v2, and the rollback-downgrade heuristic still treats such a row as v2. The per-task optional-step toggle surfaces are unchanged — they continue to list and toggle optional steps sourced from `optional-group` nodes via `resolveWorkflowOptionalSteps` (`ResolvedWorkflowOptionalStep`). + +- e17e9bc: Add `X-Session-Id` and `X-Session-Affinity` request headers to all LLM chat completion requests. These let LLM gateways sticky-route consecutive requests from the same conversation to the same backend, and let observability tools (Langfuse, Arize, etc.) group the otherwise-stateless API calls of a session into a single multi-turn trace. Both headers carry the same stable identifier — the task id when available (stable across pause/resume), otherwise the pi session id. (#1675) +- 2019e5a: summary: Structured changeset format with AI-distilled release notes for cleaner, user-facing changelogs. + category: feature + dev: Changeset bodies now use labeled fields (summary, category, dev). A linter enforces the format in the PR gate. Release notes are distilled into grouped, end-user-facing sections. See .changeset/README.md for the format guide. +- 9c6b4dd: Workflow editor: add a Help section to the node detail pane. Every node now documents what it does, how to configure it, and its inputs/outputs/edges — including the engine-managed merge-lifecycle nodes (auto-merge gate, branch-group member integration, branch-group promotion, PR and recovery nodes), which are surfaced read-only with an "Engine-managed" badge. +- 0c031b8: Workflow editor: optional steps are now graph-native. A new `optional-group` container node (foreach/loop-style) holds a subgraph the executor runs once when the group is enabled for a task (per-task `enabledWorkflowSteps` + workflow `defaultOn`) and bypasses when disabled. All seven built-in add-ons (documentation-review, qa-check, security-audit, performance-review, accessibility-check, browser-verification, frontend-ux-design) are insertable from the node-editor palette as a node or wrapped in an optional-group. The built-in coding and stepwise-coding workflows now express `browser-verification` as an optional-group. Optional-group enable resolution correctly handles id collisions with add-on template ids, so a group's enable state is not silently bypassed during task creation/update. (The legacy declaration-based optional-steps model is retired in a sibling changeset; only the `workflow-step` seam infrastructure removal remains a follow-up.) +- 023e4b0: Workspace tasks no longer render blank in the dashboard. Task cards and the task + detail view now surface a workspace task's acquired per-sub-repo worktrees as a + read-only "N repos acquired" placeholder and flat repo → worktree/branch list, + instead of an empty branch area (no `task.worktree`/`task.branch`). +- 8f4098e: Add workspace mode: open a folder of git repositories as a single Fusion + project. The agent acquires per-repo worktrees on demand via + `fn_acquire_repo_worktree` as it discovers it needs to work in each sub-repo. +- 12d33c5: Workspace mode (Phase A / U2): harden per-repo worktree acquisition. Each sub-repo worktree now gets the task identity guard installed (single-repo parity), a per-repo base commit SHA captured local-first against that sub-repo's resolved integration branch (shared `integrationBranch` override stripped so each repo falls through to its own `origin/HEAD`), and same-sub-repo acquisition exclusivity registered in the path-keyed active-session registry. Re-acquiring an already-acquired `(taskId, repo)` is idempotent, and acquisition failures surface an error plus an audit event instead of silently stalling. +- 64e87f9: Workspace mode (Phase C U3): serialize concurrent same-sub-repo lands with a per-repo file-scope lease. When two workspace tasks try to land onto the SAME sub-repo's local integration ref at the same time, the merge phase now registers the sub-repo's absolute path in the path-keyed active-session registry under a distinct `workspace-repo-land` kind before each land and releases it in a `finally` (on land success or failure — no stuck lock). A second task contending for the same sub-repo fast-fails with a retryable `WorkspaceRepoLandBusyError`, which the existing partial-land auto-retry-then-park dispatch handles (consume a `mergeRetry`, re-enqueue with backoff, then operator-park). Disjoint sub-repos lease different paths and never serialize against each other. The lease prevents clean-room ai-merge worktree collisions; ref correctness is already guaranteed by `advanceIntegrationBranchRef`'s CAS (concurrent-advance → rebuild). +- 09bd01b: Workspace mode Phase A (U1): executor session scoping. In workspace mode the executor now skips the root worktree acquisition and every rootDir git preflight (base-commit capture, contamination, worktree-liveness), runs the agent session rooted at the browse-only workspace root, and tracks acquired sub-repo worktrees as a per-task set. Single-repo tasks are unchanged (one-element set, byte-for-byte preflight parity). +- fc9423e: Workspace mode (Phase B, U1): per-repo post-session change capture, contamination detection, and worktree-invariant verification. In workspace mode the executor now loops `task.workspaceWorktrees`, reusing `captureModifiedFiles` per sub-repo (diffing each against its own `baseCommitSha`, with a merge-base fallback when undefined) to aggregate repo-prefixed `task.modifiedFiles` and surface per-repo contamination, and un-stubs `verifyWorktreeInvariants` to assert each acquired worktree's git toplevel and `fusion/` branch. Single-repo behavior is unchanged. +- 81edbee: Workspace mode (Phase B, U2): per-repo review at both review entry points plus per-repo `fn_task_done` completion + scope-leak verification. In workspace mode both review call sites (the in-session `fn_review_step` tool and the step-inversion review seam) now loop the single-cwd `reviewStep` once per acquired sub-repo (cwd = each repo's worktree) and aggregate the repo-tagged verdicts as a conjunction — the task is reviewed only when every sub-repo approves, and the first failing sub-repo's verdict (with repo-tagged findings) drives the existing verdict→edge mapping. `fn_task_done` now verifies worktree invariants per acquired repo and iterates the scope-leak guard per sub-repo (cwd = repo worktree, repo `baseCommitSha`), blocking completion on any sub-repo carrying off-scope changes and naming the repo. Adds a minimal shared repo-prefix-derivation helper (`workspace-paths.ts`). Single-repo behavior is unchanged. + + Phase-B hardening: the per-repo scope-leak guard now fails CLOSED — a thrown capture/diff error in any sub-repo refuses `fn_task_done` (naming the repo) instead of failing open, and a scoped task that acquired zero sub-repo worktrees is blocked rather than silently passing. A legitimate per-repo `.changeset/` file is no longer falsely flagged off-scope (the always-allowed carve-out now runs against the repo-local path). Per-repo review stops at the first non-APPROVE sub-repo so a later repo's reviewer error can't mask an already-determined REVISE/RETHINK. Per-repo capture failures are isolated (one repo's error no longer drops the whole modified-files write), and the reported offending/failing repo is now deterministic (sorted repo iteration). Single-repo behavior remains unchanged. + +- 744ed09: Workspace mode Phase C (U1): per-repo merge loop. Extract `landOneRepo` from the + `runAiMerge` clean-room land closure (single-repo behavior unchanged) and add + `landWorkspaceTask`, which lands each acquired sub-repo's `fusion/` branch onto + that repo's OWN local integration ref (re-resolved per repo with overrides stripped), + land-as-you-go with no remote push. The engine merge dispatch and the user-facing + CLI/dashboard merge doors now route workspace tasks through this loop instead of + throwing; `store.mergeTask`, `aiMergeTask`, and the `runAiMerge` chokepoint keep + throwing `WorkspaceTaskMergeError` as defense-in-depth. +- 7544346: Workspace mode Phase C (U2): per-repo landed predicate, finalize-once, and idempotent + auto-retry-then-park. `landWorkspaceTask` now records each sub-repo's `landedSha` after + its branch advances that repo's local integration ref, and on a re-run SKIPS any repo + whose recorded `landedSha` is an ancestor of (or equals) its current integration tip — so + an interrupted multi-repo land retries only the un-landed repos and never re-advances an + already-landed ref. When every acquired repo's landed predicate holds, the task moves to + `done` EXACTLY ONCE via the task-global finalize path with an aggregate `mergeDetails` + (representative `commitSha` + a `workspaceLandedShas` map). A partial land (some repos + unlanded) does not move the task done; the engine merge dispatch surfaces it as a + retryable failure that consumes a `mergeRetry` and auto-retries the merge (skipping landed + repos) up to the configured max, then operator-parks the task as failed. +- 7cd204e: Workspace mode Phase D (U1): workspace-aware self-healing. The existing merging-status reconcilers no longer mis-finalize a partial-landed workspace task (recoverInterruptedMergingTasks now clears the transient `merging` status and re-enqueues the idempotent per-repo land instead of running the single-commit finalize over the non-git workspace root), and recoverMergeableReviewTasks now admits workspace tasks (task.worktree is null). Adds three reconcilers: partial-land recovery (re-enqueue via enqueueMerge, FORK-A unrecoverable → park failed; guarded by autoMerge:false + user-pause + workspace-aware liveness), phantom `workspace-repo-land` lease reclaim (new `entriesByKind` registry seam), and per-repo worktree cleanup from stored paths (no temp walk). New run-audit events: `task:reconcile-workspace-partial-land`(`-no-action`), `task:reclaim-phantom-workspace-land-lease`, `task:reconcile-orphaned-workspace-worktree`. + + Phase D P1 TOCTOU fix (merge-queue dispatch blind spot): the workspace partial-land and phantom-land-lease reconcilers now consult a new `ProjectEngine.isMergePending(taskId)` seam (true if the task is in the engine's in-memory `mergeQueue` or `mergeActive`). This closes the dequeue→rawMerge window where a workspace task is being merged but no other liveness signal fires yet (the id is shifted out of `mergeQueue` while `activeMergeTaskId` / `merging` status / the `workspace-repo-land` lease are not yet set inside `landWorkspaceTask`). The partial-land reconciler skips a merge-pending candidate (emitting `task:reconcile-workspace-partial-land-no-action` with reason `merge-pending`) instead of launching a second concurrent `landWorkspaceTask` (double-squash risk, since a same-task land lease is not contention), and lease reclaim leaves a merge-pending owner's not-yet-registered lease alone. Wired via `InProcessRuntime.setMergePendingProvider`; undefined (unwired) is treated as not-pending so existing guards still apply. + + Phase D review hardening: every single-commit-finalize self-healing site is now workspace-gated so a partial-landed workspace task can never be marked fully merged on one repo's commit — `recoverStuckMergeDeadlocks` (the twin of recoverInterruptedMergingTasks), `recoverOrphanOnlyScopeViolations`, `recoverAlreadyMergedReviewTasks`, `recoverBranchMisboundInReviewTasks`, and `recoverDoneTaskMergeMetadata` all skip workspace tasks and defer recovery to the workspace partial-land reconciler. The partial-land reconciler now bounds its `enqueueMerge` re-enqueue (parks `failed` after repeated queue rejections instead of looping forever) and treats a branch-gone-and-not-landed sub-repo as unrecoverable even when a stale unreachable `landedSha` is present. Phantom land-lease reclaim now only reclaims a demonstrably TERMINAL owner (never an `in-progress` executing task that registered its lease early). Orphan per-repo worktree removal failures are now engine-logged and retry-bounded. The canonical `isRepoLanded` predicate moved to a new dependency-free `workspace-land-predicate` module, dissolving the self-healing ↔ merger-ai import cycle (public export preserved). + +#### Patch Changes + +- 038ac30: Saved agent tool-output details now default off to reduce persisted log payloads, while timeline rows remain logged and detailed tool arguments/results stay available via the global `persistAgentToolOutput: true` opt-in. +- 627bdcf: Harden the workspace per-repo land loop against partial-failure races. A lost `landedSha` DB write after a sub-repo's integration ref already advanced no longer silently continues — it escalates to a retryable partial-land error, and the landed predicate now recognizes an already-landed repo via its `Fusion-Task-Id` trailer on retry, so a re-run never produces a second squash commit. The land lease is now taskId-aware across registry kinds: a merging task can no longer clobber an executing task's acquire lease on a shared sub-repo (any foreign-task holder is treated as contention), and the active-session registry rejects foreign-task overwrites instead of silently clobbering. The transient `merging` status is always reset before any throw escapes the land loop (no stuck-`merging` leak), and finalize re-reads the latest task and no longer swallows the merge-details persist failure (no finalizing on a stale row). + + Harden the workspace merge dispatch and user-facing merge doors. The partial-land retry catch now fails closed when the task row can't be read (DB outage no longer triggers an indefinite retry storm). The merge-confirmed reachability fast-path skips workspace tasks (whose recorded commitSha lives in a sub-repo, not the workspace root) so a fully-landed workspace task is no longer demoted/parked. The dashboard and CLI merge doors now report `merged: true` (and `mergeConfirmed`/`commitSha`) when a workspace fully lands, mirroring the engine result. Transient sub-repo land-lease contention (`WorkspaceRepoLandBusyError`) is re-enqueued with capped backoff on a separate bounded counter instead of burning the merge-retry quota, so pure contention can't park a never-failed task. Retry backoff is capped at 60s. + +- 3a71237: Address Phase C workspace merge-loop review feedback. A sub-repo recognized as already-landed via the `Fusion-Task-Id` trailer fallback (when its `landedSha` persist was lost) now resolves and re-records a concrete `landedSha`, so finalize no longer drops it and mis-reports a fully-landed workspace task as a no-op (`mergeConfirmed:false`). A manual merge that hits sub-repo land-lease contention now surfaces the busy error to the user without consuming the persisted `mergeRetries` quota (matching the auto path's separate busy counter). The partial-land retry persists the incremented retry count before arming the backoff timer — a failed write now fails closed instead of looping without consuming budget — and clears the stale busy-contention counter when a real partial land supersedes transient busy failures. The CLI and dashboard merge doors use the shared `isWorkspaceTask` predicate instead of re-inlining the workspace check, and integration-branch shell interpolation in base-commit capture uses POSIX single-quote escaping. +- e9a6955: Fix narrow right-sidebar Dev Server preview overlap by replacing the inline preview with an accessible modal launcher when the dock is very narrow, while keeping inline preview for full-page, mobile viewport, and expanded pop-out hosts. +- 7b60539: Fix ntfy test notifications to honor unsaved Settings form config so users can enable ntfy, enter a valid topic/server/token, and send a test notification before saving. +- cf2f3ba: Close task detail dialogs and embedded task-detail hosts immediately after delete confirmations complete, while delete requests continue reporting success or error toasts asynchronously. +- b9821ee: Stack task-detail Chat agent headers above output blocks in the List View split-pane detail pane while preserving full-width desktop chat layout. +- f062819: Fix multiworkspace tasks failing to complete. `task.workspaceWorktrees` is now durably persisted (it previously had no SQLite column, so `fn_acquire_repo_worktree`'s write was dropped on every persist and `fn_task_done` always reported "acquired no sub-repo worktrees"). Concurrent workspace tasks no longer collide on the shared browse-root active-session path — each task gets a task-scoped session key, so a second workspace task no longer fails with "active-session path … is held by …". + +### runfusion.ai + +#### Patch Changes + +- Updated dependencies [038ac30] +- Updated dependencies [627bdcf] +- Updated dependencies [3a71237] +- Updated dependencies [e9a6955] +- Updated dependencies [7b60539] +- Updated dependencies [cf2f3ba] +- Updated dependencies [b9821ee] +- Updated dependencies [a6252e5] +- Updated dependencies [f062819] +- Updated dependencies [e5382f0] +- Updated dependencies [e17e9bc] +- Updated dependencies [2019e5a] +- Updated dependencies [9c6b4dd] +- Updated dependencies [0c031b8] +- Updated dependencies [023e4b0] +- Updated dependencies [8f4098e] +- Updated dependencies [12d33c5] +- Updated dependencies [64e87f9] +- Updated dependencies [09bd01b] +- Updated dependencies [fc9423e] +- Updated dependencies [81edbee] +- Updated dependencies [744ed09] +- Updated dependencies [7544346] +- Updated dependencies [7cd204e] + - @runfusion/fusion@0.47.0 ## 0.46.0 @@ -9768,6 +9897,14 @@ for reference. - Updated dependencies [a2ed6d0] - @runfusion/fusion@0.1.0 +## 0.39.11 + +### @fusion/i18n + +#### Patch Changes + +- @fusion/core@0.48.0 + ## 0.39.10 ### @fusion/i18n @@ -9850,6 +9987,14 @@ for reference. - @fusion/core@0.40.0 +## 0.11.37 + +### @fusion/droid-cli + +#### Patch Changes + +- @fusion-plugin-examples/droid-runtime@0.1.37 + ## 0.11.36 ### @fusion/droid-cli diff --git a/package.json b/package.json index 707ed4613d..229b5eb2b1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fusion-workspace", - "version": "0.47.0", + "version": "0.48.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 6254d065c6..fbf99c520c 100644 --- a/packages/cli-alias/CHANGELOG.md +++ b/packages/cli-alias/CHANGELOG.md @@ -1,5 +1,25 @@ # runfusion.ai +## 0.48.0 + +### Patch Changes + +- Updated dependencies [a20235b] +- Updated dependencies [d7f3c70] +- Updated dependencies [214a60c] +- Updated dependencies [5a192ec] +- Updated dependencies [a554ceb] +- Updated dependencies [d359306] +- Updated dependencies [29530b5] +- Updated dependencies [eb3833a] +- Updated dependencies [3ae053e] +- Updated dependencies [f918896] +- Updated dependencies [bd5a779] +- Updated dependencies [7a00811] +- Updated dependencies [e473ba6] +- Updated dependencies [e702185] + - @runfusion/fusion@0.48.0 + ## 0.47.0 ### Patch Changes diff --git a/packages/cli-alias/package.json b/packages/cli-alias/package.json index 4a8c62bc43..c6a5d0e0a7 100644 --- a/packages/cli-alias/package.json +++ b/packages/cli-alias/package.json @@ -1,6 +1,6 @@ { "name": "runfusion.ai", - "version": "0.47.0", + "version": "0.48.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 c21c75f4cb..61158163bc 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,55 @@ # @runfusion/fusion +## 0.48.0 + +### Minor Changes + +- d7f3c70: summary: Add a workflow dropdown to filter tasks in the dependency Graph view. + category: feature + dev: Scopes plugin-hosted graph tasks through the dashboard workflow assignment payload. + +### Patch Changes + +- a20235b: summary: Fix release pipeline so binaries and desktop installers publish again. + category: fix + dev: github-release job sparse-checks-out CHANGELOG.md (was missing a checkout, so the release-notes step threw ENOENT and published 0 assets on v0.47.0); desktop esbuild build externalizes @fusion/engine so it no longer tries to bundle node-pty's native .node binaries. +- 214a60c: summary: Let quick-entry text use the full entry box width instead of wrapping early. + category: fix + dev: Adds a QuickEntryBox-specific textarea padding override and CSS cascade regression coverage. +- 5a192ec: summary: Add a New Task dialog picker that seeds prompts from current-remote GitHub issues and PRs. + category: feature + dev: Reuses existing GitHub remote, issue, and pull list endpoints; PR prompts direct agents to address review comments. +- a554ceb: summary: Match Quick Chat and Terminal typography in the dashboard footer. + category: fix + dev: Footer launcher CSS now shares inherited font and color contracts between Quick Chat and Terminal. +- d359306: summary: Prevent Create PR metadata generation from hanging and provide editable fallback content. + category: fix + dev: Bounds PR metadata generation and validates non-empty PR bodies before GitHub PR creation. +- 29530b5: summary: Widen tablet Chat View agent response bubbles for easier reading. + category: fix + dev: Uses ChatView container queries to target assistant, streaming, and failure bubbles without widening user or Quick Chat bubbles. +- eb3833a: summary: Retire dual-observe as a workflow-authoritative cutover prerequisite. + category: fix + dev: Cutover readiness now uses the authoritative flag plus clean populated parity summaries; stale dual-observe settings remain inert. +- 3ae053e: summary: Keep Planning Mode malformed AI responses retryable instead of stranding sessions. + category: fix + dev: Hardens planning JSON candidate selection and persists bounded parse failures as retryable AI-session errors. +- f918896: summary: Keep Git Manager tabs reachable in mobile and docked layouts. + category: fix + dev: Makes the shared Git Manager tablist a non-wrapping horizontal touch scroller in mobile and embedded narrow containers. +- bd5a779: summary: Remove helper guidance above the task chat composer. + category: fix + dev: Task chat placeholders now carry active/idle/done composer guidance without an extra status shell. +- 7a00811: summary: Open Mission Manager mission-delete confirmations in the standard modal dialog. + category: fix + dev: Routes mission list and detail delete affordances through ConfirmDialogProvider with regression coverage. +- e473ba6: summary: Make the task Changes tab inline diff panel wider on narrow screens. + category: fix + dev: Reclaims task-detail body padding for compact inline diff lists with mobile CSS contract coverage. +- e702185: summary: Equalize mobile bottom navigation side spacing. + category: fix + dev: Adds tokenized MobileNavBar horizontal padding while preserving ICB and safe-area behavior. + ## 0.47.0 ### Minor Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 65cde80c9f..958138b000 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@runfusion/fusion", - "version": "0.47.0", + "version": "0.48.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 2c34023fa7..f260a2d45b 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,7 @@ # @fusion/core +## 0.48.0 + ## 0.47.0 ## 0.46.0 diff --git a/packages/core/package.json b/packages/core/package.json index a1cb775d90..5e6acb1a48 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/core", - "version": "0.47.0", + "version": "0.48.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 50dc3ce054..ba1d496576 100644 --- a/packages/dashboard/CHANGELOG.md +++ b/packages/dashboard/CHANGELOG.md @@ -1,5 +1,22 @@ # @fusion/dashboard +## 0.48.0 + +### Patch Changes + +- @fusion/core@0.48.0 +- @fusion/engine@0.48.0 +- @fusion/i18n@0.39.11 +- @fusion-plugin-examples/cli-printing-press@0.1.28 +- @fusion-plugin-examples/compound-engineering@0.1.11 +- @fusion-plugin-examples/dependency-graph@0.1.42 +- @fusion-plugin-examples/roadmap@0.1.30 +- @fusion-plugin-examples/cursor-runtime@0.1.30 +- @fusion-plugin-examples/droid-runtime@0.1.37 +- @fusion-plugin-examples/hermes-runtime@0.2.61 +- @fusion-plugin-examples/openclaw-runtime@0.2.61 +- @fusion-plugin-examples/paperclip-runtime@0.2.61 + ## 0.47.0 ### Patch Changes diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index 226e9ef736..536a6fc7e0 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/dashboard", - "version": "0.47.0", + "version": "0.48.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 b31eb62bac..9c31a14e5c 100644 --- a/packages/desktop/CHANGELOG.md +++ b/packages/desktop/CHANGELOG.md @@ -1,5 +1,13 @@ # @fusion/desktop +## 0.48.0 + +### Patch Changes + +- @fusion/core@0.48.0 +- @fusion/dashboard@0.48.0 +- @fusion/engine@0.48.0 + ## 0.47.0 ### Patch Changes diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 75da40f6f4..a40f0040f3 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@fusion/desktop", "productName": "Fusion", - "version": "0.47.0", + "version": "0.48.0", "license": "MIT", "author": { "name": "Runfusion", diff --git a/packages/droid-cli/CHANGELOG.md b/packages/droid-cli/CHANGELOG.md index cc92649e41..72fae5a9ac 100644 --- a/packages/droid-cli/CHANGELOG.md +++ b/packages/droid-cli/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion/droid-cli +## 0.11.37 + +### Patch Changes + +- @fusion-plugin-examples/droid-runtime@0.1.37 + ## 0.11.36 ### Patch Changes diff --git a/packages/droid-cli/package.json b/packages/droid-cli/package.json index 909ee2f570..17556fe231 100644 --- a/packages/droid-cli/package.json +++ b/packages/droid-cli/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/droid-cli", - "version": "0.11.36", + "version": "0.11.37", "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 b859aee5bf..b32614b4ff 100644 --- a/packages/engine/CHANGELOG.md +++ b/packages/engine/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion/engine +## 0.48.0 + +### Patch Changes + +- @fusion/core@0.48.0 +- @fusion/pi-claude-cli@0.48.0 + ## 0.47.0 ### Patch Changes diff --git a/packages/engine/package.json b/packages/engine/package.json index e36988d96f..9cb78093e8 100644 --- a/packages/engine/package.json +++ b/packages/engine/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/engine", - "version": "0.47.0", + "version": "0.48.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 b5c6a11aa1..f809965802 100644 --- a/packages/i18n/CHANGELOG.md +++ b/packages/i18n/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion/i18n +## 0.39.11 + +### Patch Changes + +- @fusion/core@0.48.0 + ## 0.39.10 ### Patch Changes diff --git a/packages/i18n/package.json b/packages/i18n/package.json index b39db188a7..4837e3819c 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/i18n", - "version": "0.39.10", + "version": "0.39.11", "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 6713d4c6d4..a7612e8b95 100644 --- a/packages/mobile/CHANGELOG.md +++ b/packages/mobile/CHANGELOG.md @@ -1,5 +1,7 @@ # @fusion/mobile +## 0.48.0 + ## 0.47.0 ## 0.46.0 diff --git a/packages/mobile/package.json b/packages/mobile/package.json index d28b5caf82..6a306db9d4 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/mobile", - "version": "0.47.0", + "version": "0.48.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 7c4cd3b4b4..65c8af4fbd 100644 --- a/packages/pi-claude-cli/CHANGELOG.md +++ b/packages/pi-claude-cli/CHANGELOG.md @@ -1,5 +1,7 @@ # @fusion/pi-claude-cli +## 0.48.0 + ## 0.47.0 ## 0.46.0 diff --git a/packages/pi-claude-cli/package.json b/packages/pi-claude-cli/package.json index 66b03d43f5..e8688fbb9b 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.47.0", + "version": "0.48.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 ff729146d3..954d8ded03 100644 --- a/packages/plugin-sdk/CHANGELOG.md +++ b/packages/plugin-sdk/CHANGELOG.md @@ -1,5 +1,11 @@ # @fusion/plugin-sdk +## 0.48.0 + +### Patch Changes + +- @fusion/core@0.48.0 + ## 0.47.0 ### Patch Changes diff --git a/packages/plugin-sdk/package.json b/packages/plugin-sdk/package.json index 001d5b6b22..73b225b712 100644 --- a/packages/plugin-sdk/package.json +++ b/packages/plugin-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@fusion/plugin-sdk", - "version": "0.47.0", + "version": "0.48.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 3074873bee..823b9b9d73 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.61 + +### Patch Changes + +- @fusion/plugin-sdk@0.48.0 + ## 0.2.60 ### Patch Changes diff --git a/plugins/examples/fusion-plugin-auto-label/package.json b/plugins/examples/fusion-plugin-auto-label/package.json index bf5c44455d..a025795816 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.60", + "version": "0.2.61", "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 ad1f284eb8..09b1f7e09b 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.61 + +### Patch Changes + +- @fusion/plugin-sdk@0.48.0 + ## 0.2.60 ### Patch Changes diff --git a/plugins/examples/fusion-plugin-ci-status/package.json b/plugins/examples/fusion-plugin-ci-status/package.json index 36d5152b6e..6672865c0d 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.60", + "version": "0.2.61", "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 3994810d99..713f0efaae 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.61 + +### Patch Changes + +- @fusion/plugin-sdk@0.48.0 + ## 0.2.60 ### Patch Changes diff --git a/plugins/examples/fusion-plugin-notification/package.json b/plugins/examples/fusion-plugin-notification/package.json index 1acc9c8af6..b9d24b9264 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.60", + "version": "0.2.61", "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 32c1983159..3ddc7c4624 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.61 + +### Patch Changes + +- @fusion/plugin-sdk@0.48.0 + ## 0.2.60 ### Patch Changes diff --git a/plugins/examples/fusion-plugin-settings-demo/package.json b/plugins/examples/fusion-plugin-settings-demo/package.json index a90b932f2d..8c533a64c4 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.60", + "version": "0.2.61", "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 00dd7430f4..0cafeda840 100644 --- a/plugins/fusion-plugin-acp-runtime/CHANGELOG.md +++ b/plugins/fusion-plugin-acp-runtime/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion-plugin-examples/acp-runtime +## 0.1.11 + +### Patch Changes + +- @fusion/core@0.48.0 +- @fusion/plugin-sdk@0.48.0 + ## 0.1.10 ### Patch Changes diff --git a/plugins/fusion-plugin-acp-runtime/package.json b/plugins/fusion-plugin-acp-runtime/package.json index dcc9d4dda0..21e707c61c 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.10", + "version": "0.1.11", "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 581a4932c5..5b3024de19 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.31 + +### Patch Changes + +- @fusion/plugin-sdk@0.48.0 + ## 0.1.30 ### Patch Changes diff --git a/plugins/fusion-plugin-agent-browser/package.json b/plugins/fusion-plugin-agent-browser/package.json index 749ae0b9b3..675528b7b3 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.30", + "version": "0.1.31", "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 79784f6e71..318bfeca5a 100644 --- a/plugins/fusion-plugin-cli-printing-press/CHANGELOG.md +++ b/plugins/fusion-plugin-cli-printing-press/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion-plugin-examples/cli-printing-press +## 0.1.28 + +### Patch Changes + +- @fusion/core@0.48.0 +- @fusion/plugin-sdk@0.48.0 + ## 0.1.27 ### Patch Changes diff --git a/plugins/fusion-plugin-cli-printing-press/package.json b/plugins/fusion-plugin-cli-printing-press/package.json index 0ad47f6ed6..727d13cf46 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.27", + "version": "0.1.28", "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 ac24252083..7e043e5768 100644 --- a/plugins/fusion-plugin-compound-engineering/CHANGELOG.md +++ b/plugins/fusion-plugin-compound-engineering/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion-plugin-examples/compound-engineering +## 0.1.11 + +### Patch Changes + +- @fusion/core@0.48.0 +- @fusion/plugin-sdk@0.48.0 + ## 0.1.10 ### Patch Changes diff --git a/plugins/fusion-plugin-compound-engineering/package.json b/plugins/fusion-plugin-compound-engineering/package.json index 5eb220c28b..5db05f5b44 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.10", + "version": "0.1.11", "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 99ec05c8ac..9be22278be 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.30 + +### Patch Changes + +- @fusion/plugin-sdk@0.48.0 + ## 0.1.29 ### Patch Changes diff --git a/plugins/fusion-plugin-cursor-runtime/package.json b/plugins/fusion-plugin-cursor-runtime/package.json index cdda955421..8ad95ff729 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.29", + "version": "0.1.30", "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 a0ddd15b4f..f4433a15a0 100644 --- a/plugins/fusion-plugin-dependency-graph/CHANGELOG.md +++ b/plugins/fusion-plugin-dependency-graph/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion-plugin-examples/dependency-graph +## 0.1.42 + +### Patch Changes + +- @fusion/core@0.48.0 +- @fusion/plugin-sdk@0.48.0 + ## 0.1.41 ### Patch Changes diff --git a/plugins/fusion-plugin-dependency-graph/package.json b/plugins/fusion-plugin-dependency-graph/package.json index 3231e0404c..ba87943b75 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.41", + "version": "0.1.42", "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 19d4f27b8d..38481d61a1 100644 --- a/plugins/fusion-plugin-droid-runtime/CHANGELOG.md +++ b/plugins/fusion-plugin-droid-runtime/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.1.37 + +### Patch Changes + +- @fusion/plugin-sdk@0.48.0 + ## 0.1.36 ### Patch Changes diff --git a/plugins/fusion-plugin-droid-runtime/package.json b/plugins/fusion-plugin-droid-runtime/package.json index f7ba56bd9b..a7efa5c3d3 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.36", + "version": "0.1.37", "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 4b829508e5..9b41e34c69 100644 --- a/plugins/fusion-plugin-even-realities-glasses/CHANGELOG.md +++ b/plugins/fusion-plugin-even-realities-glasses/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion-plugin-examples/even-realities-glasses +## 0.1.30 + +### Patch Changes + +- @fusion/core@0.48.0 +- @fusion/plugin-sdk@0.48.0 + ## 0.1.29 ### Patch Changes diff --git a/plugins/fusion-plugin-even-realities-glasses/package.json b/plugins/fusion-plugin-even-realities-glasses/package.json index efa1f12382..631bd27e0a 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.29", + "version": "0.1.30", "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 97cdce1e9e..6e1178d35b 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.61 + +### Patch Changes + +- @fusion/plugin-sdk@0.48.0 + ## 0.2.60 ### Patch Changes diff --git a/plugins/fusion-plugin-hermes-runtime/package.json b/plugins/fusion-plugin-hermes-runtime/package.json index f63a88ded7..34932dc913 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.60", + "version": "0.2.61", "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 3f8c87ab6d..31d199ce22 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.61 + +### Patch Changes + +- @fusion/plugin-sdk@0.48.0 + ## 0.2.60 ### Patch Changes diff --git a/plugins/fusion-plugin-openclaw-runtime/package.json b/plugins/fusion-plugin-openclaw-runtime/package.json index b39d88fd75..c3e78090c2 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.60", + "version": "0.2.61", "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 c6a9bfcc0e..784446edc1 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.61 + +### Patch Changes + +- @fusion/plugin-sdk@0.48.0 + ## 0.2.60 ### Patch Changes diff --git a/plugins/fusion-plugin-paperclip-runtime/package.json b/plugins/fusion-plugin-paperclip-runtime/package.json index d977764e04..eda5a36b66 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.60", + "version": "0.2.61", "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 7f81b22003..6c98f0cd83 100644 --- a/plugins/fusion-plugin-reports/CHANGELOG.md +++ b/plugins/fusion-plugin-reports/CHANGELOG.md @@ -1,5 +1,13 @@ # @fusion-plugin-examples/reports +## 0.1.30 + +### Patch Changes + +- @fusion/core@0.48.0 +- @fusion/dashboard@0.48.0 +- @fusion/plugin-sdk@0.48.0 + ## 0.1.29 ### Patch Changes diff --git a/plugins/fusion-plugin-reports/package.json b/plugins/fusion-plugin-reports/package.json index b5699cf68d..6a085e0035 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.29", + "version": "0.1.30", "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 85d00fda9f..4af5bd1b60 100644 --- a/plugins/fusion-plugin-roadmap/CHANGELOG.md +++ b/plugins/fusion-plugin-roadmap/CHANGELOG.md @@ -1,5 +1,12 @@ # @fusion-plugin-examples/roadmap +## 0.1.30 + +### Patch Changes + +- @fusion/core@0.48.0 +- @fusion/plugin-sdk@0.48.0 + ## 0.1.29 ### Patch Changes diff --git a/plugins/fusion-plugin-roadmap/package.json b/plugins/fusion-plugin-roadmap/package.json index 3142960367..e18febc362 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.29", + "version": "0.1.30", "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 d090b69fa0..acb4a8b745 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.30 + +### Patch Changes + +- @fusion/plugin-sdk@0.48.0 + ## 0.1.29 ### Patch Changes diff --git a/plugins/fusion-plugin-whatsapp-chat/package.json b/plugins/fusion-plugin-whatsapp-chat/package.json index 8255ee221c..dd3bb0fc83 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.29", + "version": "0.1.30", "type": "module", "description": "WhatsApp Web (Baileys) chat bridge for Fusion agents", "keywords": [