32 KiB
@fusion/dashboard
0.27.0
Patch Changes
- @fusion/core@0.27.0
- @fusion/engine@0.27.0
- @fusion-plugin-examples/cli-printing-press@0.1.2
- @fusion-plugin-examples/dependency-graph@0.1.16
- @fusion-plugin-examples/roadmap@0.1.4
- @fusion-plugin-examples/cursor-runtime@0.1.4
- @fusion-plugin-examples/droid-runtime@0.1.11
- @fusion-plugin-examples/hermes-runtime@0.2.35
- @fusion-plugin-examples/openclaw-runtime@0.2.35
- @fusion-plugin-examples/paperclip-runtime@0.2.35
0.26.0
Patch Changes
- @fusion/core@0.26.0
- @fusion/engine@0.26.0
- @fusion-plugin-examples/dependency-graph@0.1.15
- @fusion-plugin-examples/roadmap@0.1.3
- @fusion-plugin-examples/cursor-runtime@0.1.3
- @fusion-plugin-examples/droid-runtime@0.1.10
- @fusion-plugin-examples/hermes-runtime@0.2.34
- @fusion-plugin-examples/openclaw-runtime@0.2.34
- @fusion-plugin-examples/paperclip-runtime@0.2.34
0.25.0
Patch Changes
- @fusion/core@0.25.0
- @fusion/engine@0.25.0
- @fusion-plugin-examples/dependency-graph@0.1.14
- @fusion-plugin-examples/roadmap@0.1.2
- @fusion-plugin-examples/cursor-runtime@0.1.2
- @fusion-plugin-examples/droid-runtime@0.1.9
- @fusion-plugin-examples/hermes-runtime@0.2.33
- @fusion-plugin-examples/openclaw-runtime@0.2.33
- @fusion-plugin-examples/paperclip-runtime@0.2.33
0.24.0
Patch Changes
- @fusion/core@0.24.0
- @fusion/engine@0.24.0
- @fusion-plugin-examples/dependency-graph@0.1.13
- @fusion-plugin-examples/roadmap@0.1.1
- @fusion-plugin-examples/cursor-runtime@0.1.1
- @fusion-plugin-examples/droid-runtime@0.1.8
- @fusion-plugin-examples/hermes-runtime@0.2.32
- @fusion-plugin-examples/openclaw-runtime@0.2.32
- @fusion-plugin-examples/paperclip-runtime@0.2.32
0.23.0
Patch Changes
- @fusion/core@0.23.0
- @fusion/engine@0.23.0
- @fusion-plugin-examples/dependency-graph@0.1.12
- @fusion-plugin-examples/droid-runtime@0.1.7
- @fusion-plugin-examples/hermes-runtime@0.2.31
- @fusion-plugin-examples/openclaw-runtime@0.2.31
- @fusion-plugin-examples/paperclip-runtime@0.2.31
0.22.0
Minor Changes
-
e658e8e: Decouple permanent agent heartbeats from task state, and add per-agentallowParallelExecutionsetting.Heartbeats now run for permanent agents regardless of bound-task block state — the prior early-exit on
queued + blockedByis removed along with its dead state-tracking machinery.HEARTBEAT_SYSTEM_PROMPTis rewritten to scope heartbeats to ambient coordination (messaging, memory, finding work, delegation, surfacing/chasing blockers, status); task body work continues to run via the executor path. Ephemeral agents are unchanged — they don't run heartbeats and their blocked-task gating in the scheduler is untouched.New
allowParallelExecutionflag (defaulttrue, permanent agents only) onAgentHeartbeatConfig. Whenfalse, the heartbeat and task executor paths serialize symmetrically: a heartbeat will not start while the agent's bound task has an active executor session, and an executor session will not start while the agent has an active heartbeat run. Either side re-dispatches the other's deferred work on completion viaresumeTaskForAgentand the in-process runtime'sonRunCompletedhook.UI toggle surfaces in the agent's Heartbeat Settings tab alongside
runMissedHeartbeatOnStartup. -
bb32765: Add a "Tools: On/Off" toggle next to the existing "Markdown/Plain" toggle in the agent log viewer (used by both agent logs and task agent logs). When tool output is off, entries of typetool/tool_result/tool_errorare hidden — only agent text and thinking are shown. Both toggles now persist globally across sessions vialocalStorage(fn-agent-log-markdown,fn-agent-log-tool-output).
Patch Changes
9d13295: Move the agent Import button to the global agents header, next to "New Agent", and remove it from individual agent detail pages and the controls panel.11e5f69: Show provider icons in chat: small icon next to the model name in the sidebar session list, and replace the generic robot icon in the chat thread header and assistant message avatars with the active provider icon.24017b8: Drop residualterminatedAgentState references that the merger autostash dropped during FN-3530 cleanup:[data-state="terminated"]selectors inAgentListModal.css,--terminatedCSS-class assertions inagent-css-classes.test.ts, and astate: "terminated"test fixture inroutes-agents.test.ts(nowpaused, which is correctly rejected as paused→paused is not a valid transition).- Updated dependencies [
e658e8e] - Updated dependencies [
aecc050] - Updated dependencies [
6ee3225] - Updated dependencies [
81bf882]- @fusion/core@0.22.0
- @fusion/engine@0.22.0
- @fusion-plugin-examples/dependency-graph@0.1.11
- @fusion-plugin-examples/droid-runtime@0.1.6
- @fusion-plugin-examples/hermes-runtime@0.2.30
- @fusion-plugin-examples/openclaw-runtime@0.2.30
- @fusion-plugin-examples/paperclip-runtime@0.2.30
0.21.0
Patch Changes
e6fd593: Differentiate the CLI banner between missing-install and version-mismatch states: when the installedfn/fusionCLI is out of date, show "Update the Fusion CLI" with current vs target versions and an "Update with npm" button instead of the generic install copy.dc8863d: AddblockedtoFeatureStatusso blocked features render with mission-blocked colors in the mission manager.- @fusion/core@0.21.0
- @fusion/engine@0.21.0
- @fusion-plugin-examples/dependency-graph@0.1.10
- @fusion-plugin-examples/droid-runtime@0.1.5
- @fusion-plugin-examples/hermes-runtime@0.2.29
- @fusion-plugin-examples/openclaw-runtime@0.2.29
- @fusion-plugin-examples/paperclip-runtime@0.2.29
0.20.0
Patch Changes
ba6666f: Fix Planning Mode modal getting stuck at partial height on mobile. Two issues: (1)useModalResizePersistwas replaying a desktop-saved pixel height into the inlinestyleattribute, overriding the mobileheight: 100dvhrule and leaving the modal at half-screen even before the keyboard appeared — now skipped on touch devices ≤768px wide. (2) When the iOS keyboard was dismissed, React reconciled the removed CSS custom properties (--vv-height,--keyboard-overlap,--vv-offset-top) by setting them to empty string instead of callingremoveProperty(). On Safari that leftvar(--vv-height, 100dvh)resolving to empty (the fallback only kicks in when the variable is undefined), collapsing the modal to content height — now driven imperatively viasetProperty/removePropertyon the modal ref.- @fusion/core@0.20.0
- @fusion/engine@0.20.0
- @fusion-plugin-examples/dependency-graph@0.1.9
- @fusion-plugin-examples/droid-runtime@0.1.4
- @fusion-plugin-examples/hermes-runtime@0.2.28
- @fusion-plugin-examples/openclaw-runtime@0.2.28
- @fusion-plugin-examples/paperclip-runtime@0.2.28
0.19.0
Patch Changes
082c62a: Fix a cross-agent overwrite bug in the Agents split view. The Config tab's form state was initialized once at mount and never resynced onagentchange, while the master-detail layout reused the same<AgentDetailView>/<ConfigTab>instance across selections (nokey). Switching agents while sitting on the Config tab madehasChangesevaluate true (stale form values vs. the newly loaded agent), and the 700ms autosave then wrote the previously-viewed agent's name/role/title/icon/model/skills onto the newly-selected agent's row. Addskey={selectedAgentId}to<AgentDetailView>andkey={agent.id}to<ConfigTab>so both remount with fresh state on every agent transition.- Updated dependencies [
54f2832]- @fusion/engine@0.19.0
- @fusion/core@0.19.0
- @fusion-plugin-examples/dependency-graph@0.1.8
- @fusion-plugin-examples/droid-runtime@0.1.3
- @fusion-plugin-examples/hermes-runtime@0.2.27
- @fusion-plugin-examples/openclaw-runtime@0.2.27
- @fusion-plugin-examples/paperclip-runtime@0.2.27
0.18.1
Patch Changes
- @fusion/core@0.18.1
- @fusion/engine@0.18.1
- @fusion-plugin-examples/dependency-graph@0.1.7
- @fusion-plugin-examples/droid-runtime@0.1.2
- @fusion-plugin-examples/hermes-runtime@0.2.26
- @fusion-plugin-examples/openclaw-runtime@0.2.26
- @fusion-plugin-examples/paperclip-runtime@0.2.26
0.18.0
Patch Changes
- @fusion/core@0.18.0
- @fusion/engine@0.18.0
- @fusion-plugin-examples/dependency-graph@0.1.6
- @fusion-plugin-examples/droid-runtime@0.1.1
- @fusion-plugin-examples/hermes-runtime@0.2.25
- @fusion-plugin-examples/openclaw-runtime@0.2.25
- @fusion-plugin-examples/paperclip-runtime@0.2.25
0.17.2
Patch Changes
- Updated dependencies [
17a6634]- @fusion/engine@0.17.2
- @fusion/core@0.17.2
- @fusion-plugin-examples/dependency-graph@0.1.5
- @fusion-plugin-examples/hermes-runtime@0.2.24
- @fusion-plugin-examples/openclaw-runtime@0.2.24
- @fusion-plugin-examples/paperclip-runtime@0.2.24
0.17.1
Patch Changes
-
08aa64e: Fix mobile keyboard regressions in the dashboard.- Dashboard pushed up after closing a modal on mobile. Adds a shared
useMobileScrollLockhook that pinsbodywithposition: fixed; top: -scrollY; width: 100%while a fullscreen mobile overlay is open and restores scroll on cleanup — the same pattern Bootstrap, Headless UI, and Stripe Elements use to prevent iOS Safari from scrolling the document (and shiftingvisualViewport.offsetTop) when an input inside aposition: fixedoverlay is focused. Reference-counted so nested overlays don't release each other's locks. Wired into TodoModal, PlanningModeModal, TaskDetailModal, NewTaskModal, SettingsModal, MailboxModal, AddNodeModal, MissionInterviewModal, MilestoneSliceInterviewModal, SubtaskBreakdownModal, GitHubImportModal, AgentGenerationModal, AgentImportModal, ScriptsModal, ResearchTaskActionModal, and ChatView (replacing its inline body-overflow effect). - Auto-reload prompt missed rebuilds. Widens
computeBuildVersioninvite.config.tsto hash the entireapp/source tree (FN-3333 follow-up). The previous version only hashedapp/main.tsxandpackage.json, so edits to any other component or stylesheet produced an identical build version and the version-check poll never noticed the rebuild. - ChatView composer crawled down with iOS's keyboard-dismiss animation.
useMobileKeyboardnow requires a focused input forkeyboardOpen=true. The moment any input blurs,keyboardOpenflips tofalseinstead of waiting for iOS's slow visualViewport animation to settle (hundreds of ms). This propagates to App-levelmobileKeyboardOpenso the MobileNavBar reappears andproject-contentregains its nav-bar padding immediately — chat-thread, modals, and any other consumer all snap to their post-keyboard layout in one frame.
- Dashboard pushed up after closing a modal on mobile. Adds a shared
-
Updated dependencies [
c2f6dd3]- @fusion/engine@0.17.1
- @fusion/core@0.17.1
- @fusion-plugin-examples/dependency-graph@0.1.4
- @fusion-plugin-examples/hermes-runtime@0.2.23
- @fusion-plugin-examples/openclaw-runtime@0.2.23
- @fusion-plugin-examples/paperclip-runtime@0.2.23
0.17.0
Patch Changes
- @fusion/core@0.17.0
- @fusion/engine@0.17.0
- @fusion-plugin-examples/dependency-graph@0.1.3
- @fusion-plugin-examples/hermes-runtime@0.2.22
- @fusion-plugin-examples/openclaw-runtime@0.2.22
- @fusion-plugin-examples/paperclip-runtime@0.2.22
0.16.0
Patch Changes
c769444: Fixgit diff --no-indexcalls treating exit code 1 as an error in the dashboard git-routes.--no-indexexits 1 when files differ — that's the success case for synthetic untracked-file diffs. Switched tospawnso we accept exit 0 and 1 with stdout, independent of how callers wrapexecFile/promisify.- @fusion/core@0.16.0
- @fusion/engine@0.16.0
- @fusion-plugin-examples/dependency-graph@0.1.2
- @fusion-plugin-examples/hermes-runtime@0.2.21
- @fusion-plugin-examples/openclaw-runtime@0.2.21
- @fusion-plugin-examples/paperclip-runtime@0.2.21
0.15.0
Patch Changes
- @fusion/core@0.15.0
- @fusion/engine@0.15.0
- @fusion-plugin-examples/dependency-graph@0.1.1
- @fusion-plugin-examples/hermes-runtime@0.2.20
- @fusion-plugin-examples/openclaw-runtime@0.2.20
- @fusion-plugin-examples/paperclip-runtime@0.2.20
0.14.3
Patch Changes
- @fusion/core@0.14.3
- @fusion/engine@0.14.3
- @fusion-plugin-examples/hermes-runtime@0.2.19
- @fusion-plugin-examples/openclaw-runtime@0.2.19
- @fusion-plugin-examples/paperclip-runtime@0.2.19
0.14.2
Patch Changes
- @fusion/core@0.14.2
- @fusion/engine@0.14.2
- @fusion-plugin-examples/hermes-runtime@0.2.18
- @fusion-plugin-examples/openclaw-runtime@0.2.18
- @fusion-plugin-examples/paperclip-runtime@0.2.18
0.14.1
Patch Changes
- @fusion/core@0.14.1
- @fusion/engine@0.14.1
- @fusion-plugin-examples/hermes-runtime@0.2.17
- @fusion-plugin-examples/openclaw-runtime@0.2.17
- @fusion-plugin-examples/paperclip-runtime@0.2.17
0.14.0
Patch Changes
- @fusion/core@0.14.0
- @fusion/engine@0.14.0
- @fusion-plugin-examples/hermes-runtime@0.2.16
- @fusion-plugin-examples/openclaw-runtime@0.2.16
- @fusion-plugin-examples/paperclip-runtime@0.2.16
0.13.0
Patch Changes
- @fusion/core@0.13.0
- @fusion/engine@0.13.0
- @fusion-plugin-examples/hermes-runtime@0.2.15
- @fusion-plugin-examples/openclaw-runtime@0.2.15
- @fusion-plugin-examples/paperclip-runtime@0.2.15
0.12.0
Patch Changes
- @fusion/core@0.12.0
- @fusion/engine@0.12.0
- @fusion-plugin-examples/hermes-runtime@0.2.14
- @fusion-plugin-examples/openclaw-runtime@0.2.14
- @fusion-plugin-examples/paperclip-runtime@0.2.14
0.11.0
Patch Changes
- @fusion/core@0.11.0
- @fusion/engine@0.11.0
- @fusion-plugin-examples/hermes-runtime@0.2.13
- @fusion-plugin-examples/openclaw-runtime@0.2.13
- @fusion-plugin-examples/paperclip-runtime@0.2.13
0.10.0
Patch Changes
- @fusion/core@0.10.0
- @fusion/engine@0.10.0
- @fusion-plugin-examples/hermes-runtime@0.2.12
- @fusion-plugin-examples/openclaw-runtime@0.2.12
- @fusion-plugin-examples/paperclip-runtime@0.2.12
0.9.4
Patch Changes
- @fusion/core@0.9.4
- @fusion/engine@0.9.4
- @fusion-plugin-examples/hermes-runtime@0.2.11
- @fusion-plugin-examples/openclaw-runtime@0.2.11
- @fusion-plugin-examples/paperclip-runtime@0.2.11
0.9.3
Patch Changes
- @fusion/core@0.9.3
- @fusion/engine@0.9.3
- @fusion-plugin-examples/hermes-runtime@0.2.10
- @fusion-plugin-examples/openclaw-runtime@0.2.10
- @fusion-plugin-examples/paperclip-runtime@0.2.10
0.9.2
Patch Changes
- @fusion/core@0.10.0
- @fusion/engine@0.10.0
- @fusion-plugin-examples/hermes-runtime@0.2.9
- @fusion-plugin-examples/openclaw-runtime@0.2.9
- @fusion-plugin-examples/paperclip-runtime@0.2.9
0.9.1
Patch Changes
76deb48: Fix Active Agents panel cards stuck on "Connecting...". Agents inactivestate without a current task have no SSE stream to attach to, so the card now shows "Idle — no task assigned" instead of misleading network copy ("Starting..." for the briefrunning-without-task race). Also fixes a related SSE multiplexer bug: subscribers joining a channel that had already opened never received anonOpencallback (EventSource only emitsopenonce), leaving them atisConnected: falseindefinitely whenever another component was already streaming the same task's logs.f6242c2: Hoist the Active Agents panel above the main agent list and surface next-heartbeat ETA. Live work now sits directly under the stats bar so it's visible without scrolling past the full agent directory. Each card footer renders "Next heartbeat in Xs" (or "Heartbeat overdue Xs" when the deadline has passed) using the agent'sruntimeConfig.heartbeatIntervalMswith the dashboard default fallback. Cards also gain pointer cursor + hover/focus styling so the existing click-to-select behavior is discoverable.- Updated dependencies [
76deb48] - Updated dependencies [
f6242c2]- @fusion/core@0.9.1
- @fusion/engine@0.9.1
- @fusion-plugin-examples/hermes-runtime@0.2.8
- @fusion-plugin-examples/openclaw-runtime@0.2.8
- @fusion-plugin-examples/paperclip-runtime@0.2.8
0.9.0
Minor Changes
-
a654795: Generate richer merge commit messages via the AI summarizer. The merger now routes commit-body summarization through the consolidatedai-summarize.tspipeline (using the title-summarization model), with an AI fallback cascade to guarantee non-empty merge bodies. Summarization model is configurable in settings. -
91f9f20: Add unified multi-node task routing across CLI, dashboard, core, and engine flows.- Routing model: Tasks can set a per-task node override with project-level pinned default node fallback.
resolveEffectiveNode()computes the effective routing target per task. - Core types: Adds
Task.nodeId,UnavailableNodePolicy("block" | "fallback-local"),ProjectSettings.defaultNodeId, andProjectSettings.unavailableNodePolicy. - Engine behavior: Adds effective-node resolution (per-task override → project default → local), unavailable-node policy enforcement, and routing activity event logging.
- Active-task guard: Blocks node override changes for in-progress tasks via
validateNodeOverrideChange(). - Dashboard updates: Adds project settings controls for default node and unavailable-node policy, task detail routing summary (effective node, routing source, fallback policy, blocking reason), quick task creation node picker, bulk node override actions, and node health/status indicators in selectors.
- CLI updates: Adds
fn settings set defaultNodeId <node-id>,fn settings set unavailableNodePolicy <block|fallback-local>,fn task set-node <id> <node>,fn task clear-node <id>,fn task create --node <name>, and routing details infn task show. - Schema updates: Includes tasks table migration adding the
nodeIdcolumn.
- Routing model: Tasks can set a per-task node override with project-level pinned default node fallback.
-
17a072c: AddrequirePrApprovalsetting (related to #21).When
mergeStrategy: "pull-request", GitHub'srequired: trueflag for status checks only flows from branch protection — a Pro feature on private repos. On free private repos,isPrMergeReadyreports every fresh PR as immediately mergeable, soautoMerge: truecauses Fusion to auto-squash-merge the moment the PR opens with no chance for a human to review it.The new
requirePrApprovalsetting (project-level, defaultfalse) makes Fusion hold the merge until at least one approving GitHub review is present (reviewDecision === "APPROVED"), independent of GitHub's server-side enforcement. Surfaces in the dashboard's Merge settings panel under the Pull Request strategy. Lets you use Fusion's PR mode as "open the PR, wait for me to approve and merge" on any tier. -
1beebc0: Allow tasks to be respecified fromin-review.VALID_TRANSITIONS["in-review"]now includestriage, so the dashboard'sRequest AI RevisionandRebuild Specactions work for in-review tasks. Moving an in-review task to triage performs the same full reset as in-review → todo (clears branch/baseBranch/baseCommitSha/summary/recovery metadata and workflowStepResults) so the next run starts from scratch. The in-review card'sMovemenu also now offersPlanningas a destination.
Patch Changes
-
48208db: Surface live run status on Active Agent cards instead of a generic "Connecting…" placeholder. The card now polls the agent's task and shows the current step (e.g. "Step 5/8: Write Tests") and executor model while the SSE log stream warms up. A new "Live logs" button on the card opens the task detail modal directly on the Logs tab. -
a654795: Prefermerge-baseover potentially stalebaseCommitShawhen resolving task diff bases in the dashboard. Diffs no longer drift when the recorded base commit lags behind the actual divergence point. -
a654795: Show only files actually changed by the task inChangesDiffModalandTaskChangesTab. The diff baseline is no longer flooded with files that weren't touched by the task itself. -
a654795: Close executor/merger concurrency races and reviewer pause TOCTOU. Worktree lifecycle is now synchronized more defensively across executor and merger paths, the reviewer pause/unpause flow is hardened against time-of-check/time-of-use races, andAgentSemaphorenow guards against invalid limits (NaN, Infinity). -
a654795: Read assistant text from session state when processing memory dreams. Dream extraction no longer misses content when the assistant message has not been flushed to the output stream yet. -
b91533c: Fix PR-mode merge flow (related to #21):- PR-mode now pushes the per-task branch to origin before creating the PR.
processPullRequestMergeTaskpreviously calledgh pr create --head fusion/<task-id>without ever publishing the branch, so the PR creation failed and the task stalled inin-review. The branch is now pushed viagit push -u origin <branch>immediately beforecreatePr(skipped when an existing PR already covers the branch). - Removed dead
autoCreatePrsetting from the schema andSettingstype. It was defined as a default but never read anywhere.
- PR-mode now pushes the per-task branch to origin before creating the PR.
-
7f42c7f: Fix #21: therecover-mergeable-reviewmaintenance sweep no longer bypassesautoMergeandmergeStrategy. The sweep now early-returns whenautoMerge !== true(or when the engine is paused) and routes recovery merges through the engine's merge queue somergeStrategy: "pull-request"is honored — eligible in-review tasks go throughprocessPullRequestMergeinstead of a raw localgit merge. Operators using a PR-based review flow withautoMerge: falsewill no longer have tasks silently merged behind their back. -
9ce811a: Remote access (Tailscale) overhaul: the auth/scan URL now uses the livehttps://<machine>.<tailnet>.ts.net/URL captured fromtailscale funnelinstead of a constructedhttp://<hostname>:<port>from a configured label, so QR codes lead to a working public endpoint. The hostname label is no longer required (engine validation and the Settings UI both dropped it;tailscale funnelnever used it). QR codes are now rendered with theqrcodelibrary — previously the SVG was just the URL drawn as text — and a newformat=terminalreturns ASCII QR for the TUI. The Tailscale readiness parser now waits for the line containing the URL before flipping torunning, fixing missing-URL captures. Dashboard polls remote status whilestarting/stoppingso state updates without reopening the modal. The TUI shows a global● tunnelindicator with URL in the header when running, andCtrl+Qopens an ASCII QR overlay anywhere in the app. -
a654795: Restore task card timing and changes fallbacks (FN-2877). The dashboard task card again falls back gracefully when timing data or change summaries are missing, preventing blank states on tasks that haven't reported metrics yet. -
bb5402a: Keep task card timer live while a task is actively merging (FN-2920). The in-review timer was driven by per-step instrumented duration, which freezes during the merge phase, so a stuck merge could read "3m" indefinitely. Whilestatusismerging/merging-prthe card now shows live elapsed since the merger flipped the status, with a "Merging Nm" tooltip. -
a654795: Surface visible feedback when copying a log entry from the dashboard TUI. The Logs panel title now flashes a "Copied!" / "Copy failed" status so the action is no longer silent. -
a654795: Stack Utilities and Settings under Stats in the dashboard TUI wide layout (≥150 columns). Logs now fills the full right column for its full height; Stats flex-grows in the left column above fixed-height Utilities and Settings, so Stats absorbs all leftover vertical space. -
Updated dependencies [
48208db] -
Updated dependencies [
a654795] -
Updated dependencies [
a654795] -
Updated dependencies [
a654795] -
Updated dependencies [
a654795] -
Updated dependencies [
a654795] -
Updated dependencies [
91f9f20] -
Updated dependencies [
b91533c] -
Updated dependencies [
7f42c7f] -
Updated dependencies [
9ce811a] -
Updated dependencies [
17a072c] -
Updated dependencies [
1beebc0] -
Updated dependencies [
a654795] -
Updated dependencies [
bb5402a] -
Updated dependencies [
a654795] -
Updated dependencies [
a654795]- @fusion/core@0.9.0
- @fusion/engine@0.9.0
- @fusion-plugin-examples/hermes-runtime@0.2.7
- @fusion-plugin-examples/openclaw-runtime@0.2.7
- @fusion-plugin-examples/paperclip-runtime@0.2.7
0.8.4
Patch Changes
- @fusion/core@0.8.4
- @fusion/engine@0.8.4
- @fusion-plugin-examples/hermes-runtime@0.2.6
- @fusion-plugin-examples/openclaw-runtime@0.2.6
- @fusion-plugin-examples/paperclip-runtime@0.2.6
0.8.3
Patch Changes
9850bfa: Fix TUI token rendering, memory tracking fix, and other minor improvements- @fusion/core@0.8.3
- @fusion/engine@0.8.3
- @fusion-plugin-examples/hermes-runtime@0.2.5
- @fusion-plugin-examples/openclaw-runtime@0.2.5
- @fusion-plugin-examples/paperclip-runtime@0.2.5
0.8.2
Patch Changes
- @fusion/core@0.8.2
- @fusion/engine@0.8.2
- @fusion-plugin-examples/hermes-runtime@0.2.4
- @fusion-plugin-examples/openclaw-runtime@0.2.4
- @fusion-plugin-examples/paperclip-runtime@0.2.4
0.8.1
Patch Changes
- @fusion/core@0.8.1
- @fusion/engine@0.8.1
- @fusion-plugin-examples/hermes-runtime@0.2.3
- @fusion-plugin-examples/openclaw-runtime@0.2.3
- @fusion-plugin-examples/paperclip-runtime@0.2.3
0.8.0
Patch Changes
- @fusion/core@0.8.0
- @fusion/engine@0.8.0
- @fusion-plugin-examples/hermes-runtime@0.2.2
- @fusion-plugin-examples/openclaw-runtime@0.2.2
- @fusion-plugin-examples/paperclip-runtime@0.2.2
0.7.1
Patch Changes
-
ce6dcef: fix(0.7.1): mobile polish, modal layout fixes, paperclip CLI parity, schema migrationMobile / dashboard:
- ModelOnboardingModal: dialog was off-screen on phones because the desktop
min-width: 640pxwon over the mobilemax-width: 100%. Reset min-width/min-height to 0 in the mobile media query (with!importantso persisted desktop sizes fromuseModalResizePersistcannot re-pin it). Compact provider cards: keep the icon inline beside the name + description, shrink the icon container, drop name/description font sizes, and rely on flex-wrap so the API-key actions still drop to their own row underneath. The API-key input + Save button now live on a single row at the full card width — input grows left-aligned, Save shrinks to the right with a hairline of inline padding. - NewAgentDialog: the dialog's top was rendering hidden behind the in-page Agents header on mobile. Render the dialog through
createPortal(..., document.body)so the overlay escapes the.agents-viewstacking context. Mobile media query also drops the overlay padding, fills 100vw / 100dvh with safe-area insets on header/footer for iOS notch + home indicator, and fixes the classic flexmin-height: autobug that preventedoverflow-y: autoon the body from activating. - TerminalModal: same root cause as the onboarding modal — desktop
min-width: 480px/min-height: 320pxpinned the modal off-screen on phones. Reset to 0 in the mobile rule with!importantso persisted desktop sizes can't override. - WorkflowStepManager: fix React error #310 ("Rendered more hooks than during the previous render") that prevented the workflow steps panel from loading.
useOverlayDismisswas being called after anif (!isOpen) return nullearly return, so the hook count differed between open/closed renders. Moved the hook above the early return. - SettingsModal auth panel: tightened
.auth-panel-bodyhorizontal padding from--space-xl(24px) to--space-md(12px), giving each provider card more horizontal room.
Paperclip runtime:
- CLI parity: in the dashboard's "Local CLI" tab, Test / fetch companies / fetch agents now actually shell out to
paperclipaiinstead of making HTTP calls through a derived URL. New CLI-backed variants (probePaperclipViaCli,listCompaniesViaCli,listCompanyAgentsViaCli,createIssueViaCli,getIssueViaCli,agentsMeViaCli) drive every Paperclip call that has a CLI counterpart; the runtime adapter routes through them whentransport=cli.getIssueComments/wakeAgent/getRunEventscontinue using HTTP (no matchingpaperclipaisubcommands) but rely on the apiKey discovered from the local paperclipai config so CLI mode works end-to-end. - New dashboard routes
/providers/paperclip/cli-status,/cli-companies,/cli-agentsexposing the CLI helpers.
Plugin runtime registry:
GET /api/plugins/runtimesnow merges a bundled hermes/openclaw/paperclip fallback list on top of installed plugins, so the NewAgentDialog "Plugin Runtime" dropdown populates without requiringfn plugin installon a fresh setup. Installed plugins override the bundled entry byruntimeId. Coalesced the optionalversionfield to"0.0.0"to satisfy the bundled-runtime type.
Core:
- Schema migration fix: bumped
SCHEMA_VERSIONfrom 48 → 49 so migration 49 (per-tasknodeIdcolumn for remote-node routing) actually runs. Existing DBs at version 48 hit the early-return guard, never created the column, andTaskStore.listTaskscrashed at startup withno such column: nodeId— the dashboard exited before initialization. The bump unblocks app startup on any pre-existing 0.7.0 install.
- ModelOnboardingModal: dialog was off-screen on phones because the desktop
-
Updated dependencies [
ce6dcef]- @fusion/core@0.7.1
- @fusion/engine@0.7.1
- @fusion-plugin-examples/hermes-runtime@0.2.1
- @fusion-plugin-examples/openclaw-runtime@0.2.1
- @fusion-plugin-examples/paperclip-runtime@0.2.1
0.7.0
Minor Changes
-
b30e017: feat(runtimes): real Hermes / OpenClaw / Paperclip runtime pluginsReplaces the stub runtime plugins with end-to-end working integrations:
- Hermes runtime drives the local
hermesCLI as a subprocess (hermes chat -q ... -Q --source tool [--resume <id>]), captures session ids for continuity, with profile picker (HERMES_HOME-based switching) and Nous Research co-brand. - OpenClaw runtime drives
openclaw --no-color agent --local --json --session-id <uuid> --message <prompt>, parses the OpenAI-compatible JSON output, surfaces visible/reasoning text via callbacks; defaults to embedded mode (no daemon required). - Paperclip runtime now uses the modern
POST /api/agents/{id}/wakeup+ heartbeat-run streaming API (replaces the old issue-checkout + heartbeat-invoke flow); supports both API mode (URL + bearer) and CLI mode (auto-derives URL from~/.paperclip/instances/default/config.json); company + agent dropdowns; CLI key bootstrap viapaperclipai agent local-cli.
Engine fix:
agent-session-helpers.ts:createResolvedAgentSessionnow attaches the resolved runtime'spromptWithFallbackto the session so pi's dispatch hook routes prompts through the plugin runtime instead of falling through to pi's native path.Dashboard adds a unified
RuntimeCardShellcomponent, real provider logos (caduceus, pixel-lobster, paperclip outline), Test/Save/Save & Test buttons with success/failure toasts, "Learn more →" links, and a "Runtimes" group in Settings.Backend adds
GET /providers/{hermes,openclaw,paperclip}/status,GET /providers/hermes/profiles,GET /providers/paperclip/{companies,agents,cli-discovery},POST /providers/paperclip/cli-mint-key.Plugin SDK: now ships a proper
dist/build (was previously TS-source-only), unblocking runtime imports from compiled plugins. - Hermes runtime drives the local
Patch Changes
- Updated dependencies [
b30e017]- @fusion/core@0.7.0
- @fusion/engine@0.7.0
- @fusion-plugin-examples/hermes-runtime@0.2.0
- @fusion-plugin-examples/openclaw-runtime@0.2.0
- @fusion-plugin-examples/paperclip-runtime@0.2.0
0.6.0
Patch Changes
- @fusion/core@0.6.0
- @fusion/engine@0.6.0
0.5.0
Patch Changes
- @fusion/core@0.5.0
- @fusion/engine@0.5.0
0.4.1
Patch Changes
- @fusion/core@0.4.1
- @fusion/engine@0.4.1
0.4.0
Patch Changes
- @fusion/core@0.4.0
- @fusion/engine@0.4.0
0.2.7
Patch Changes
- @fusion/core@0.2.7
- @fusion/engine@0.2.7
0.2.6
Patch Changes
- @fusion/core@0.2.6
- @fusion/engine@0.2.6