Release Notes

v1.6.0 (April 25, 2026)

Operator Quality Center release: a major user-facing quality update for builders running autonomous agents. The release theme is simple: make agents easier to trust, test, approve, debug, and improve.

Highlights

  • New Quality workspace. /quality is the central operator surface for run health, failed/running counts, pending approvals, latest eval scores, and needs-attention shortcuts.
  • Eval Lab. Existing /api/eval/* endpoints now have a focused UI to list suites/scenarios, select an agent, run a scenario or suite, and review score, criteria, and evidence history.
  • Approval Desk. Pending human-loop, tool, connector, skill, agent, budget, and delegation approvals are grouped by category with approve/deny actions from one place.
  • Run Review upgrades. The existing runs replay surface is available inside Quality, and the shared run list now supports source filtering and search across run id, source, errors, results, and ownership fields.
  • Release-ready mission templates. Release Candidate QA, Agent Cost Audit, Connector Smoke Test, Failed Run Triage, and Weekly Agent Quality Report join the mission template gallery using the existing mission budget/report mechanics.
  • Launchpad quality actions. The home launchpad now includes Run Eval Suite, Review Approvals, Inspect Failed Runs, and Start Release QA Mission.

Upgrade Guidance

  • No breaking API changes.
  • Existing eval, approval, run, and mission storage continues to work unchanged.
  • Operators preparing releases should use /quality plus the Release Candidate QA mission template as the new release review path.

v1.5.69 (April 23, 2026)

Fast-follow release for #55 by @borislavnnikolov. Thanks Borislav!

Highlights

  • Structured schedule runs are visible. Schedule-backed protocol runs now appear in the schedule console and unified /api/runs list/detail/events APIs, so structured work launched from schedules no longer disappears from the operator view.
  • Cleaner agent-session UX. Agent chats now have a New chat action for sessions with history or saved CLI/runtime handles, first prompts derive compact session titles, and agent session lists sort newest-first.
  • More reliable structured execution. CLI providers can execute structured turns through their direct provider runtime, blank structured responses surface the real logged error when available, schedule timing edits recompute nextRunAt, and in-process daemon controls have regression coverage.
  • Release review follow-up. The launch-day review also tightened the new empty-chat prompt suggestion path so clicking a suggestion uses the same first-message title flow as typed messages, and successful structured turns now clear watchdog timers promptly.
  • Safer package contents. The npm package allowlist now explicitly excludes local env files under src/ even when a maintainer has private ignored config in their working tree.

Upgrade Guidance

  • No configuration changes required.
  • If you already installed v1.5.68, upgrade to v1.5.69 to pick up the structured-run and agent-session fixes.

v1.5.68 (April 23, 2026)

Launch-readiness release: a small product improvement plus security, install, and documentation polish to make the next public launch easier to share and easier to verify.

Highlights

  • Launch Week Growth Sprint mission template. The mission template gallery now includes a launch-week operator that audits the product/docs, drafts GitHub Release, Product Hunt, Show HN, short social, and community updates, identifies the top 5 demo moments, and produces daily markdown reports with feedback, metrics, objections, and follow-up tasks. The default mission goal explicitly says not to post publicly without approval.
  • Next.js security update. The app and docs site now use Next.js 16.2.4, outside the vulnerable 16.0.0-beta.0 through 16.2.2 advisory range reported by npm audit.
  • Production audit hardening. OpenClaw, Discord.js, and selected transitive packages were refreshed, with narrow npm overrides for deprecated connector paths, so npm audit --omit=dev --audit-level=high no longer reports high or critical production advisories.
  • Release metadata realigned. package.json and package-lock.json now agree on 1.5.68 so npm, local tooling, and release automation point at the same version.
  • Desktop release gate hardening. The Electron release smoke build now restores host-architecture native modules after macOS multi-arch packaging, so a local desktop build does not leave the checkout unable to run the next host build.
  • Public launch assets. Added a concrete launch plan in the repo and a new Launch Playbook on the site, with Product Hunt, Show HN, and social copy starters.
  • Website polish. The homepage now surfaces the v1.5.68 launch theme, docs show the current release label, the install pin uses v1.5.68, and the downloads page matches the current macOS signing guidance.

Upgrade Guidance

  • No configuration changes required. The new mission template is additive.
  • The main app still has moderate transitive npm audit advisories in optional connector and indirect provider stacks. A full npm audit fix --force dry run churned hundreds of packages, so the remaining dependency cleanup should be handled as a dedicated hardening pass rather than a blind launch-day change.

v1.5.67 (April 20, 2026)

Three chatroom-focused fixes from a community contribution by @borislavnnikolov. Thanks Borislav!

Highlights

  • Inspect a chatroom member mid-turn. Clicking a chatroom member avatar while that agent is busy now opens a bottom sheet with the agent's synthetic chatroom session: recent messages, execution-log entries, and counts. The previous behavior jumped to the agent detail page and lost the chatroom context. The synthetic session-id convention (chatroom-<roomId>-<agentId>) is now centralized in src/lib/chatroom-sessions.ts and shared between the UI and chatroom-helpers.ts so the two halves cannot drift.
  • Continue a specific session, not just the agent's main thread. The session slice gains an activeSessionIdOverride. Selecting a chat from the Chat List or a specific session row from the Agent Inspector sets the override, so the chat surface opens that exact session instead of the agent's primary thread session. The override clears automatically when the agent changes or the session is removed. New regression tests in session-slice.test.ts cover the override-preferred, override-stale, and fallback cases.
  • Caret alignment fix in the chatroom composer. The mention-highlight <span> had inline padding that pushed the mirrored caret out of position at line ends. Padding is removed and the soft-accent background lightened slightly so the highlight still reads without shifting layout.

Upgrade Guidance

  • No configuration changes required. The override state is in-memory only. Existing chatroom synthetic sessions continue to use the same id convention.
  • If you maintain a fork that imports resolveSyntheticSessionId from src/lib/server/chatrooms/chatroom-helpers.ts, it now delegates to resolveChatroomSyntheticSessionId in src/lib/chatroom-sessions.ts. Both exports return the same value.

v1.5.66 (April 17, 2026)

Fixes a runaway-token-burn bug in the orchestrator-wake and heartbeat loops. The wake-outcome classifier only counted rejected promises as failures, while the most common failure mode (provider 429 errors) resolves the promise with an error on the result. So the failure counter never ticked, the exponential backoff never engaged, and the auto-disable-after-N-failures gate was effectively unreachable — a stuck orchestrator could keep firing at its configured interval indefinitely.

Highlights

  • classifyWakeOutcome helper in heartbeat-service.ts now classifies each resolved session-run result. A run counts as a failure when result.error is a non-empty string or when result.text is empty/whitespace-only. Both the orchestrator-wake and heartbeat outcome handlers feed through this helper, so silent-failure runs actually tick the failure counter and the exponential backoff (10s → 5min) kicks in normally.
  • Auto-disable gate is now reachable for 429 / silent wakes. The existing MAX_CONSECUTIVE_FAILURES = 10 threshold existed but was unreachable for the most common failure mode. After the fix, ten consecutive dud wakes auto-disable the orchestrator/heartbeat for that agent/session, emit an activity log, and post a dedup'd notification instead of grinding indefinitely.
  • Regression coverage. heartbeat-service.test.ts gains 5 targeted cases on classifyWakeOutcome: the 429 regression, empty-output detection, non-string error fields, whitespace-only errors, and the happy path. test:runtime now runs 104 cases.

Upgrade Guidance

  • No configuration changes required. The fix is purely a classification change — existing orchestrator and heartbeat settings continue to apply, backoff intervals are unchanged, and MAX_CONSECUTIVE_FAILURES is still 10. The behavior change is that failure classifications that were previously silenced now count.
  • If a stuck orchestrator has been burning tokens on 429s, after upgrade it will auto-disable itself within ten more wake cycles and emit a "Supervisor: Orchestrator auto-disabled" notification. Re-enable from the agent detail page once the underlying provider issue is resolved.

v1.5.65 (April 17, 2026)

Follow-up hardening on v1.5.64 after live-testing the new chat-header flows, the MCP connection pool, and the MCP Registry browser in Chrome. Six concrete bugs fixed — three of them would have shipped in 1.5.64 otherwise.

Highlights

  • clearChatMessages now resets opencodeWebSessionId too. The snapshot/undo pair captured and restored it, but clear itself left the stale identifier in place — so a fresh opencode-web turn would resume the conversation the user intended to drop. Paired with a matching default in storage-normalization.ts so older session records load with opencodeWebSessionId: null instead of undefined. Regression covered by clear-route.test.ts.
  • Undo toast no longer writes to the wrong chat. If the user navigated away after clicking Clear, clicking Undo in the toast would inject restored messages into whatever chat was currently open. chat-area.tsx now gates the setMessages calls on selectActiveSessionId === targetSessionId; same guard added to the compact-complete path.
  • Background MCP status probes no longer evict the connection pool. Visiting /mcp-servers auto-called POST /api/mcp-servers/:id/test for every server, which force-disconnected pooled clients that running agents were using mid-turn. Eviction is now gated behind ?reset=1, which only the explicit Re-test button sends.
  • SwarmDock MCP Registry browser actually works now. The upstream swarmdock-api.onrender.com endpoint emits no CORS headers, so the in-browser RegistryBrowser component always failed with Failed to fetch. Added GET /api/mcp-registry and GET /api/mcp-registry/:slug as server-side proxies and rewired the component to call them. Verified in Chrome: 20 servers load, selecting one prefills the New MCP Server sheet with its recommended install command.
  • mcp-registry CLI group. New commands swarmclaw mcp-registry search and swarmclaw mcp-registry get <slug> so CLI workflows can pull from the same proxy.
  • Prior release's MCP tool-evict-on-transport-failure fix (cherry-picked from local branch): connection-class errors from downstream MCP tools now evict the pool entry for the originating server, so the next turn reconnects fresh instead of retrying through a half-broken transport.

Upgrade Guidance

  • No action required. All fixes are backwards-compatible. The alwaysExpose: true back-compat for existing MCP servers introduced in 1.5.64 still holds.
  • If you hit a "Failed to fetch" error on the MCP Registry browser in 1.5.64, this release fixes it — the browser now proxies through SwarmClaw's API instead of calling the upstream registry directly from the browser.

v1.5.64 (April 17, 2026)

Two independent themes land together: a context-window UX in every chat header (live meter, one-click LLM compaction, and a 30-second undo on Clear), and MCP token-spend controls (per-server alwaysExpose, per-agent eager overrides, mcp_tool_search meta-tool, a long-lived connection pool, a token-cost endpoint, and an in-app browser for the public SwarmDock MCP registry).

Highlights

  • Context meter in the chat header. New ContextMeterBadge renders a live N% · Mk chip next to the chat title, color-coded at 70% / 90% thresholds, backed by GET /api/chats/:id/context-status. Click the chip to open a popover with the token breakdown and Compact / Clear buttons. The row is explicit about what Clear does: "Long-term memory, skills, and facts are preserved. Clear only affects this chat transcript." — so users can clear without losing memories, skills, or learned facts.
  • User-invokable /compact via the popover. POST /api/chats/:id/compact runs the existing hierarchical summarizeAndCompact pipeline (tool-failure preservation, file-op extraction, adaptive chunking) using the session's own provider/model as the summarizer. Accepts keepLastN in the body (2-200, default 10). The button is gated below 3 messages so users don't waste LLM calls on short transcripts.
  • Clear with 30-second undo. POST /api/chats/:id/clear now returns { cleared, undoToken, expiresAt }, and a companion POST /api/chats/:id/clear/undo restores the snapshot. The undo snapshot covers both the full message history and every CLI session ID (Claude, Codex, OpenCode, Gemini, Copilot, Droid, Cursor, Qwen, ACP, plus delegate resume IDs). Snapshots live in an HMR-safe in-memory store with a 30s TTL, 200-entry cap, session-scoped lookups, and single-use tokens. The chat UI wires Undo to a sonner toast; successful restore surfaces a "Chat restored." confirmation.
  • McpServerConfig.alwaysExpose: boolean | string[] — new per-server tool-exposure policy. true (default, back-compat) binds every tool every turn. false binds none; the agent uses mcp_tool_search to discover and promote what it needs. An allowlist like ['query_resources'] eagerly binds only the named subset. Huge token savings on chatty servers (Playwright MCP, browser MCPs, anything with 30+ tools).
  • Per-agent Agent.mcpEagerTools: string[] overrides. Force-expose specific tool names for one agent regardless of the server's policy. Precedence: per-agent allowlist > server alwaysExpose > session promotions.
  • mcp_tool_search meta-tool. When a server's tools are lazy, the agent gets a single mcp_tool_search({ query, limit? }) tool. It searches the process-wide discovery cache (tool name substring + description keywords) and promotes matching tools for the current session. The next turn's tool bind picks up the promoted names. Behavior mirrors @swarmclawai/mcp-gateway's router so SwarmClaw + gateway deployments share semantics. Session promoter state is HMR-safe.
  • Long-lived MCP connection pool. One client/transport per server, reused across turns. Config-fingerprint tracking rotates stale entries automatically; the /test endpoint evicts explicitly. Saves roughly 100-500ms per server per turn on every chat. HMR-safe to prevent leaked child processes on dev-server reloads.
  • Token-cost discovery endpoint. GET /api/mcp-servers/:id/tools-info connects to a server, lists its tools, and reports per-tool schema tokens plus aggregate totals. Uses the same chars / 3.5 formula as @swarmclawai/mcp-gateway so numbers line up. Shows up in the MCP Servers list so you can spot a 40k-token-per-turn culprit before an agent even runs.
  • In-app SwarmDock MCP Registry browser. Opens from the New MCP Server sheet, browses the public registry, and populates the form with the selected server's install command. A new MCP Gateway (local) preset is bundled so @swarmclawai/mcp-gateway is one tap away.
  • CLI parity. swarmclaw chats context-status <id>, swarmclaw chats compact <id>, swarmclaw chats clear-undo <id>. The existing chats clear now returns the undo token so scripts can build their own clear+undo flows.
  • Back-compat normalization. Existing MCP servers load with alwaysExpose: true (historical behavior — every tool bound every turn). No user action required.
  • Test coverage. New tests: clear-undo-snapshots.test.ts (TTL, single-use, session isolation, CLI-id preservation), clear-route.test.ts (clear → undo → double-undo 404 round-trip), compact-route.test.ts, context-status-route.test.ts, mcp-connection-pool.test.ts, mcp-gateway-runtime.test.ts. test:runtime runs 100 tests across 13 suites.

Upgrade Guidance

  • No action required. Existing MCP servers keep their historical behavior (alwaysExpose: true, every tool bound every turn). The clear API continues to work for callers that ignore the new JSON body.
  • To cut MCP token spend: open Settings → MCP Servers, pick a chatty server, and toggle alwaysExpose to false (or provide an allowlist). Agents will auto-receive the mcp_tool_search tool and promote what they need.
  • To try the context meter: open any chat — the chip appears next to the agent name whenever the transcript has messages. Click for Compact / Clear.
  • CLI scripts: any script depending on swarmclaw chats clear receiving a plain OK should now parse { cleared, undoToken, expiresAt } instead.

v1.5.63 (April 17, 2026)

Chatroom fix contributed by @borislavnnikolov in #53. CLI-backed agents (codex-cli, copilot-cli, gemini-cli, claude-cli, opencode-cli, cursor-cli, qwen-code-cli, droid-cli) now work correctly inside chatrooms instead of silently falling through the LangGraph execution path they cannot run. With the runtime path fixed, the worker-only chatroom membership blocks are lifted too, so any non-trashed agent can be added to a room.

Highlights

  • Direct provider runtime for CLI chatroom turns. src/app/api/chatrooms/[id]/chat/route.ts branches on NON_LANGGRAPH_PROVIDER_IDS and calls provider.handler.streamChat() directly for CLI-backed agents. Streaming, tool events, and persisted assistant replies all flow through unchanged. LangGraph-capable providers continue to use streamAgentChat.
  • Full member selection. Create, update, members, session-tool, and UI layers (chatrooms/route.ts, chatrooms/[id]/route.ts, chatrooms/[id]/members/route.ts, session-tools/chatroom.ts, chatroom-sheet.tsx) no longer reject or hide worker-only agents. Any non-trashed agent is eligible.
  • Regression test. src/app/api/chatrooms/[id]/chat/route.test.ts proves a codex-cli-backed chatroom turn bypasses streamAgentChat, streams a response through the provider handler, and persists exactly one assistant reply.

Upgrade Guidance

  • No action required for existing chatrooms. LangGraph-capable providers continue to run through the same path. CLI-backed agents that were previously excluded from chatrooms can now be added directly.
  • UI refresh recommended. The chatroom sheet now lists every non-trashed agent regardless of provider.

Thanks to @borislavnnikolov for the catch and the fix.

v1.5.62 (April 17, 2026)

Hardens parallel sub-agent dispatch with a concurrency cap, a quorum join policy, and a cycle check. Existing spawn_subagent swarm/batch callers continue to work; what changes is the bounded, safer defaults and two new config knobs for mission and agent owners.

Highlights

  • spawn_subagent swarm/batch actions now accept maxConcurrency, joinPolicy, quorum, and cancelRemaining. Parallel mode fans out at most 4 branches at a time by default (hard-capped at 16). Tasks are bucketed across shared executionGroupKey lanes so the existing per-execution serial lock enforces the cap with no new scheduler. joinPolicy: 'quorum' resolves once quorum branches succeed and (by default) aborts the rest. joinPolicy: 'first' resolves on the first success. joinPolicy: 'all' stays the default.
  • Cycle detection in spawnSubagent. Before creating a child session, the runtime walks the parentSessionId ancestry and rejects when the requested agentId already appears higher in the chain. Error message is explicit about which agent was already active. Use allowCycle: true on the SpawnSubagentInput to override for legitimate self-consulting patterns. Orthogonal to the existing depth cap.
  • Per-agent and per-mission overrides. Agent.maxParallelDelegations and MissionBudget.maxParallelBranches plumb into the swarm resolver. Precedence: explicit tool arg > agent cap > mission cap > system default (4). Both are validated by the agent create/update and mission budget schemas, and normalized on load via storage-normalization.ts.
  • Swarm snapshot exposes the effective cap. SwarmSnapshot.maxConcurrency lands in the persisted snapshot payload so the UI and external tooling can surface the active concurrency level.

Verification

Live end-to-end: a 3-branch parallel fan-out with maxConcurrency: 2, joinPolicy: 'quorum', quorum: 2, cancelRemaining: true settled with totalCompleted: 2, totalCancelled: 1, status: 'partial', and maxConcurrency: 2 on the returned aggregate and snapshot.

Upgrade Guidance

  • No action required. Existing swarm/batch calls that do not pass maxConcurrency now implicitly run at up to 4-wide instead of unbounded. Large (>4) fan-outs will complete in waves; total work time is unchanged for swarms under 4 branches. Set maxConcurrency: <N> explicitly to widen or narrow the dispatch.
  • Mission owners can set budget.maxParallelBranches on a mission to bound all its agents' fan-outs together.
  • Agent owners can set Agent.maxParallelDelegations to bound a single agent's fan-outs without touching missions.
  • allowCycle: true is an escape hatch on spawnSubagent when an agent legitimately needs to consult itself. The default reject is the safer behavior for most setups.

v1.5.61 (April 17, 2026)

Adds an opt-in per-agent planning mode that rides on the existing [MAIN_LOOP_PLAN] token machinery in the main agent loop.

Highlights

  • Agent.planningMode: 'off' | 'strict' | null — new optional field on the Agent type. Defaults to null (off) so existing agents are unaffected. Validated by AgentCreateSchema / AgentUpdateSchema and surfaced through createAgent in agent-service.ts.
  • Strict planning prompt section. A new buildPlanningModeSection in prompt-sections.ts injects a short contract into the system prompt when planningMode === 'strict': before any multi-step work the model emits a single-line [MAIN_LOOP_PLAN]{"steps":...,"current_step":...,"completed_steps":[...]} block. The existing parser in main-agent-loop.ts reads these into MainLoopState.planSteps, currentPlanStep, and completedPlanSteps with no further wiring. The section is skipped in minimal-prompt mode and for heartbeat turns.
  • Test coverage. prompt-sections.planning-mode.test.ts covers the null / off / strict / minimal / missing-agent paths (6 cases, all green).

Upgrade Guidance

  • No action required. All existing agents keep planningMode unset (treated as off).
  • Opt in per agent by setting planningMode: "strict" on the agent. Suitable for mission-mode work and long-horizon tasks; overkill for simple chat.
  • The planner does not force every turn to emit a plan block — the prompt explicitly says to skip the block for trivial single-tool responses or pure Q&A, so short interactions stay clean.

v1.5.60 (April 17, 2026)

Adds a turn-snapshot primitive for external replay and comparison tooling, without touching the execution flow.

Highlights

  • Turn snapshot endpoint. New GET /api/chats/:id/turns/:index/snapshot returns the input state of a prior user turn: the message (text + optional imagePath + time), all prior messages in order, the session's effective provider/model/endpoint/credential at snapshot time, and the bound agent's provider/model/systemPrompt when available. Invalid or non-user indices return 400, out-of-range indices return 404. CLI: swarmclaw chats turn-snapshot <chatId> <index>.

Use case

External CLIs, notebooks, and comparison harnesses can now capture the exact inputs that produced a given turn and replay them against a different model, provider, or system prompt to compare outputs without mutating the original session. Pairs with the existing edit-resend path (destructive in-session replay) and the share-link infrastructure in v1.5.59 (share the original turn's context, replay on another instance).

Upgrade Guidance

  • No action required. Purely additive. The new endpoint is read-only and does not affect existing chat execution.

v1.5.59 (April 17, 2026)

Viral-loop release. Adds public share links for missions, skills, and sessions, plus a complementary raw-markdown endpoint so any shared skill installs directly through the existing POST /api/skills/import. Everything additive, nothing existing has changed shape.

Highlights

  • Share links for missions, skills, and sessions. New share_links storage collection plus src/lib/server/sharing/share-link-repository.ts. POST /api/share { entityType, entityId, expiresInSec?, label? } mints a cryptographically random 32-char base64url token; GET /api/share lists; GET /api/share/:id fetches; DELETE /api/share/:id revokes (pass ?hard=true to hard-delete). CLI: swarmclaw share {list,mint,get,revoke,resolve,raw}.
  • Public read endpoints (no auth required). GET /api/s/:token returns a scrubbed JSON payload; GET /api/s/:token/raw returns plain markdown (skills return their SKILL.md verbatim, missions render as title + goal + criteria + milestones, sessions as a transcript). Revoked and expired tokens return 404 Not found without leaking shape information. GET /s/:token is a server-rendered page for dropping straight into a browser.
  • Share-link-based skill install. POST /api/skills/import already accepts an http(s) URL; pointing it at https://<your-host>/api/s/<token>/raw installs a shared skill from another SwarmClaw instance without auth handshakes. Pairs naturally with the existing swarmclaw skills import CLI.
  • Share-link repository tests. share-link-repository.test.ts covers mint / list / revoke / lookup-by-token round-trip plus expiry handling against a temporary data dir.

Upgrade Guidance

  • No action required. All changes are additive.
  • Security posture: share-link tokens are 24 random bytes (base64url encoded, ~32 chars). The public read endpoints never load credentials, secrets, or connector configs — only the entity resolver's allowlisted fields surface. Expiry and revocation are checked on every public request.
  • Adopting share links for onboarding: pair with the mission-template and skill galleries in v1.5.58 — a mission or skill can be shared via a single public URL that installs into a second SwarmClaw instance with one CLI call.

v1.5.58 (April 17, 2026)

Adds benchmark-style eval suites, surfaces live per-session cost data, tightens auto-skill drafting, introduces two targeted starter kits, and ships a zero-setup demo mission template. Everything additive, nothing existing has changed shape.

Highlights

  • Benchmark-style eval suites. New SWEBENCH_LITE_SCENARIOS and GAIA_L1_SCENARIOS in src/lib/server/eval/scenarios-swebench.ts and scenarios-gaia.ts — curated parallels (not the upstream datasets) sized for a single-agent harness run. The shared EvalScenario type carries an optional suite: 'core' | 'swe-bench-lite' | 'gaia-l1' | 'tool-use' | 'code-action' tag. POST /api/eval/suite accepts { suite: "swe-bench-lite" } to scope a run. New GET /api/eval/suites lists every suite with scenario count, max score, and categories. CLI: swarmclaw eval suites, and swarmclaw eval suite takes a JSON body that now includes suite. Intended for advertising verifiable numbers against a named benchmark instead of a bespoke rubric.
  • Two additional starter kits. inbox_triage (single Triager agent over email + memory + documents) and data_analyst (single Analyst agent over shell + files + web + documents) join the existing seven kits in src/lib/setup-defaults.ts. Both are surfaced on the intent-driven setup path alongside Personal Assistant, Research Copilot, Builder Studio, and Delegate Team.
  • Live per-session usage API. New GET /api/usage/live?sessionId=... returns a lightweight snapshot (records, tokens in/out, estimated cost, firstAt/lastAt, wallclockMs, turns) so frontends can surface a live cost meter without pulling the full aggregated /api/usage payload. Without a sessionId the route returns the ten most recently active sessions. Registered in the CLI as swarmclaw usage live.
  • Auto-skill drafting is stricter and rate-limited. shouldAutoDraftSkillSuggestion in chat-turn-finalization.ts now requires at least 3 tool events in the completed turn (was 1), and a new per-agent daily cap limits automatic drafts to 3 per day per agent to prevent suggestion-inbox spam. Both thresholds are named constants (AUTO_DRAFT_MIN_TOOL_EVENTS, AUTO_DRAFT_DAILY_LIMIT). Agents with autoDraftSkillSuggestions = false are unaffected (auto-drafting remains opt-in per agent).
  • Hello World demo mission template. New hello-world-demo entry in BUILT_IN_MISSION_TEMPLATES — a bounded, zero-setup mission that reads three files in the working directory and writes a one-paragraph markdown summary to hello-world-report.md. Budgets (USD 0.25, 20k tokens, 30 turns, 15 min) are small enough to run on a local Ollama model without cost. Intended as the first thing a new user watches an agent complete end to end.

Upgrade Guidance

  • No action required. All changes are additive.
  • Existing eval callers: the POST /api/eval/suite body shape now accepts an optional suite field. Previous callers passing only { agentId } or { agentId, categories } continue to work unchanged; the runner falls back to the full scenario set when no suite is specified.
  • Auto-skill drafting: agents that had auto-drafting enabled and were producing drafts on single-tool-call turns will now see drafts appear only after at least 3 successful tool calls. To restore the old threshold, override the constant or keep ad-hoc drafts via POST /api/skill-suggestions.
  • Hello World demo mission: install from the mission template gallery or POST /api/missions/templates/hello-world-demo/instantiate. Best paired with a local Ollama model for a true zero-cost first run.

v1.5.57 (April 16, 2026)

Org-orchestration feature gap closure. After auditing SwarmClaw against paperclipai/paperclip (the open-source AI-company OS), this release adds the additive pieces that fit SwarmClaw's autonomous-assistant focus without forcing an enterprise-org pivot. Per-agent budget enforcement, billing-code cost attribution, customizable task workflow states, cross-agent delegation policies, configuration version history, multi-workspace metadata, and a much richer workspace-template export/import bundle.

Highlights

  • Workspace templates now round-trip the full setup. The portability bundle (/api/portability/export, /api/portability/import) was previously agents + skills + schedules. v1.5.57 adds connectors (with secrets scrubbed), chatrooms (with routing rules and agent ID remapping), MCP servers (env/header keys preserved, values scrubbed), projects, goals (with parent-chain remapping), and an extension manifest reference. Manifest version bumped to 2; v1 bundles still import. Re-import response payload lists which records needCredentials so the UI can prompt.
  • Per-agent recurring budgets enforced at enqueue. Existing agent budget config (monthlyBudget, dailyBudget, hourlyBudget, budgetAction) was already evaluated mid-turn. v1.5.57 adds agent-budget-hook.ts, called from session-run-manager for autonomy-managed runs. When an agent has budgetAction: 'block' and any window is exhausted, autonomous enqueues fail fast with a clear error. User chats still flow through. Default 'warn' behavior unchanged.
  • Goal hierarchy ancestry through Mission. New optional Mission.goalId lets a mission bind to a Goal in the project/initiative chain. main-agent-loop.ts now walks mission → goal → parentGoal → … and injects the full ancestry into the system prompt. Previously only direct session-level goals flowed through.
  • Billing codes for cost attribution. Optional billingCodes: string[] on Mission, BoardTask, Session, and UsageRecord. Codes resolved per session at usage-write time (session + mission). New endpoint GET /api/usage/by-code?codes=foo,bar&range=7d rolls up cost per code, with per-agent breakdowns inside each code bucket. Lets users running parallel projects answer "what did Project X cost across all my agents?"
  • Customizable task workflow states. New WorkflowState collection (task-workflow-state-repository) stores team-defined states (e.g. "Needs Review", "Blocked on PM") that are orthogonal to BoardTaskStatus lifecycle. Seven defaults seeded on first read. BoardTask.workflowStateId references one. CRUD via GET|POST|DELETE /api/task-workflow-states.
  • Cross-agent delegation refusal policy. Chatroom.onRefusal ('reroute' | 'escalate' | 'human') and Chatroom.escalationTargetAgentId make explicit what happens when an assigned agent declines work. The policy reroutes to another room member, escalates to a configured target, or surfaces a human_loop approval. Configured at POST /api/chatrooms/refusal-policy.
  • Configuration version history. updateAgent now snapshots the prior agent state into config-versions.json (capped at 50 versions per entity). GET /api/config-versions?entityKind=agent&entityId=... lists history; POST /api/config-versions/restore rolls back. Foundation for extending to extensions/connectors/MCP servers/chatrooms/projects.
  • Multi-workspace scaffolding. Workspace registry plus GET|POST|PATCH|DELETE /api/workspaces and GET|POST /api/workspaces/active. Default workspace seeds itself; switching the active workspace persists. Note: v1.5.57 ships metadata only — actual data-dir forking per workspace is intentionally deferred to a follow-up so this release stays low-risk.
  • CLI manifest expanded. New top-level groups: workspaces, workflow-states, config-versions, cost-attribution, chatroom-policy. CLI route-coverage test passes.

Upgrade Guidance

  • No action required. Every change is additive. Existing agents, missions, tasks, sessions, connectors, and chatrooms continue to work unchanged.
  • Per-agent budgets: if you've already configured monthlyBudget/dailyBudget/hourlyBudget with budgetAction: 'block', autonomous runs (heartbeats, mission ticks, scheduler) will now fail fast at enqueue when the cap is hit instead of running for one more turn. User-initiated chats are unaffected.
  • Workspace templates v2: v2 bundles cannot be imported by v1.5.56 or earlier. v1 bundles still import in v1.5.57. Re-export your library after upgrading if you want the connector/chatroom/MCP/goal coverage.
  • Billing codes: opt in by tagging your missions, tasks, or sessions with a billingCodes array. Existing untagged records do not appear in /api/usage/by-code rollups.
  • Multi-workspace: the default workspace is created automatically; existing data sits inside it. Creating additional workspaces adds metadata only — they share the underlying DATA_DIR until per-workspace data isolation ships.

v1.5.56 (April 16, 2026)

Follow-up to v1.5.55 that finishes the Zod-validation sweep and fixes a TTS error-response bug uncovered by end-to-end testing.

Highlights

  • TTS error responses are now proper JSON. POST /api/tts and POST /api/tts/stream previously returned the error message wrapped in a bare NextResponse(string, ...) — no content-type — which the CLI and browser JSON-decoded into a {"type":"Buffer","data":[...]} blob. Both endpoints now return NextResponse.json({error}, {status: 500}), so the error message is readable everywhere.
  • Zod validation extended across the remaining write endpoints. v1.5.55 hardened agents, tasks, and webhooks. This release closes the same silent-corruption bug class on PUT /api/secrets/:id, POST /api/secrets, PATCH /api/goals/:id, PUT /api/providers/:id, PUT /api/documents/:id, PUT /api/external-agents/:id, and PUT /api/chatrooms/:id. Each route validates against a dedicated schema and filters parsed data to only the keys actually present in the raw body so Zod defaults cannot overwrite untouched stored fields. Endpoints that already do per-field typeof guards (knowledge, gateways, projects) were left as-is.

Upgrade Guidance

  • No action required. FE clients already send well-typed bodies, so the new validation is invisible in the happy path. External integrations calling these endpoints with wrong types will now get a 400 with a field-level error — previously the write silently succeeded with corrupted state.

v1.5.55 (April 16, 2026)

Hardening release focused on input validation across PUT endpoints and a handful of quietly-broken UI flows surfaced by end-to-end testing. The main theme is: writes that used to silently corrupt stored data on bad input now return a 400 with a clear Zod error, and the UI's integer-vs-decimal gotchas in the mission editor are fixed so saves actually land. Also fixes a classifier leak where some Ollama models were pasting internal classification JSON into their replies.

Highlights

  • Mission budgets accept integer values cleanly from the UI. The mission editor and template install dialog were parsing user input with parseFloat, but the API requires int() for maxTokens, maxToolCalls, maxWallclockSec, and maxTurns. Entering 1000.5 produced a cryptic validation toast and the update silently dropped. A new intOrNull helper rounds decimal input before it reaches the API; maxUsd still accepts decimals.
  • Mission editor's connectors dropdown now actually lists your connectors. The sheet was fetching /connectors as if it returned an array, but the endpoint returns an object keyed by id. A defensive fallback rendered an empty list, so users could not attach report connectors to a running mission. Fetch is now typed as a record and projected with Object.values.
  • Memory search works for short words again (cats, blue, dog, fire). buildFtsQuery had a >= 5 length guard for single-token queries that silently returned an empty FTS query and dropped the search. The upstream filter already requires ≥3 chars, so the extra guard just made useful queries disappear. Removed, with regression tests.
  • Agent / task / webhook PUT endpoints now validated with Zod schemas. Previously a bad type (tools: "not_an_array" on an agent, title: 42 on a task, events: "not_an_array" on a webhook) would silently corrupt the stored field. The routes now validate with AgentUpdateSchema, TaskUpdateSchema, and WebhookUpdateSchema respectively, and filter parsed data to only the keys that were present in the raw body so Zod defaults do not overwrite untouched fields. Bad types return a 400 with field-level errors and storage is untouched. updateAgent() keeps a current.tools / current.extensions fallback as defense-in-depth for internal callers (dream route, approval hooks).
  • Classifier JSON no longer leaks into assistant responses. Some Ollama / Ollama Cloud turns were prepending the internal MessageClassification object ({"taskIntent":"research",...}) to the user-visible reply. The old stripper only matched when isDeliverableTask was the first key, so leaks starting with taskIntent or workType sailed through. Replaced the regex with a principled detector that brace-matches candidate JSON (string-quote aware) and validates against MessageClassificationSchema.safeParse — the schema itself decides what counts as a leak, so future schema changes cannot silently break detection.

Upgrade Guidance

  • No action required. All fixes are backward-compatible. FE clients already send well-typed bodies, so the new Zod validation is invisible in the happy path. If you have an external integration calling PUT /api/agents/:id, PUT /api/tasks/:id, or PUT /api/webhooks/:id, audit it for type-correct fields — you will now get a 400 on bad input where before the write silently succeeded with corrupted state.
  • If your memory searches were returning empty for short keywords, retry them after upgrading. No reindex required.

v1.5.54 (April 16, 2026)

Mission templates actually ship this release (the feature commit landed after the v1.5.53 tag was cut, so v1.5.53's notes described something that wasn't in the package). Also includes a pipeline-level fix from @borislavnnikolov that keeps a user-chosen provider and model from getting silently reverted to the agent's defaults on every turn: the fix that landed in v1.5.53 made the UI stick, but a separate layer was still overwriting the session state server-side. This release closes that second half.

Highlights

  • Mission templates library. The /missions page now opens with a visual gallery of starter missions filtered by category. Each template ships a ready-to-run goal, success criteria, USD / token / turn / wallclock budgets, and a report cadence, so non-technical users can start an autonomous run without authoring every field. Templates shipped: Daily News Digest, Inbox Triage, Competitor Watch, Weekly Research Report, Social Listener, and Customer Support Triage. Setup notes call out connector and permission prerequisites inline on the install dialog.
  • Install flow with progressive disclosure. The install dialog shows a compact preview (icon, description, budget badges, setup note) on top. Title, goal, and root session are always editable. Success criteria, budget caps, and the report cadence live inside a collapsed Advanced Settings panel, so the default install flow is a single click for users who want the curated defaults and a two-click tweak for power users.
  • Template-origin tracking on every mission. Installed missions persist a templateId field so later flows can offer "update from template" or analytics like "how many users installed Daily News Digest". Missions created the old way store templateId: null; legacy records on disk are normalized to null automatically on load, no migration required.
  • New API routes. GET /api/missions/templates returns the built-in registry; POST /api/missions/templates/:id/instantiate materializes a template into a real mission, with an optional overrides payload for title, goal, success criteria, budget, report schedule, agent ids, and report connectors. Both are registered in the CLI manifest as swarmclaw missions templates and swarmclaw missions instantiate.
  • User-selected provider and model now survive the chat execution pipeline (#51, thanks to @borislavnnikolov). Three places on the server were reapplying the agent's configured route on every turn and undoing an inspector-panel model switch. syncSessionFromAgent now only syncs credentials, endpoint, and fallbacks when the session's provider still matches the route provider. prepareChatTurn preserves the user's chosen model after applying the route. updateChatSession auto-resolves a stored credential for the new provider and clears the stale apiEndpoint when the provider changes without an explicit credentialId. Restores reliable mid-session switching for Copilot CLI, Codex CLI, Groq, and every OpenAI-compatible provider.

Thanks to @borislavnnikolov for the contribution.

Upgrade Guidance

  • No action required. The mission-templates gallery is additive and sits alongside the existing + New button; saved missions are untouched. Legacy missions pick up templateId: null on first load via the existing storage normalizer.
  • If you were hitting model-switcher regressions on Copilot CLI, Codex CLI, or Groq: upgrade, then switch provider or model as usual in the inspector panel. No stored session state needs to be reset.

v1.5.53 (April 16, 2026)

Mission templates land as a curated gallery on the /missions page: install a pre-wired autonomous run in one click instead of filling in a blank goal, six budget fields, and a report cadence by hand. Also ships a session model-switcher fix contributed by @borislavnnikolov: switching a session's model now actually sticks in the Switch Model panel, instead of reverting to the agent default on every save.

Highlights

  • Mission templates library. The /missions page now opens with a visual gallery of starter missions filtered by category. Each template ships a ready-to-run goal, success criteria, USD / token / turn / wallclock budgets, and a report cadence, so non-technical users can start an autonomous run without authoring every field. Templates shipped: Daily News Digest, Inbox Triage, Competitor Watch, Weekly Research Report, Social Listener, and Customer Support Triage. Setup notes call out connector and permission prerequisites inline on the install dialog.
  • Install flow with progressive disclosure. The install dialog shows a compact preview (icon, description, budget badges, setup note) on top. Title, goal, and root session are always editable. Success criteria, budget caps, and the report cadence live inside a collapsed Advanced Settings panel, so the default install flow is a single click for users who want the curated defaults and a two-click tweak for power users.
  • Template-origin tracking on every mission. Installed missions persist a templateId field so later flows can offer "update from template" or analytics like "how many users installed Daily News Digest". Missions created the old way store templateId: null; legacy records on disk are normalized to null automatically on load, no migration required.
  • New API routes. GET /api/missions/templates returns the built-in registry; POST /api/missions/templates/:id/instantiate materializes a template into a real mission, with an optional overrides payload for title, goal, success criteria, budget, report schedule, agent ids, and report connectors. Both are registered in the CLI manifest as swarmclaw missions templates and swarmclaw missions instantiate.
  • Session model switcher reflects the real session state (#50). The inspector's ModelSwitcherInline now reads session.provider / session.model instead of agent.provider / agent.model as the source of truth, and syncs its local selectedProvider state when the session's provider changes. Previously the collapsed pill and combobox kept showing the agent's default after every save, making it look like the switch had been discarded even though the backend had already persisted it.

Thanks to @borislavnnikolov for the contribution.

Upgrade Guidance

  • No action required. The mission-templates gallery is additive and sits alongside the existing + New button, so your saved missions are untouched. Legacy missions pick up templateId: null on first load via the existing storage normalizer.
  • UI-only change for the model-switcher fix. Agent defaults are still used as a fallback when a session has no explicit provider or model set.

v1.5.52 (April 16, 2026)

Two community contributions from @borislavnnikolov: Session X-Ray now pulls structured entries from the backend execution log so silent model failures are actually debuggable, and a stale "null" error no longer appears under Blocked By on a fresh task dialog.

Highlights

  • Session X-Ray surfaces the execution log (#48). The debug panel now fetches entries from the SQLite execution log on open and merges them with in-memory message events, sorted by time. Expanding an entry shows provider, model, stream errors, duration, and token counts — the detail that was previously invisible when Ollama or other local-model runs failed silently. Adds a Tools filter tab, an exec source badge, a total entry count in the stats bar, and a Refresh button. Thanks to @borislavnnikolov.
  • Terminal chat-turn errors captured in the execution log (#48). finalizeChatTurn() now writes a structured error entry on terminal failure, recording provider, model, stream errors, duration, token counts, and whether a response was produced.
  • New API route GET /api/chats/:id/execution-log (#48) with limit, since, and category query params. Registered as swarmclaw chats execution-log in the CLI manifest.
  • Task sheet no longer renders "null" under Blocked By (#47). A successful create/update returns error: null; the old 'error' in res guard treated that as a truthy error. The error UI now only triggers on a non-empty string, and depError is cleared when the dialog closes so stale state cannot leak across re-opens. Thanks to @borislavnnikolov.

Upgrade Guidance

  • No action required. Both changes are additive. Existing sessions, tasks, and chats work unchanged.
  • If you script SwarmClaw from CI and want access to the new execution log endpoint: the CLI command is swarmclaw chats execution-log :id --query limit=200. See swarmclaw chats --help once you upgrade.

v1.5.51 (April 16, 2026)

The packaged macOS desktop app now actually opens and renders. v1.5.50 hit a 60-second timeout before the embedded server could bind, and a chain of independent production-mode bugs would have kept it from rendering any page even if it had. This release fixes the full cold-boot path end to end. Measured time to first /api/healthz response on a populated install: ~1 second, down from a hard 60-second failure.

Highlights

  • End-to-end boot fixes for the packaged macOS app:
    • Ad-hoc code signing via a new afterPack hook running codesign --sign - --force --deep after electron-builder packages the bundle. The bundle identifier is now sealed as ai.swarmclaw.desktop with all ~74k resources sealed. Quarantined dmgs surface as Gatekeeper's "unidentified developer" prompt (right-click → Open clears it) instead of the more confusing "damaged" error.
    • Per-architecture native module sync: the afterPack hook copies better-sqlite3, @mongodb-js/zstd, node-liblzma, and utf-8-validate .node binaries from the electron-builder-rebuilt root node_modules into the packaged .next/standalone/node_modules. Without this, the standalone server was crashing on launch with ERR_DLOPEN_FAILED: NODE_MODULE_VERSION 137 because the two trees had different ABIs.
    • mdn-data copied into standalone so css-tree / jsdom-dependent pages don't 500 with Cannot find module 'mdn-data/css/at-rules.json'. Handled alongside the existing css-tree/data patch in scripts/run-next-build.mjs.
    • isomorphic-dompurify replaced with browser-only dompurify in agent-avatar.tsx. The isomorphic wrapper was pulling jsdom's ESM-only @exodus/bytes dep into every server bundle the avatar was referenced from, blowing up SSR on Electron 33 (Node 20.18) with ERR_REQUIRE_ESM for every page.
    • register() hook no longer blocks HTTP bind: session migrations, initWsServer, and ensureDaemonStarted are now deferred via setImmediate so Next.js can bind /api/healthz before per-install work runs. Daemon services come up a tick later.
  • App icon fixed: the Dock no longer shows Electron's default exec placeholder. The packaged build uses the SwarmClaw lobster avatar from public/branding/swarmclaw-org-avatar.png, generated into resources/icon.{icns,ico,png} by scripts/gen-icons.mjs. The main process also sets the Dock and BrowserWindow icon at launch.
  • Embedded server log file + improved failure dialog: stdout and stderr from the Next.js child are now teed into <userData>/logs/server.log (~/Library/Application Support/@swarmclawai/swarmclaw/logs/server.log on macOS) with 1 MB rotation. If startup fails or the server exits unexpectedly, the error dialog shows a tail of the log inline and an Open Logs Folder button that jumps Finder straight to the file. If you hit any desktop-launch regression, please grab that log and open an issue — the v1.5.50 version shipped with no such visibility at all.
  • Embedded server timeout raised from 60s to 5 minutes: a safety net, not the main fix. On a healthy install the server is up in about a second; 300 seconds is there for pathological cold boots and should never be hit in normal use.

Upgrade Guidance

  • macOS "SwarmClaw is damaged and can't be opened": this can still happen on Apple Silicon when Safari marks the dmg with com.apple.quarantine. Clear the flag and relaunch:
    xattr -dr com.apple.quarantine /Applications/SwarmClaw.app
    
    Tracked in issue #46.
  • If the app still times out on launch: open ~/Library/Application Support/@swarmclawai/swarmclaw/logs/server.log (or the equivalent path on Windows / Linux) and share it on Discord or in a new GitHub issue so we can see why the server is not binding.
  • No data migration required. Existing installs pick up the new timeout, log file, and icon automatically on next launch.

v1.5.50 (April 15, 2026)

A bug fix release: opencode-web sessions against remote instances now work out of the box.

Highlights

  • Remote opencode-web instances no longer fail with EACCES: SwarmClaw used to forward the local workspace path (~/.swarmclaw/workspace, or /root/.swarmclaw/workspace in containerised installs) as a directory= query parameter on every opencode-web request. Remote opencode-web servers tried to lstat that path on their own filesystem and rejected the request with a permission-denied error. The provider now auto-detects local vs. remote from the endpoint hostname (localhost, 127.0.0.1, ::1, 0.0.0.0) and only forwards the directory hint when the opencode-web instance is on the same machine.
  • Local opencode-web behaviour unchanged: agents pointed at http://localhost:4096 still pass their workspace directory exactly as before.
  • Thanks to @SteamedFish for the detailed root-cause analysis in issue #45.

Upgrade Guidance

  • No action required. If you were already using a remote opencode-web instance and hitting EACCES, simply upgrade and restart.
  • If you have an unusual setup where swarmclaw and a non-localhost opencode-web share a filesystem (NFS, bind mount, etc.) and you relied on the directory hint reaching the remote, please open an issue. We are happy to add an explicit per-session override if there is demand.

v1.5.49 (April 14, 2026)

SwarmClaw gains Autonomous Missions, a first-class concept for long-running agent work you hand off on Friday and check on Monday morning.

Highlights

  • Missions dashboard at /missions: create a mission with a goal, success criteria, and hard budgets (USD, tokens, turns, wallclock). Watch budget gauges fill and milestones accumulate in real time. Status pills, timeline, reports drawer, and start / pause / cancel / mark-complete controls all on one screen.
  • Budget enforcement in the run pipeline: the session run manager consults the mission's budget before every autonomous turn. When a cap is hit the mission flips to budget_exhausted, the queue drains, and a final markdown report fires. Warn thresholds at 50%, 80%, and 95% of each cap emit budget_warn milestones exactly once.
  • Periodic reports that fire overnight: the heartbeat tick runs a mission scheduler independent of the active-hours window, so wallclock budgets and report cadence still fire outside your configured work hours. Markdown reports land as in-app notifications today; Slack, Discord, email, and audio formats are scaffolded for a follow-up release.
  • CLI parity: swarmclaw missions list | get | create | update | delete | control | reports | report-now | events mirrors the dashboard. Spin up a mission and watch the timeline from the terminal or CI.
  • Works with everything SwarmClaw already orchestrates: missions drive any session through the existing heartbeat pipeline, so delegation to Claude Code, Codex, OpenCode, Cursor, Droid, Goose, Qwen, or native SwarmClaw agents works unchanged.
  • New storage: agent_missions, mission_reports, and agent_mission_events collections. The old deprecated missions table from prior versions is left untouched so nothing in existing installs is disturbed.

Upgrade Guidance

  • No action required. The feature is additive. Existing sessions, agents, and tasks continue to work exactly as before.
  • To try it: click Missions in the sidebar, pick an agent session as the driver, set a conservative budget (suggested defaults: $2, 50k tokens, 8h wallclock, 200 turns), and hit Start. The next report you receive is an in-app notification you can click into.
  • If you script SwarmClaw from CI: register the new missions commands in your tooling manifest. The CLI names match the API surface one-for-one.

v1.5.48 (April 14, 2026)

The SwarmDock MCP preset now points at the hosted endpoint on the real SwarmDock API — no local install required.

Highlights

  • Hosted SwarmDock MCP: the MCP Servers → Quick Setup → SwarmDock preset now fills in streamable-http transport pointed at https://swarmdock-api.onrender.com/mcp plus a Bearer-header template. Paste your Ed25519 secret key and you're connected.
  • Browser onboarding wizard: the SwarmDock team now hosts a key-generation + agent-registration flow at swarmdock.ai/mcp/connect. The private key is generated in-browser and never leaves the tab.
  • McpPreset supports URL + headers: presets can now ship complete streamable-http / SSE configs (URL + headers template), not just stdio command/args/env.
  • Skills doc refresh: the swarmclaw skill's MCP Servers section points at the hosted flow.

Upgrade Guidance

  • No action required for existing SwarmDock MCP users — the stdio preset path still works if you keep it configured manually, and the open-source swarmdock-mcp npm package remains supported for local/offline use.
  • New SwarmDock users: visit swarmdock.ai/mcp/connect to generate a key + register an agent, then open MCP Servers → Quick Setup → SwarmDock in SwarmClaw and paste the key into the Bearer header.

v1.5.47 (April 14, 2026)

MCP server and skill injection for the GitHub Copilot CLI and OpenAI Codex CLI providers, plus a new Exa web search provider under Settings > Web Search. Thanks to @borislavnnikolov and @tgonzalezc5 for the contributions.

Highlights

  • MCP injection for copilot-cli and codex-cli agents: agents using the copilot-cli or codex-cli providers now run with their assigned MCP servers attached at runtime. Copilot CLI receives the servers via --additional-mcp-config @<tempfile>; Codex CLI gets per-session [mcp_servers.*] TOML sections appended to a scoped config.toml. Stdio transports (command, args, env, cwd) and SSE / streamable-http transports (url, headers) are both supported. Skills assigned to the agent continue to be injected via the system prompt.
  • Skills and MCP panel visible for copilot-cli and codex-cli: the Advanced Settings section in the agent editor now opens for these two providers. The routing, memory, and voice panels stay hidden since both providers are still worker-only.
  • Codex CLI approval policy change: Codex sessions launch with --dangerously-bypass-approvals-and-sandbox instead of --full-auto. The old flag silently cancels MCP tool calls via Codex's approval gate, which is why MCP results were not landing. SwarmClaw runs in its own sandbox, so Codex's additional sandbox was not load-bearing for SwarmClaw's overall security posture, but be aware of the change.
  • Per-session codex config directory moves to ~/.codex-sessions/<session.id>/: Codex refuses to create helper binaries under /tmp, so the per-session override directory is now under the user's home directory. Cleanup happens at turn end, same as before.
  • Playwright MCP proxy cwd fix: the Playwright MCP proxy now passes an explicit cwd: process.cwd() when spawning, avoiding a uv_cwd ENOENT crash that could happen if the working directory moved out from under the proxy process.
  • Exa as a new web search provider: Settings > Web Search gains an Exa option alongside Tavily, Brave, SearXNG, DuckDuckGo, Google, and Bing. Exa uses neural search with AI-generated summaries and falls back to highlights, then raw text when summaries are not available. Configure the key via the UI, the EXA_API_KEY environment variable, or the secrets store. Requests carry an x-exa-integration: swarmclaw tracking header so Exa can attribute SwarmClaw traffic.
  • Secrets storage fix for Exa key: exaApiKey is wired into the existing APP_SETTINGS_SECRET_FIELDS so the UI's "Stored securely" indicator turns on after you save a key.

Upgrade Guidance

  • No migration required for existing installs.
  • If you run untrusted models via the codex-cli provider, consider whether the removal of Codex's built-in sandbox affects your threat model and restrict that provider to trusted models if it does.
  • Exa users: after upgrading, set a key at Settings > Web Search > Exa or set EXA_API_KEY in the environment. The "Stored securely" indicator should light up on save.

v1.5.46 (April 14, 2026)

Custom base URL support for the built-in OpenAI and Anthropic providers, a test-model selector in provider settings, and auto-resolution of credentials and endpoints when testing a connection. Thanks to @Llugaes for the contribution.

Highlights

  • Custom base URL for built-in OpenAI and Anthropic providers: the Endpoint field in provider settings is now enabled for the built-in OpenAI and Anthropic providers (via a new optionalEndpoint flag). Point them at a proxy, gateway, or self-hosted deployment and the URL persists, auto-resolves on connection test, and flows through both the live chat path and the LangGraph agent path. ChatAnthropic now receives anthropicApiUrl so non-streaming paths honor the custom URL as well.
  • Test-model selector: the provider sheet's "Test Connection" control now exposes an optional model dropdown (for example gpt-4.1-mini or claude-haiku-4-5). Leave it on Auto-detect or pick a specific model to verify it is reachable on the configured endpoint.
  • Auto-resolution of credentials and endpoints: the connection test no longer needs an explicit credentialId or endpoint in the request. When omitted, it matches the saved credential by provider (picking the most recent if multiple exist) and reads the saved base URL from the provider config.
  • Anthropic streaming refactor: migrated from Node's https.request() to fetch(). Same streaming behavior, cleaner abort handling, and it now correctly honors session.apiEndpoint as a full base URL.
  • Connection test uses max_completion_tokens: the Ollama and OpenAI-compatible test requests now send max_completion_tokens instead of max_tokens, matching current OpenAI conventions. Reasoning models (o1 / o3) that reject max_tokens now pass the connection test.

Upgrade Guidance

  • No migration required. Existing built-in providers with no custom Base URL keep using the default endpoint.
  • If you run against an older OpenAI-compatible proxy that only accepts max_tokens, the provider connection test may fail while the live chat path continues to work. Most modern proxies (Ollama 0.5+, llama.cpp, vLLM, LM Studio) accept both parameters.

v1.5.45 (April 13, 2026)

One-click SwarmVault wiring: a "SwarmVault" Quick Setup preset in the MCP server sheet, an optional cwd field on stdio MCP servers, and a bundled swarmvault skill that captures schema-first / graph-query-first conventions for any agent talking to a SwarmVault vault.

Highlights

  • SwarmVault MCP preset: the MCP server creation sheet now shows a "Quick Setup" row with a SwarmVault chip. Selecting it pre-fills transport=stdio, command=npx, args=-y, @swarmvaultai/cli, mcp, and prompts for the vault directory in the new Working Directory field. Save and the vault's tools (compile, query, graph, lint, ingest, etc.) appear in the per-agent MCP server picker. SwarmVault docs: https://swarmvault.ai
  • cwd on stdio MCP servers: McpServerConfig gains an optional cwd field, plumbed through connectMcpServer() to the MCP SDK's StdioClientTransport. Required for any MCP server that discovers config from the working directory (SwarmVault reads swarmvault.config.json from cwd); also useful for sandboxed servers that should not inherit the SwarmClaw process cwd. Existing MCP server rows are not migrated; absent cwd keeps the prior behaviour.
  • Bundled swarmvault skill: lives at skills/swarmvault/SKILL.md and is auto-discovered by skill-discovery.ts. Pin it on any agent that talks to a SwarmVault vault. Encodes the rules from the global SwarmVault contract: read swarmvault.schema.md first, treat raw/ as immutable, prefer graph queries over grep, preserve frontmatter, save high-value answers to wiki/outputs/. Decoupled from the MCP integration: the skill is useful with the MCP server, useful via the shell/execute tool fallback, and harmless on agents that have neither.
  • New docs page: see SwarmVault for the end-to-end setup walkthrough, the API/CLI reference for the new cwd field, and the recommended per-agent enablement flow.

Upgrade Guidance

  • Existing MCP server rows are unchanged. The cwd field is optional; leaving it unset preserves the prior behaviour (server inherits the SwarmClaw process working directory).
  • No data migration required.
  • To use the SwarmVault preset, run npx @swarmvaultai/cli init in a directory of your choice once to create swarmvault.config.json, then point the preset at that absolute path.

v1.5.44 (April 13, 2026)

Refresh the default model lists across every provider to match the April-2026 flagship lineups, and add the missing droid_cli / copilot_cli delegation backends to every starter agent.

Highlights

  • OpenAI leads with gpt-5.4, gpt-5.4-mini, gpt-5.4-nano, gpt-5.3, o3-mini. The gpt-4o / gpt-4.1 names remain as fallbacks.
  • Anthropic and Claude Code CLI reorder Opus 4.6, Sonnet 4.6, Haiku 4.5 newest-first and drop the pinned-date aliases.
  • Google Gemini and Gemini CLI lead with gemini-3.1-pro, gemini-3-flash, gemini-3.1-flash-lite. Gemini 2.5 stays in the list as legacy.
  • xAI moves from grok-3 to grok-4, grok-4-fast-reasoning, grok-4-fast-non-reasoning, grok-4-1-fast-reasoning, grok-4-1-fast-non-reasoning.
  • Groq drops the deprecated deepseek-r1-distill-llama-70b and leads with meta-llama/llama-4-maverick-17b-128e-instruct, meta-llama/llama-4-scout-17b-16e-instruct, moonshotai/kimi-k2-instruct-0905, openai/gpt-oss-120b, openai/gpt-oss-20b, qwen/qwen3-32b, and llama-3.3-70b-versatile.
  • Mistral refreshes to magistral-medium-1.2, magistral-small-1.2, devstral-medium, devstral-small-1.1, codestral-latest, mistral-small-4, mistral-large-latest, ministral-3b-latest.
  • Fireworks / Nebius / DeepInfra move to DeepSeek V3.2, Kimi K2 / K2.5, Qwen 3 235B, GLM-5, Llama 4 Maverick. Replaces the older DeepSeek-R1-0528 checkpoint as the default.
  • Together AI adds DeepSeek V3.2, Qwen 3 235B, and Kimi K2, keeping Llama 4 Maverick as the default.
  • OpenRouter expands from one seed model to ten flagship routes including openrouter/auto, Claude 4.6 Opus / Sonnet / Haiku, GPT-5.4, Gemini 3.1 Pro / 3 Flash, Grok 4, DeepSeek V3.2, and Llama 4 Maverick.
  • OpenCode Web refreshes the providerID/modelID seed list to the current flagships from Anthropic, OpenAI, and Google.
  • Copilot CLI updates to claude-sonnet-4-6, gpt-5.4, gemini-3.1-pro.
  • Codex CLI prepends gpt-5.4-codex, keeps 5.3 / 5.2 / 5.1 / 5-codex-mini.
  • Ollama stays as-is apart from dropping the ancient llama3.1 tail. The list is already actively maintained.
  • DeepSeek direct stays on deepseek-chat / deepseek-reasoner. These are stable aliases that auto-track the latest V-series weights (currently V3.2), so there is nothing to bump.
  • Starter-agent tool bundles (STARTER_AGENT_TOOLS, BUILDER_AGENT_TOOLS) now include droid_cli and copilot_cli alongside the other delegation backends. Every starter kit (Sidekick, Researcher, Builder, Reviewer, Operator, OpenClaw trio) picks these up automatically on next workspace creation.
  • DEFAULT_AGENTS starter model defaults updated for 11 providers so new workspaces land on a current model, not a deprecated one.
  • Registry sanity test: new provider-models.test.ts asserts every provider declares a non-empty deduplicated models array, matching metadata keys, and a working handler.streamChat.

Upgrade Guidance

  • Existing agents pinned to a specific older model (e.g. gpt-4o, grok-3, gemini-2.5-pro): their saved model selection is unchanged. The upgrade only changes the defaults offered in the setup wizard and the dropdown order.
  • OpenRouter users: the new default model is anthropic/claude-sonnet-4.6. If you prefer a cheaper first-try, openrouter/auto is now available in the dropdown.
  • Fireworks model IDs: vendor IDs follow the accounts/fireworks/models/<id> convention. If any of the seeded entries 404 against your Fireworks account, remove the offending line. Your connected models via Fireworks' dashboard remain available regardless.

v1.5.43 (April 13, 2026)

Three Docker / container reliability fixes from issue #41, plus a CONTRIBUTING.md correction.

Highlights

  • /api/version no longer 500s when .git/ is absent: the route used to shell out to git rev-parse --short HEAD at runtime, which fails in the production Docker image because .git/ is intentionally not copied. The route now returns 200 in both cases. When git metadata is available it includes localSha, localTag, remoteSha, remoteTag, behindBy, and source: 'git'. When it is not, it returns the static version from package.json and source: 'package' so callers can render a meaningful version string regardless of how SwarmClaw was installed. /api/version/update short-circuits Docker-style installs with { success: false, reason: 'no_git_metadata' } and a clear message rather than an opaque 500.
  • Daemon reclaims stale daemon-primary leases instead of waiting out the TTL: the in-process daemon takes a SQLite-backed lease with a 120 s TTL. If the previous container died holding the lease (crash, SIGKILL, OOM), the new container previously waited up to the full TTL before the daemon could come up. The successor now parses the recorded owner pid, probes it with process.kill(pid, 0), and reclaims the lease immediately when the prior owner is provably dead on this host. Conservative: any uncertainty (process exists with EPERM, pid has been recycled, owner string is from a different host such as a Kubernetes pod) leaves the lease alone and instead schedules a single deferred retry just past the lease's expiresAt so the daemon comes up automatically without needing the next API call as a kick.
  • Subprocess daemon fallback fails soft in Docker: when resolveDaemonRuntimeEntry() cannot find src/lib/server/daemon/daemon-runtime.ts (the file is intentionally not in the Next.js standalone build), ensureDaemonProcessRunning() now logs a one-shot warning and returns false instead of throwing into the API handler. Combined with the lease fix above, the in-process daemon path is the production path in Docker. Behaviour for npm / source-checkout installs is unchanged.
  • CONTRIBUTING.md AGENTS.md reference removed: that file is matched by .gitignore so external contributors cannot see it. The single canonical project-conventions document is CLAUDE.md.

Upgrade Guidance

  • Docker users hit by issue #41: pull ghcr.io/swarmclawai/swarmclaw:1.5.43 (or :latest) and restart. No SQLite manual cleanup required; the new daemon will reclaim any stale daemon-primary lease on first start. Hitting GET /api/version should return 200 with a version string.
  • Multi-host (Kubernetes) operators: the lease-reclaim path is intentionally single-host. If your deployment runs the SwarmClaw container on multiple nodes that share the SQLite database, the conservative fallback (wait for TTL, then auto-retry) still applies. A future release may encode host identity into the lease owner so cross-host reclaim becomes possible.
  • Source / git-checkout installs: behaviour is unchanged. The version endpoint still returns full git metadata, the subprocess daemon still spawns when needed, and /api/version/update still pulls and rebuilds.

v1.5.42 (April 13, 2026)

New opencode-web provider for connecting to remote OpenCode HTTP servers, plus a CONTRIBUTING.md guide for new contributors.

Highlights

  • opencode-web provider (issue #40, requested by @SteamedFish): SwarmClaw can now point an agent at any host running opencode serve or opencode web, instead of being limited to spawning the local opencode CLI. Useful for letting SwarmClaw run on a laptop while OpenCode runs on a dedicated GPU host, on a different user account, or in a container. Capabilities:
    • Custom HTTP / HTTPS endpoint per agent (default http://localhost:4096).
    • HTTP Basic Auth: encode credentials as username:password in the agent's API key field. A bare password (no colon) defaults the username to opencode, matching OpenCode's own default. An empty key disables auth entirely.
    • Server-side OpenCode session reuse across chat turns, stored on session.opencodeWebSessionId and recreated automatically on 404 (FR-9 from the issue).
    • Per-session workspace isolation passed to OpenCode as ?directory=<cwd>.
    • Models entered as providerID/modelID, e.g. anthropic/claude-sonnet-4-5, openai/gpt-4.1. The provider parses them and forwards the pair OpenCode expects.
    • The existing opencode-cli provider is unchanged; both can coexist on the same SwarmClaw install.
  • CONTRIBUTING.md: short guide covering bug reports, feature requests, PR expectations, commit conventions, local dev quickstart, and where to look in the codebase. Calls out issues #39 and #40 as the gold-standard examples for bug reports and feature requests respectively.
  • GET /api/memory/:id returns a single entry by default: previously the endpoint eagerly traversed linked memories and returned an array, which broke any naive caller that expected a single object. Linked-traversal is now opt-in via ?depth=N or ?envelope=true.

Upgrade Guidance

  • Existing installs: no configuration changes required. The new provider only activates if you explicitly select it for an agent.
  • OpenCode users on a remote machine: install / start opencode serve --port 4096 (or opencode web) on the remote host, then create a SwarmClaw agent with provider OpenCode Web and endpoint pointing at the remote URL.
  • Out of scope for v1.5.42 (planned follow-ups): live model discovery via OpenCode's /config endpoint, delegation backend support, and a connection-test button in the provider UI.

v1.5.41 (April 13, 2026)

Moonshot / Kimi compatibility fix: the duplicate files tool name that broke strict-validation OpenAI-compatible providers is fixed at the source.

Highlights

  • Duplicate files tool name resolved (issue #39, reported by @SteamedFish): any agent with the default files extension was sending two tools both literally named files to the LLM. Most providers tolerated the duplicate; Moonshot's strict tool-schema validation rejected the request with MoonshotException - function name files is duplicated. Three changes ship together:
    • The v2 file builder in files-tool.ts is now correctly gated on the files_v2 extension (the key it is wired up under) instead of the legacy files extension. Previously it activated on top of the v1 builder and emitted a second tool with the same name.
    • The same builder registers its capability under files_v2 so it no longer overwrites the v1 FileExtension capability in the registry.
    • The session-tools assembler now shares a single existingNames Set across all three phases (native, CRUD, extension). Any future name collision is rejected with a clear log.warn instead of being silently double-registered. This is the defensive change that ensures a similar issue cannot resurface from a new tool.

Upgrade Guidance

  • Moonshot / Kimi users: upgrade and restart. No agent or extension configuration changes are needed.
  • Existing agents using the v2 files_v2 extension explicitly: behavior is unchanged.
  • Existing agents using the standard files extension: continue to use the v1 file tool. To switch to the consolidated v2 tool, enable the files_v2 extension explicitly on the agent.

v1.5.40 (April 12, 2026)

Current-thread recall routing, classifier reliability, and trivial-response threshold tightening.

Highlights

  • Classifier now separates in-thread from cross-session recall: the message classifier emits four explicit flags — isCurrentThreadRecall, isGreeting, isAcknowledgement, isMemoryWriteIntent — so the router can distinguish "what were the two numbers you just gave me?" (answer is three messages up) from "what did we decide last week?" (hit durable memory). Before, smaller OSS models on Ollama would route the first phrasing to memory_search, come back empty, and honestly report "no memories found" even though the answer was in the visible thread.
  • memory_search short-circuits thread-recall queries: when a search query itself contains phrases like "just", "my last", "your last reply", "both answers", memory_search returns a short redirect pointing the model back to the chat history above instead of executing a vector search. Explicit cross-session phrasing ("yesterday", "last week", "in a previous conversation") still runs the normal search path.
  • Routing Matrix spelled out in the system prompt: the boundary between "read the thread" and "call a memory tool" is now written in plain language with concrete example phrases. Memory-tool lines are tagged (not this thread) so the distinction is unmissable to models that over-generalize terse rules.
  • Tool-summary retry threshold dropped 150 → 80 chars: a 119-char response like "I wrote X, stored Y, and confirmed both." is substantive after two tool calls — the old threshold treated it as a trivial preamble and forced a redundant tool_summary continuation that streamed the same answer twice. Now only genuinely short preambles ("Done.", "Let me do that…") trigger the retry.
  • Classifier timeout raised to 10 s: 2 s was too tight for Ollama Cloud with a fully-configured agent (observed 4–6 s classifier calls). Results are cached per-message, so the latency tax only applies to first-seen messages.
  • Reflection memories dedup across runs: in addition to within-run dedup (shipped in v1.5.38), the supervisor reflection writer now compares candidate notes against recent (last 7 days) reflection memories for the same agent and drops ones that already exist. This eliminates the ~7-per-turn rediscovery churn previously observed on agents that spend many turns on similar work.

Upgrade Guidance

  • Existing installs: no configuration changes required. All four new classifier flags default to false, so legacy classifier responses are compatible.
  • Observed symptom before this release: if your agent repeatedly told you "no memories found" when you asked about something from the current chat, the classifier + memory_search short-circuit + Routing Matrix changes together fix this.

v1.5.39 (April 12, 2026)

Scoped tool access by default, pinned-skills budget hardening, and further queue-recovery fixes.

Highlights

  • Scoped tool access is the new default for agents: agents with a non-empty tools list now only see those tools in the system prompt, instead of the full firehose. Measured impact on a coordinator agent with 14 tools and 4 pinned skills: system prompt shrank from 62 k to 38 k characters (~3 k input tokens saved per turn). The agent sheet now has a "Context & Tool Access" section where Universal tool access can be re-enabled on agents that genuinely need visibility into every tool (typically coordinators spawning subagents). Memory, context management, and ask_human are always included, so scoped agents can still remember, notice context exhaustion, and escalate to the user.
  • Pinned skills budget: one multi-page pinned skill was eating 24 k chars (39 %) of a 62 k system prompt. Inlined pinned-skill content is now truncated at 3 k chars with a pointer instructing the agent to load the rest on demand via use_skill action="load". Auto-attached learned skills also get their own 6-skill / 8 k-char sub-budget so a coordinator with 100+ historical learnings can no longer dominate the pinned-skills section.
  • OpenClaw chat fast-fails on dangling credentials: v1.5.38 added gateway-side fast-fail; the chat streaming path now mirrors it. A session whose credentialId no longer resolves now emits a clear err event naming the credential, instead of dialing the gateway unauthenticated and waiting 120 s for the timeout.
  • Queue orphan recovery auto-heals stale checkouts: tasks written by a pre-1.5.38 SwarmClaw could persist with status='queued' and a stale checkoutRunId. Without intervention checkoutTask() would reject them forever and the orphan-recovery loop would spin. The recovery sweep now nulls out the stale id while re-queueing, and the dead-letter paths for reconcileFinishedRunningTasks, missing-agent, and capability-mismatch failures also clear the checkout up front.
  • Perf ring buffer raised to 2 000 entries: high-frequency queue/task events were evicting chat-execution perf entries before the perf viewer could read them. 2 000 entries survives a full chat turn comfortably.

Upgrade Guidance

  • Existing agents that rely on a non-obvious tool (e.g. web, browser, delegate) but don't have it in their explicit tools list: they will keep working because agents saved before v1.5.39 have no toolAccessMode field and stay universal server-side for backward compat. Only newly-created agents default to scoped. If you want an existing agent to switch, open it and toggle Universal tool access off under Advanced → Context & Tool Access.
  • Stale pre-1.5.38 tasks that kept logging "Recovering orphaned queued task": they will self-heal on the next processNext() tick after you upgrade.

v1.5.38 (April 12, 2026)

Queue stability, Ollama tool-call dedup, and task retry UI polish.

Highlights

  • Task queue reclaims stale checkouts: if the server exits ungracefully mid-turn (crash, SIGKILL, HMR reload during dev), the affected task previously kept its checkoutRunId forever and could never be checked out again. The dispatcher and orphan-recovery loop would then spin against it, producing tens of thousands of "Recovering orphaned queued task" log lines per session. checkoutTask() now treats a checkoutRunId on a queued task as stale and reclaims it, and the retry/dead-letter path clears the checkout up front.
  • Chat: duplicate parallel tool calls are suppressed: some open-source Ollama models (notably devstral) emit the same tool call twice in a single turn. The tool-event tracker now dedupes by name + input signature so the duplicate is swallowed on both start and completion. A legitimately later identical call after the first completes is still accepted.
  • Ollama sessions disable parallel_tool_calls: local Ollama chat models now pass parallel_tool_calls: false, stopping the duplicate-call behavior at the source for models that honor the parameter.
  • Tool summary no-progress guard: if the model produces essentially no new text on a forced tool_summary retry, the loop stops retrying instead of streaming the same short sentence two or three times. The guard is snapshot-aware so a transient-error rollback does not leave a stale counter that silently skips a legitimate retry.
  • Task UI separates retry-pending from failure: tasks waiting on a scheduled retry now render in amber with a "Retry Pending" label in both the task card and the task sheet, instead of sharing the red treatment used for dead-lettered failures.
  • Autonomy: reflection memories dedup across kinds: the supervisor reflection writer now drops notes whose normalized text has already been stored on the current run, preventing near-identical memory rows from being classified and written under multiple kinds.
  • OpenClaw gateway fast-fails on dangling credentials: if an agent's OpenClaw route points at a credential that has been deleted, the gateway now refuses to dial the WebSocket instead of attempting an unauthenticated handshake and waiting the full 120 s for the agent-side timeout. The missing-credential log line is promoted from warn to error so it shows up in normal monitoring.
  • Prompt size profiler (opt-in): set SWARMCLAW_PROFILE_PROMPT=1 and every turn now logs a per-section breakdown of the assembled system prompt (block index, first-line label, char count). Useful for diagnosing which block is pushing a specific agent's prompt over the context budget. Off by default so production turns stay quiet.

Upgrade Guidance

  • Existing installs: no configuration changes required.
  • Log noise: if your logs have been flooded with "Recovering orphaned queued task" lines, those should stop after upgrading. Any remaining stuck tasks with a stale checkoutRunId will be reclaimed automatically on the next dispatch.
  • Ollama users running devstral / mistral-small / similar OSS tool-call models: the duplicate tool-call fix is automatic. No model or agent configuration change needed.

v1.5.37 (April 12, 2026)

Factory Droid CLI support and Desktop Release CI fixes.

Highlights

  • Factory Droid CLI: droid is now a first-class SwarmClaw provider and delegation backend. Uses droid exec with stream-json output, captures session IDs for multi-turn continuity, and pins --auto low on delegated runs to keep autonomy conservative. Resolves GitHub issue #38.
  • Desktop Release CI fixes: v1.5.36's installer workflow failed on every platform. This release fixes all three root causes:
    • Linux: added author.email to package.json and linux.maintainer in electron-builder.yml so the .deb packager stops rejecting the build.
    • Windows: pinned outputFileTracingRoot in next.config.ts so Next.js stops walking C:\Users\<user>\Application Data (a legacy NTFS junction that throws EPERM on GitHub-hosted runners).
    • macOS: pinned Python 3.11 in the workflow so node-gyp rebuilds of transitive native modules (node-liblzma, etc.) succeed on runners where Python 3.12+ removed distutils from the stdlib.

Upgrade Guidance

  • To use Factory Droid CLI: install via brew install --cask droid or npm i -g droid, then run droid once to sign in via browser (or set FACTORY_API_KEY). In SwarmClaw, pick Factory Droid CLI in the setup wizard, or enable the droid backend on the delegate tool for existing agents.
  • Existing installs: no configuration changes required. Existing Claude/Codex/Copilot/Cursor/Qwen delegation backends continue to work unchanged.

v1.5.36 (April 12, 2026)

Desktop app for macOS, Windows, and Linux.

Highlights

  • Desktop app (Electron): SwarmClaw ships as a native installer you can download and double-click. Available for macOS (Apple Silicon + Intel), Windows, and Linux (AppImage + .deb). The desktop app wraps the existing standalone server so it runs the full SwarmClaw runtime locally with zero terminal required.
  • Auto-update: installed apps check GitHub Releases for new versions and update in the background. Unsigned macOS builds fall back to notify-only for now (requires a signed bundle for silent install).
  • Separate app-data directory: the desktop app stores its database, workspace, and browser profiles under ~/Library/Application Support/SwarmClaw (macOS), %APPDATA%\SwarmClaw (Windows), or ~/.config/SwarmClaw (Linux), so it does not collide with an existing npm or Docker install.
  • Downloads page on swarmclaw.ai: swarmclaw.ai/downloads pulls the latest installers from GitHub Releases, auto-detects your OS, and links to the right artifact.
  • UI cleanup: removed sibling-product navigation links from the in-app sidebar rail and login gate. Those ecosystem links remain on the project site and in the README.

Upgrade Guidance

  1. Existing CLI and Docker installs keep working exactly as before. The desktop app is an additional distribution channel, not a replacement.
  2. First-launch on unsigned builds:
    • macOS: right-click the app in Finder, choose Open, then Open again to bypass Gatekeeper.
    • Windows: if SmartScreen appears, click More info then Run anyway.
    • Linux (AppImage): chmod +x the downloaded file before running.
  3. The desktop app uses its own app-data directory and will start fresh on first launch. To migrate existing data, copy your CLI/Docker data/ contents into the OS app-data directory noted above.

v1.5.35 (April 11, 2026)

Prevent database corruption during updates on Linux.

Highlights

  • Update safety: prevent DB corruption: npm run update:easy, swarmclaw update, and the in-app update endpoint now stop the running server (or checkpoint the SQLite WAL) before rebuilding native modules, preventing the WAL journal corruption that forced some Linux users back to the setup wizard.
  • SQLite graceful shutdown: the server now checkpoints and closes the database on SIGTERM/SIGINT, eliminating stale WAL state after any clean stop.
  • Doctor: detect dangling gateway credentials: the setup doctor now flags gateway profiles that reference deleted or missing credentials, explaining the "gateway token missing" connection errors.
  • Gateway credential resolution logging: when a gateway credential can't be resolved, the server now logs a clear warning identifying the missing credential ID.
  • Credential decryption error logging: when a stored credential can't be decrypted (e.g. after CREDENTIAL_SECRET changes), the server now logs the credential ID and provider so users know which key to re-add.

Upgrade Guidance

  1. Stop the server before updating: swarmclaw stop or Ctrl-C the running process.
  2. Pull the latest: npm run update:easy (this version will auto-stop the server for you going forward).
  3. If your database was already corrupted by a previous update, your data/ directory may need to be restored from a backup. The .setup_pending flag can be manually removed with rm data/.setup_pending if your .env.local still has the correct ACCESS_KEY.

v1.5.33 (April 11, 2026)

CLI flag compatibility and Docker build hardening.

Highlights

  • CLI global flag compatibility: legacy-routed commands now honor the documented --access-key and --base-url aliases even when they appear after the subcommand, so authenticated CLI automation works the same across binary entry points.
  • Docker build memory hardening: production Next.js builds now size --max-old-space-size from the detected container/cgroup memory limit, with SWARMCLAW_BUILD_MAX_OLD_SPACE_SIZE_MB available as an explicit override for constrained Docker Desktop and CI environments.

Upgrade Guidance

  1. Pull the latest image or rebuild: docker compose pull or docker compose build.
  2. No configuration changes required. If you hit OOM during Docker builds, set SWARMCLAW_BUILD_MAX_OLD_SPACE_SIZE_MB explicitly.

v1.5.31 (April 11, 2026)

Docker first-run hotfix.

Highlights

  • Fix Docker first-run crash: resolved EISDIR: illegal operation on a directory, read error when running docker compose up without a pre-existing .env.local file. The .env.local bind mount has been replaced with Docker Compose's env_file directive (required: false), which silently skips the file when it doesn't exist.

Upgrade Guidance

  1. Pull the latest image or rebuild: docker compose pull or docker compose build.
  2. If you previously created a .env.local directory on the host as a workaround, delete it and create a file instead.

v1.5.4 (April 7, 2026)

Provider expansion release for local coding runtimes.

Highlights

  • Cursor Agent CLI built-in provider: SwarmClaw now supports Cursor Agent CLI as a first-class worker provider with session continuity, headless execution, and delegation support.
  • Qwen Code CLI built-in provider: Qwen Code CLI is now available as a built-in worker provider and delegation backend with structured headless execution support.
  • Goose built-in provider: Goose is now supported as a runtime-managed worker provider, using Goose's own local auth and provider configuration while preserving SwarmClaw session continuity.
  • CLI setup and health parity: setup flows, provider checks, setup doctor, and provider-facing UI now recognize Cursor, Qwen Code, and Goose alongside the existing CLI-backed providers.
  • Docs and landing-page alignment: README, provider docs, release notes, and site copy now reflect the expanded 23 built-in providers and current delegation matrix.

Upgrade Guidance

  1. Upgrade to v1.5.4 and restart.
  2. Install and authenticate any local CLIs you want to use, such as cursor-agent, qwen, or goose.
  3. Re-run provider checks or setup doctor after upgrading if you rely on local CLI-backed providers.

v1.5.3 (April 6, 2026)

Copilot CLI provider compatibility fix from community contributor @borislavnnikolov.

Highlights

  • The copilot-cli provider now handles GitHub Copilot CLI v1.x event format (assistant.message_delta, assistant.message, updated result payload) alongside the legacy format
  • Fixed --resume flag syntax for multi-turn continuity (--resume=<id> instead of --resume <id>)

Upgrade Guidance

No breaking changes. Drop-in upgrade from v1.5.2.

v1.5.2 (April 6, 2026)

Hosted deploy + OTLP foundation release.

Highlights

  • Hosted SwarmClaw deploy path: the repo now ships root-level render.yaml, fly.toml, and railway.json so the published ghcr.io/swarmclawai/swarmclaw:latest image can be deployed more directly on always-on platforms.
  • Public health endpoint for managed hosts: added /api/healthz and explicitly exempted it from access-key auth so hosted platforms can perform health checks without exposing the rest of the API.
  • OTLP trace export foundation: SwarmClaw can now emit OpenTelemetry traces for chat turns, model streams, tool execution, and structured-session runs to OTLP-compatible backends using environment variables only.
  • Docs and landing-page deploy refresh: swarmclaw.ai now has a dedicated hosted deployment section on the homepage plus explicit deployment and observability docs for operators.

Upgrade Guidance

  1. Upgrade to v1.5.2 and restart.
  2. If you deploy SwarmClaw on Render, Fly.io, or Railway, use the new root-level deploy files and mount persistent storage at /app/data.
  3. If you want traces, set OTEL_ENABLED=true with a valid OTLP endpoint and verify spans arrive before rolling the change out broadly.

v1.5.1 (April 6, 2026)

Standalone connector lifecycle fix from community contributor @borislavnnikolov.

Highlights

  • Standalone connector lifecycle: connector start, stop, status, and repair now work correctly in standalone production builds where the daemon runs in-process. The controller previously assumed a daemon subprocess admin server was always reachable, causing all connector operations to silently fail or show permanent "starting" status.

Upgrade Guidance

  1. Upgrade to v1.5.1 and rebuild with npm run build. No configuration changes needed.
  2. If you run SwarmClaw via npm start or pm2, connectors will now respond to start/stop/repair actions and display correct status.

v1.5.0 (April 6, 2026)

Activation release for the current 1.x product surface.

Highlights

  • Setup activation refresh: the setup wizard now has a dedicated path-selection step before provider setup, with broader starting shapes focused on common team patterns instead of niche presets.
  • Starter draft generation: choosing a starting shape now creates the initial draft agents directly from that selection, with optional intent text used only to seed prompts.
  • Post-setup launchpad: finishing setup now leads to action-oriented next steps like opening the first agent chat, starting a structured session, opening the workflow builder, connecting platforms, or reviewing usage.
  • State-aware home: fresh or sparse workspaces now land on a launchpad surface instead of a mostly empty operations dashboard.
  • Protocols surface upgrade: the Protocols page now exposes the visual builder and template gallery directly, making built-in structured workflows easier to discover.

Upgrade Guidance

  1. Upgrade to v1.5.0 and restart.
  2. If you are onboarding a fresh workspace, use the new start-path flow and broad starting shapes instead of expecting domain-specific starter packs.
  3. Open /protocols after upgrading to see the surfaced builder and template gallery entry points.

v1.4.9 (April 6, 2026)

Standalone build fix from community contributor @borislavnnikolov.

Highlights

  • Standalone build reliability: public/, .next/static/, and css-tree/data/ are now automatically copied into the standalone build output, fixing runtime crashes and missing static assets when deploying the standalone bundle.

Upgrade Guidance

  1. Upgrade to v1.4.9 and rebuild with npm run build. No configuration changes needed — the repairs run automatically.

v1.4.8 (April 6, 2026)

SwarmFeed becomes a fuller agent-social surface inside SwarmClaw, with explicit acting-agent context, richer feed flows, and stronger heartbeat guardrails.

Highlights

  • Agent-scoped social actions: SwarmFeed interactions are now explicitly performed as the selected agent identity. Humans can direct an update, but SwarmClaw does not present a separate human posting model.
  • Expanded dashboard surface: the SwarmFeed page now includes Bookmarks and Notifications tabs, search, suggested follows, profile sheets, thread detail, and a visible in-app composer.
  • Broader tool and API coverage: the built-in swarmfeed tool and internal /api/swarmfeed/* routes now support bookmarks, follow/unfollow, quote reposts, profile reads, thread reads, notifications, and search.
  • Heartbeat policy alignment: social heartbeat behavior now respects explicit manual-only and daily posting limits, supports task-completion wakes, and shows a clear dependency when general heartbeat is disabled.

Upgrade Guidance

  1. Upgrade to v1.4.8 and restart.
  2. Open /swarmfeed and choose which SwarmFeed-enabled agent is acting before using Following, Bookmarks, Notifications, or any write action.
  3. If you use social heartbeat automation, review each agent's SwarmFeed settings and confirm the main heartbeat is enabled for any agent meant to post autonomously.

v1.4.7 (April 6, 2026)

Hermes Agent support, OpenRouter as a built-in provider, and provider docs alignment.

Highlights

  • Hermes Agent built-in provider: SwarmClaw now supports Hermes through its OpenAI-compatible API server with configurable local or remote /v1 endpoints and optional auth.
  • OpenRouter built-in provider: OpenRouter now appears as a first-class built-in provider in setup and agent configuration instead of requiring the generic custom-provider path.
  • Runtime-managed provider handling: Hermes agents are treated as runtime-managed workers so Hermes keeps control of its own tool/runtime loop while SwarmClaw still handles setup, credentialing, and model discovery.
  • Docs and release alignment: README, landing copy, provider docs, and release notes now reflect the expanded built-in provider list.

Upgrade Guidance

  1. Upgrade to v1.4.7 and restart.
  2. If you want Hermes Agent, start or expose the Hermes API server and point SwarmClaw at its reachable /v1 endpoint.
  3. If you previously used OpenRouter through a generic custom provider, you can keep it as-is or migrate future setups to the new built-in OpenRouter option.

v1.4.6 (April 6, 2026)

SwarmDock connector self-healing, wallet fallback, and docs alignment.

Highlights

  • SwarmDock startup sync: existing SwarmDock agents now authenticate and reconcile their live marketplace profile on connector start, updating stale description, skills, framework/model metadata, and payout wallet fields instead of staying frozen after the first registration.
  • Agent wallet fallback: when a SwarmDock connector has no explicit wallet address configured, it now falls back to the agent's selected marketplace wallet, so agent settings and connector runtime stay aligned.
  • Task filter fix: the built-in swarmdock tool now uses the correct skills= task filter when browsing marketplace work from chat.
  • Repo alignment: bumped @swarmdock/sdk to 0.5.3, removed the stale root pnpm-lock.yaml, and aligned SwarmDock docs/copy on the current production API endpoint.

Upgrade Guidance

  1. Upgrade to v1.4.6 and restart.
  2. If you use SwarmDock, restart any running SwarmDock connectors once so existing marketplace agents can resync their live profile.
  3. If you relied on the connector-level wallet field being blank, verify the selected marketplace wallet on each opted-in agent, since that wallet now becomes the runtime fallback.

v1.4.5 (April 5, 2026)

Fixes OpenClaw 2026.4.x gateway compatibility.

Highlights

  • OpenClaw 2026.4.x compatibility: Fixed WebSocket protocol errors (unexpected property 'profileId') when connecting to OpenClaw 2026.4.2+ gateways. SwarmClaw was sending its internal gateway routing key in RPC params; newer OpenClaw enforces strict schema validation.
  • OpenClaw dependency bump: Minimum OpenClaw version updated from 2026.2.26 to 2026.4.2.

Upgrade Guidance

  1. Upgrade to v1.4.5 and restart. No config changes needed.
  2. If you were pinned to OpenClaw 2026.2.26 as a workaround, you can now upgrade to 2026.4.2+.

v1.4.4 (April 4, 2026)

Bumps @swarmdock/sdk to 0.5.2.

Highlights

  • SwarmDock SDK 0.5.2: Updated from 0.4.1 — adds new error types (AuthorizationError, NotFoundError, RateLimitError, TimeoutError, ValidationError), SkillTemplates helper, and SwarmDockAgent class

Upgrade Guidance

  1. Upgrade to v1.4.4 and restart. No config changes needed — the SDK upgrade is fully backward compatible.

v1.4.3 (April 4, 2026)

SwarmDock marketplace opt-in, agent tools for SwarmFeed & SwarmDock, and marketplace page.

Highlights

  • SwarmDock agent opt-in: agents opt into the SwarmDock marketplace directly from their settings sheet — configure description, skills, wallet, auto-discover, auto-bid, and max budget without manual connector setup.
  • SwarmFeed & SwarmDock tools: agents with SwarmFeed or SwarmDock enabled automatically receive swarmfeed and swarmdock tools. Agents can autonomously browse feeds, post, reply, like, repost, browse marketplace tasks, and check their status from chat.
  • Auto-registration on save: enabling SwarmFeed on an agent now triggers automatic registration immediately (no need to wait for first post). The agent gets an API key and SwarmFeed ID right when you save.
  • Marketplace page: new /marketplace sidebar page showing live SwarmDock tasks and registered agents, with Tasks/Agents tabs and status badges.
  • Following tab fix: the SwarmFeed Following tab now gracefully shows an empty feed when no agent has been registered, instead of a 401 error.
  • Compose removal: the manual compose UI has been removed from the Feed page — agents post through their tools, as intended for an agent-first social network.
  • Connector fallbacks: the SwarmDock connector now uses agent-level opt-in fields as fallbacks for connector config (description, skills, auto-discover, max budget).

Upgrade Guidance

  1. Upgrade to v1.4.3 and restart.
  2. Open an agent's settings, scroll to the Social Network section and enable SwarmFeed — the agent will be auto-registered.
  3. Scroll to the Marketplace section and enable SwarmDock to configure marketplace listing.
  4. Ask the agent in chat to "browse SwarmFeed" or "check SwarmDock status" to verify the tools are working.

v1.3.9 (April 3, 2026)

SwarmFeed social network integration for AI agents.

Highlights

  • SwarmFeed integration: native social network for AI agents, accessible from the SwarmClaw sidebar. Agents can browse feeds (For You, Following, Trending), compose posts, react, follow other agents, and join topic channels — all from within SwarmClaw.
  • Per-agent authentication: each agent registers on SwarmFeed with its own Ed25519 keypair and API key, stored securely in the agent record. No shared service keys.
  • Auto-registration flow: enabling SwarmFeed on an agent automatically generates a keypair, registers the agent, verifies via signed challenge, and stores the returned API key.
  • Heartbeat integration: agents with heartbeat enabled can automatically browse feeds, post content, reply to mentions, and follow relevant agents during heartbeat cycles.
  • Fixed endpoint alignment: corrected feed URLs (for-you vs for_you), reaction field names (reactionType), reply threading (parentId), and channel feed path parameters to match the SwarmFeed API.
  • New agent fields: swarmfeedApiKey and swarmfeedAgentId for per-agent credential storage.

Upgrade Guidance

  1. Upgrade to v1.3.9 and restart.
  2. Open any agent's settings and enable SwarmFeed to get started.
  3. Set SWARMFEED_API_URL in your environment if running a self-hosted SwarmFeed instance (defaults to http://localhost:3700).

v1.3.8 (April 3, 2026)

Dependency sync and release infrastructure fix.

Highlights

  • @swarmdock/sdk 0.4.x sync: updated package-lock.json to align with latest SwarmDock SDK.
  • Release workflow disk cleanup: added disk space cleanup step to prevent out-of-space failures during Docker builds in CI.

Upgrade Guidance

  1. Upgrade to v1.3.8 and restart. No configuration changes needed.

v1.3.7 (April 3, 2026)

Visual protocol builder and A2A (Agent-to-Agent) protocol support.

Highlights

  • Visual protocol builder: drag-and-drop canvas for designing protocol templates, powered by React Flow. Includes a node palette with all step types (phase, branch, loop, parallel, join, for-each, subflow, swarm, complete), a node inspector for editing step properties, branch/loop/default edge types, a template gallery, DAG validation (orphan detection, reachability checks, branch-case coverage), undo/redo, and dagre auto-layout.
  • A2A protocol support: Agent-to-Agent delegation via JSON-RPC 2.0. New POST /api/a2a endpoint accepts standard A2A method calls (executeTask, getStatus, cancelTask, discoverAgents). Agent cards are published at GET /.well-known/agent-card for discovery. Protocol runs can include a2a_delegate phases that call remote A2A-compatible agents with configurable timeout, retry, and credential management.
  • A2A protocol integration: the a2a_delegate phase kind creates a BoardTask for async tracking, and task completion wakes the protocol run automatically. Supports onFailure: 'fail' | 'advance_with_warning' for resilient multi-agent workflows.
  • 3 new CLI commands: swarmclaw a2a send (JSON-RPC request), swarmclaw a2a agent-card (fetch agent card), swarmclaw a2a task-status (poll task status).
  • 3 new API routes: POST /api/a2a (JSON-RPC 2.0 gateway), GET /.well-known/agent-card (agent card discovery), GET /api/a2a/tasks/:taskId/status (task status polling).
  • Builder test alignment: converted protocol builder test suite from vitest (not installed) to the project-standard node:test + node:assert/strict runner. All 39 tests pass.

Upgrade Guidance

  1. Upgrade to v1.3.7 and restart.
  2. The visual protocol builder is available at /protocols/builder/:templateId. Navigate from the Protocols page via the "Visual Builder" button.
  3. A2A protocol support is enabled automatically. To publish your agents for A2A discovery, ensure an access key is configured in storage auth.
  4. New CLI commands available under swarmclaw a2a — run swarmclaw a2a --help to see the full list.
  5. To use a2a_delegate phases in protocol templates, configure a2aDelegateConfig with either targetUrl (direct URL) or targetExternalAgentId (registered external agent).

v1.3.6 (April 3, 2026)

Knowledge hygiene visibility fix and release gate hardening.

Highlights

  • Knowledge hygiene visibility fix: exact-duplicate archival now only applies when sources share the same visibility and origin fingerprint. Same-content global and agent-scoped sources no longer collapse into a single archived record, so global knowledge stays available to unrelated agents.
  • Release gate hardening: the default test matrix now includes the v1.3.5 grounding/knowledge/runtime suites, and both CI and tag releases run npm test, npm run type-check, and npm run build:ci before publishing.

Upgrade Guidance

  1. Upgrade to v1.3.6 and restart.
  2. No migration required. The visibility fix is transparent — previously collapsed sources will be treated independently on next hygiene scan.

v1.3.5 (April 3, 2026)

Knowledge grounding, citation tracking, and full knowledge source lifecycle management.

Highlights

  • Knowledge grounding & citations: agent responses are now grounded against knowledge sources at retrieval time. Citations — with scores, snippets, and match rationale — are persisted on chat messages, protocol events, and run records for full auditability.
  • Knowledge source lifecycle: new source management system supporting manual text, file (30+ formats including code, markup, PDF), and URL sources (HTML auto-parsed). Full lifecycle with create, sync, archive, restore, supersede, and delete operations.
  • Hygiene automation: background scanner detects stale, duplicate, overlapping, and broken knowledge sources. Auto-syncs stale file/URL sources and archives exact duplicates on idle.
  • Redesigned Knowledge page: detail-focused layout with sidebar list, full source inspector (metadata, indexed chunks, sync status), and inline actions. Search/browse toggle, tag filtering, and archive visibility controls.
  • Grounding panel: new reusable citation display component rendered on chat messages, protocol artifacts, and run results — surfaces retrieval query, hit scores, snippets, and source links.
  • 7 new API endpoints: /knowledge/hygiene (GET/POST), /knowledge/sources/:id/archive, /restore, /supersede, /sync for full source lifecycle management via CLI and API.
  • Protocol citation propagation: structured protocol runs now capture and persist citations on participant responses and emitted artifacts.
  • Memory DB enhancements: knowledge chunks are deduplicated per-source with scoped content hashing, preventing incorrect cross-source deduplication.
  • Dreaming (idle-time memory consolidation): when the system is idle, agents consolidate recent memories into structured insights. Two-tier architecture: Tier 1 performs deterministic operations (decay, prune, promote, dedup), while Tier 2 uses the agent's LLM to reflect on memories, consolidate overlapping entries, and surface patterns.
  • Per-agent dream configuration: dreaming is opt-in per agent with configurable cooldown interval, decay age, prune threshold, and Tier 2 reflection toggle.
  • Dream cycle audit trail: every dream cycle is tracked with status, trigger, duration, and detailed result statistics. Viewable in the memory UI and via the CLI.
  • 3 new API endpoints: /memory/dream (GET list, POST trigger), /memory/dream/:id (GET cycle details) for dream cycle management.

Upgrade Guidance

  1. Upgrade to v1.3.5 and restart.
  2. No migration required — knowledge_sources is a new storage collection created automatically on first use.
  3. Existing knowledge entries continue to work. The new source management system is additive.
  4. New CLI commands available under swarmclaw knowledge — run swarmclaw knowledge --help to see the full list.
  5. Dreaming is disabled by default. Enable per agent in the agent settings under Advanced > Dreaming.
  6. New CLI commands available: swarmclaw memory dream (list cycles), swarmclaw memory dream-trigger (trigger), swarmclaw memory dream-get (get cycle).

v1.3.4 (April 2, 2026)

Codebase-wide migration from CommonJS require() to ES module imports for Turbopack compatibility.

Highlights

  • Bug fix — CommonJS to ES module imports (#32): converted all CommonJS require() calls across the codebase to ES module imports, fixing "Unknown provider" errors and other potential Turbopack compatibility issues. Affected modules: providers, provider health, subagent swarm, prompt builder, chat finalization, CLI utils, and OpenClaw connectors. Community contribution from @psywolf85.

Upgrade Guidance

  1. Upgrade to v1.3.4 and restart.
  2. If you were seeing "Unknown provider" or "a is not a function" errors with custom providers in local development using Turbopack, this release fixes the root cause.

v1.3.3 (April 1, 2026)

Connector reliability fixes: stale UI status after auto-restart and stale credentials after rotation.

Highlights

  • Bug fix — stale connector status after auto-restart (#31): when a connector auto-restarts via the daemon health monitor, the UI now shows "Starting" instead of a stale "Stopped" or "Error" from the previous crash. A new starting status is used when the connector is enabled but the daemon runtime hasn't reported state yet.
  • Bug fix — stale credentialId after credential rotation (#30): connector sessions that hold a deleted credentialId now fall back to resolving any valid credential matching the session's provider, preventing "Missing credentials" errors after secret rotation.

Upgrade Guidance

  1. Upgrade to v1.3.3 and restart.
  2. No config changes required. Both fixes are transparent — connectors will automatically benefit from the improved status reporting and credential resolution.

v1.3.2 (March 31, 2026)

Custom provider bugfix for standalone builds and new GitHub Copilot CLI provider.

Highlights

  • Custom provider fix for standalone builds: fixed require('@/lib/server/storage') path alias resolution failure that caused custom providers to silently break in standalone/npm-global installs with "a is not a function" errors. All dynamic requires across providers, provider health, subagent swarm, and prompt builder now use relative paths that resolve correctly at runtime.
  • GitHub Copilot CLI provider: new CLI provider wrapping the copilot binary with JSONL streaming (--output-format=json), session continuity (--resume), system prompt injection via AGENTS.override.md, and multi-model support (Claude, GPT, Gemini models via GitHub Copilot subscription).

Upgrade Guidance

  1. Upgrade to v1.3.2 and restart.
  2. If you were affected by custom providers not loading in standalone builds (#29), this release fixes the root cause. No workarounds needed.
  3. To use the new Copilot CLI provider, install GitHub Copilot CLI (brew install copilot-cli or npm i -g @github/copilot) and authenticate with copilot /login or gh auth login. Requires an active GitHub Copilot subscription.

v1.3.1 (March 30, 2026)

SwarmDock SDK v0.2.3 upgrade with typed error handling, escrow state tracking, task invitation support, and SDK type alignment.

Highlights

  • SwarmDock SDK v0.2.3: upgraded marketplace integration with typed error handling, escrow state tracking, task invitation support for private tasks, and required example prompts for skill registration.
  • SDK error resilience: registration now gracefully handles already-registered agents (409 Conflict) by falling back to authentication; heartbeat catches expired tokens and re-authenticates automatically.
  • Escrow event tracking: new escrow.releasing, escrow.refunding, escrow.release_failed, and escrow.refund_failed SSE events are logged as activity entries, with failure events surfaced as incidents.
  • Private task invitations: when a SwarmDock task invites this agent directly, auto-discovery now evaluates it alongside public task.created events.
  • SDK type imports: replaced inlined SwarmDock type stubs with proper imports from @swarmdock/shared, eliminating type drift between SwarmClaw and the SDK.

Upgrade Guidance

  1. Upgrade to v1.3.1 and restart.
  2. If you use SwarmDock, the SDK upgrade is transparent — no config changes required. Skill registration now provides example prompts automatically, which is required by SwarmDock API v0.2.3.
  3. If your SwarmDock agent was previously registered, the connector now handles re-registration gracefully by authenticating with the existing identity instead of failing.

v1.3.0 (March 29, 2026)

SwarmDock SDK v0.2.0 upgrade, comprehensive audit logging, push-based cost rollups, hierarchical goal system, and extended approval workflows.

Highlights

  • SwarmDock SDK v0.2.0: upgraded marketplace integration to handle the new task lifecycle — review and disputed states are now tracked on board tasks, skill registration supports inputModes/outputModes, task submission accepts notes, and connector config supports paymentPrivateKey for on-chain payment signing.
  • Comprehensive audit logging: activity log now covers approval decisions, settings changes, budget modifications, and credential operations, with SQL-indexed paginated queries for efficient retrieval.
  • Push-based cost rollups: agent spend fields update atomically on every usage event, with automatic budget warning and exceeded activity entries. Replaces the pull-based approach that scanned all usage records on every budget check.
  • Goal hierarchy: new goals system with organization → team → project → agent → task levels, parent-child chains, and automatic "why chain" injection into agent execution briefs. Full CRUD API and CLI support.
  • Extended approval workflows: new agent_create, budget_change, and delegation_enable approval categories with configurable policies. When enabled, agent creation returns a pending approval instead of creating the agent directly.
  • Shared validation schemas: Zod schemas are now safe for client-side import, enabling form-level pre-validation without pulling in server dependencies.

Upgrade Guidance

  1. Upgrade to v1.3.0 and restart.
  2. If you use SwarmDock, the SDK upgrade is transparent — no config changes required. New review and disputed task states are handled automatically by the connector.
  3. If you interact with the SwarmDock API directly and use rating scores, note they are now 0-1 floats (not 1-5 integers) in SDK v0.2.0.
  4. New approval policies (requireApprovalForAgentCreate, requireApprovalForBudgetChange, requireApprovalForDelegationEnable) default to false — opt in via Settings if you want governance gates.
  5. The goals system is additive — existing tasks and agents continue to work without goals. Add goals via the API (/api/goals) or CLI (swarmclaw goals create) when ready.

v1.2.9 (March 29, 2026)

SwarmDock marketplace integration, portable config transfer, wallet simplification, and a cleanup pass that removes older interface surfaces in favor of tasks, structured sessions, autonomy, connectors, and projects.

Highlights

  • SwarmDock marketplace connector: SwarmClaw agents can now register on SwarmDock, auto-bid on matching work, receive assignments as board tasks, and submit results back through the connector runtime.
  • Secure SwarmDock credentials: Ed25519 identity keys now live in encrypted credentials instead of connector config, legacy plaintext keys auto-migrate on load, connector responses redact secrets, and failed result submissions surface properly for retry/recovery.
  • Portable config transfer: portability import/export now moves agents, skills, and schedules between installs, with validation that rejects malformed manifests cleanly.
  • Wallet surface simplification: wallet management now centers on safe Base-linked agent wallets with stricter validation for missing agents and invalid addresses, replacing the older action-heavy wallet route surface.
  • Interface cleanup: the shipped UI now centers work around tasks, structured sessions, autonomy, connectors, and projects, with the old Missions, Canvas, and legacy wallet action screens removed from the active interface.

Upgrade Guidance

  1. Upgrade to v1.2.9 and restart.
  2. If you use SwarmDock, re-check connector credentials and store the Ed25519 key as a SwarmClaw credential instead of plain config.
  3. If you previously depended on Missions, Canvas, or the old wallet action routes, move those workflows onto tasks, structured sessions, and the simplified wallet management surface.
  4. If you import/export workspace state, use the new portability flow and expect malformed manifests to return validation errors instead of partial imports.

v1.2.8 (March 25, 2026)

Cross-platform compatibility fixes for Linux/WSL, gateway lifecycle improvements, and four community-contributed bug fixes.

Highlights

  • Linux/WSL compatibility: subprocess spawning now uses $SHELL instead of hardcoded /bin/zsh, fixing ENOENT errors on Linux and WSL systems.
  • nvm compatibility: stripped npm_config_prefix from subprocess environment, fixing node PATH resolution for nvm users.
  • Dev-mode daemon fix: prevented duplicate daemon spawn failure when daemon runs in-process during development.
  • Gateway sheet stability: fixed infinite render loop when opening a gateway profile with a disconnected gateway.
  • Auto-provision gateway on deploy: "Deploy on this host" now automatically creates a gateway profile and credential, so agents can connect immediately without a manual save step.
  • Credential cleanup on gateway delete: deleting a gateway profile now cleans up its associated credential when no other gateway or agent references it.

Upgrade Guidance

  1. Upgrade to v1.2.8 and restart.
  2. No breaking changes. Linux/WSL users who previously couldn't run subprocesses should now work out of the box.
  3. Existing gateway profiles and credentials are unaffected — the new auto-provision only applies to fresh local deploys.

v1.2.7 (March 22, 2026)

Consolidates 50+ agent tools into 6 action-based primitives, decomposes the type system into focused domain modules, and introduces lightweight direct chat for faster conversational turns.

Highlights

  • Tool primitives: consolidated 50+ narrow tools into 6 action-based primitives — execute, files, memory, platform, skills, and credential-env — with skill teach files so agents learn usage patterns on demand.
  • Type system decomposition: split the monolithic 3500-line types file into 16 focused domain modules with full backward-compatible re-exports.
  • Lightweight direct chat: message classifier detects simple conversational turns and fast-paths them with minimal prompt assembly and reduced thinking budget.
  • Prompt mode resolution: root sessions receive full system prompts while delegated and lightweight turns get streamlined minimal prompts.
  • Execute tool config UI: inspector panel now has separate configuration sections for the execute tool (sandbox/host backend, network, timeout) and browser sandbox.
  • Chat store pagination: proper messageStartIndex tracking, improved queued-message deduplication, and active-turn transcript merging.
  • Per-session WebSocket notifications: message mutations now broadcast to session-specific topics for more targeted UI updates.
  • Tool capability policy refactoring: consolidated matching logic with extension ID canonicalization for reliable policy resolution.
  • Bug fix — custom provider resolution: fixed "Unknown provider" error when using custom providers in chat execution.

Upgrade Guidance

  1. Upgrade to v1.2.7 and restart.
  2. No breaking changes — tool primitives are additive and existing tool names continue to work through the alias layer. The type system decomposition maintains full backward compatibility via re-exports from src/types/index.ts.
  3. Storage normalization handles the new executeConfig agent field automatically on load.

v1.2.5 (March 22, 2026)

Introduces structured working memory for agents, execution briefing documents, and persistent run context — plus two bug fixes for fresh installs and custom providers.

Highlights

  • Working memory hierarchy: agents maintain structured working state (facts, plans, decisions, blockers, evidence) that persists across turns and survives context compaction.
  • Execution brief: each chat turn receives a concise briefing document synthesized from working state for faster, more focused agent reasoning.
  • RunContext: persistent structured context object tracks session lineage, delegation chain, and accumulated working memory across run lifecycle.
  • Unified message flow: consolidated message handling and execution routing into a single coherent pipeline.
  • Delegation advisory: new advisory layer for structured capability analysis during delegation decisions.
  • Real-time session sync: session create, update, and delete events now push over WebSocket, replacing poll-only refresh for the chat list.
  • HMR resilience: module-level state in the WebSocket client, fallback polling, and API request dedup now survives Next.js hot-module reloads.
  • Type safety sweep: eliminated 16 any types across 7 API routes with proper narrowing and error guards.
  • Bug fix — fresh install crash: replaced crypto.randomUUID() with browser-safe ID generation, fixing setup wizard failures with Ollama and other providers.
  • Bug fix — custom provider validation: connection-test endpoint now recognizes custom providers from storage.
  • Bug fix — session cwd normalization: updateChatSession now expands ~ paths consistently with session creation.

Upgrade Guidance

  1. Upgrade to v1.2.5 and restart.
  2. No breaking changes — working memory and execution brief are additive features. Existing sessions will initialize empty working state on first run.
  3. Storage normalization handles new fields automatically on load.

v1.2.2 (March 17, 2026)

Major internal architecture refactor — modularized five large server modules into focused submodules with a repository pattern for data access, plus 8 new skills and streaming UI improvements.

Highlights

  • Modular chat execution pipeline: decomposed the monolithic chat-execution module into 6 focused stages for maintainability and testability.
  • Repository pattern adoption: extracted ~15 repository modules from storage.ts, giving each domain its own data-access layer.
  • Runtime state encapsulation: moved process-local state from storage into runtime-state.ts with proper HMR singleton usage.
  • Streaming state improvements: stable assistant render IDs, better live-row display, smoother streaming phase transitions.
  • 8 new skills: coding-agent, github, nano-banana-pro, nano-pdf, openai-image-gen, resourceful-problem-solving, skill-creator, summarize.
  • Lint baseline improvements: reduced violations from 414 to 396.

Upgrade Guidance

  1. Upgrade to v1.2.2 and restart.
  2. No breaking changes — all modifications are internal refactoring. External APIs and configuration are unchanged.
  3. Existing data/ directory content migrates automatically on first load.

v1.2.1 (March 17, 2026)

This release introduces a system health endpoint for external monitoring, memory abstracts for efficient recall, structured logging across the codebase, and daemon housekeeping improvements.

Highlights

  • System health endpoint: new /api/system/status route returns lightweight health summary for external monitoring and uptime checks.
  • Memory abstracts: ~100-token LLM summaries attached to memories for efficient proactive recall without loading full content.
  • Structured logging: migrated 40+ files from console.* to the log module for consistent, level-aware logging.
  • Lint baseline improvements: reduced lint violations from 440 to 414 (-26).
  • Daemon housekeeping: pruning for subagent processes, orchestrator state, connector sessions, and usage records.
  • SKILL.md v2.0.0: comprehensive CLI documentation covering 40+ command groups.
  • New dev scripts: type-check, test, and format scripts in package.json.

Upgrade Guidance

  1. Upgrade to v1.2.1 and restart.
  2. No breaking changes — the structured logging migration is internal and does not affect external APIs or configuration.
  3. If you use external health monitoring, point it at /api/system/status for a lightweight health check.

v1.1.9 (March 17, 2026)

This release focuses on performance, reliability, and build stability with async file I/O in providers, reduced polling frequency, memory graph rendering improvements, and a Docker build fix.

Highlights

  • Docker build stability: limit Next.js page data workers to 1 in build mode to prevent SQLITE_BUSY contention.
  • Async file I/O in providers: Anthropic and OpenAI providers now use fs.promises for non-blocking attachment reads.
  • Anthropic request timeout: 60s timeout on Anthropic API requests prevents indefinite hangs.
  • Graceful crash handling: instrumentation now catches EPIPE and suppresses expected LangGraph unhandled rejections.
  • Log tail optimization: /api/logs reads only the last 256 KB instead of loading the entire log file.
  • Thread session fast path: ensureAgentThreadSession uses single-row lookup instead of full table scan when threadSessionId is set.
  • Memory graph performance: force-directed simulation writes to DOM imperatively instead of re-rendering React state per frame; stops when kinetic energy settles.
  • Reduced polling frequency: chat area WS polling intervals relaxed (messages/runs 2s to 10s, browser 5s to 30s) to lower server load.
  • Chat list indexing: connector lookup indexed by agentId for O(1) instead of O(n) per session filter.
  • Sidebar skill badges: skill draft count displayed as a badge on the Skills nav item.
  • Route loading states: added loading.tsx skeleton pages for activity, home, logs, memory, and tasks routes.
  • Command palette cleanup: fixed missing setOpen dependencies and removed unused props.
  • Playwright proxy hardening: improved stdio pipe handling for dev server restarts.
  • Scheduler and run ledger fixes: improved scheduler reliability and run ledger state tracking.

Upgrade Guidance

  1. Upgrade to v1.1.9 and restart.
  2. No breaking changes — this is a performance and reliability release.

v1.1.8 (March 17, 2026)

This release adds agent live status, learned skills lifecycle management, the Gemini CLI provider, peer/team session tools, org chart enhancements, and numerous chat execution and reliability improvements.

Highlights

  • Agent live status: real-time /agents/:id/status endpoint exposes goal, progress, and plan steps; org chart detail panel consumes it via useAgentLiveStatus hook.
  • Learned skills lifecycle: promote, dismiss, and delete learned skills via /learned-skills/:id; /skill-review-counts provides badge counts for the skills workspace.
  • Gemini CLI provider: Google Gemini CLI joins the provider roster alongside claude-cli and codex-cli, with shared CLI utilities factored into cli-utils.ts.
  • Peer query & team context tools: new session tools let agents query peers and access team context during conversations.
  • Team resolution: dedicated team-resolution.ts module resolves agent teams for delegation routing.
  • Org chart activity feed: timeline feed component and delegation bubble visualization for the org chart view.
  • Skills workspace improvements: expanded skills management UI with review-ready badges.
  • Cost trend chart: new dashboard component for cost visualization.
  • Streaming fix: text no longer gets stuck on the thinking indicator.
  • Delegation normalization: delegationEnabled now derived from agent role, removed from starter kit templates.
  • Chat execution refinements: improved continuation limits, post-stream finalization, and stream continuation.
  • Memory and storage improvements: memory tier management, consolidation enhancements, and storage cache updates.
  • WebSocket and provider health: improved WS client handling, delegation edge state, and provider health monitoring.

Upgrade Guidance

  1. Upgrade to v1.1.8 and restart.
  2. delegationEnabled is now derived from agent role — the field is no longer set in starter kits.
  3. New CLI commands: learned-skills promote/dismiss/delete, learned-skills review-counts, agents status.

v1.1.7 (March 17, 2026)

This release adds project management views, delegation visualization, credential self-service for agents, and significant streaming and autonomy improvements.

Highlights

  • Projects page redesign: tabbed navigation (Overview, Work, Operations, Activity) with health grid, sortable task list, and timeline feed.
  • Delegation visualization: live org chart edges show active delegations with status, direction, and message popover on click.
  • Credential self-service: agents can check whether a credential exists and request missing ones from humans with structured messages, signup URLs, and durable wait.
  • Main loop state persistence: autonomous operation state now survives server restarts via on-disk persistence.
  • Internal metadata stripping: classification JSON and loop detection messages no longer leak into streamed agent output.
  • Response completeness evaluator: LLM-based detection of incomplete agent responses triggers continuation nudges.
  • Coordinator delegation nudging: coordinators that make 3+ direct tool calls get prompted to delegate to workers.
  • Inspector panel overhaul: new dashboard/config/files tabs absorb model switcher and workspace controls from chat header.
  • Streaming phase indicators: agent chat list shows queued, tool-in-use, responding, and reconnecting states.
  • Shell safety: agents can no longer kill SwarmClaw's own process or port.
  • Worker-only providers: CLI-backed providers (claude-cli, codex-cli, etc.) properly restricted from coordinator/heartbeat roles.
  • HTTP tool removed: the built-in HTTP session tool was removed from the standard toolkit.

Upgrade Guidance

  1. Upgrade SwarmClaw to v1.1.7 and restart.
  2. The Dashboard API (/api/dashboard) has been removed — use the new Projects page tabs for overview data.
  3. The built-in HTTP session tool has been removed. If agents relied on it, use the web tool or an extension instead.
  4. CLI users: the dashboard CLI command has been replaced by delegation-jobs.

v1.1.6 (March 16, 2026)

This release adds visual org chart management, a dashboard metrics API, overhauled subagent lifecycle, and a significant chat execution refactor alongside many smaller improvements across cost tracking, task routing, and store reliability.

Highlights

  • Org chart view: visual agent hierarchy with drag-and-drop reparenting, team grouping with color coding, and context-menu actions for managing agent relationships directly from the canvas.
  • Dashboard API: server-side metrics endpoint with cost tracking, usage aggregation, and budget warning thresholds for operator visibility.
  • Subagent lifecycle overhaul: state-machine lineage tracking, delegationDepth limits, auto-announce on spawn, and cleaner parent-child session management replace the previous ad-hoc subagent wiring.
  • Chat execution refactor: composable prompt sections replace monolithic prompt building, the continuation evaluator is consolidated, and stream-continuation logic is extracted into its own module for maintainability.
  • Per-agent cost attribution: token costs are tracked and attributed per agent, enabling budget controls and cost reporting at the agent level.
  • Capability-based task routing: tasks can match agents by declared capabilities, not just explicit assignment, enabling smarter automatic dispatch.
  • Bulk agent operations: new /api/agents/bulk endpoint for batch updates across multiple agents in a single request.
  • Document revisions API: version history for documents with /api/documents/[id]/revisions endpoint.
  • Store loader consolidation: async loaders now use createLoader() and setIfChanged to eliminate redundant re-renders from polling.
  • Safe body parsing utility: shared safeParseBody() replaces scattered await req.json() try/catch blocks across API routes.

Upgrade Guidance

  1. Upgrade SwarmClaw to v1.1.6 and restart.
  2. The new Org Chart view is available from the sidebar — open it to visualize and manage your agent hierarchy.
  3. If you use subagents or delegation, the new lineage tracking is automatic. Existing delegated sessions will continue to work; new ones benefit from depth limits and auto-announce.
  4. Store polling is now deduplicated — if you had custom polling intervals in extensions, verify they still behave as expected with the new setIfChanged guards.

v1.1.4 (March 16, 2026)

This release brings orchestrator agents back as a first-class operator tool while making the daemon/runtime much more resilient to restarts, agent outages, and provider failures.

Highlights

  • Orchestrator agents are back as a real agent mode: eligible agents can now run scheduled orchestrator wake cycles with their own mission, governance policy, wake interval, and cycle cap. The setup wizard, agent editor, and Autonomy page all understand the new mode.
  • Autonomy desk + chatroom sessions are clearer: the Autonomy page now shows active orchestrators directly, and the Chatrooms surface splits persistent rooms from temporary session/live rooms so orchestrator or structured-session discussions stay inspectable without cluttering the normal room list.
  • Runtime durability and recovery improved substantially: the task queue now supports configurable parallel execution, stuck-task idle timeout detection, orphaned running-task recovery on startup, restart-safe swarm/provider-health persistence, and deferred-task promotion when blocked agents recover.
  • Failover and safety decisions got sharper: provider errors are classified for smarter routing, agent budget limits can block task execution before it starts, and supervisor auto-actions can surface executable notifications instead of passive state only.

Upgrade Guidance

  1. Upgrade SwarmClaw to v1.1.4 and restart.
  2. If you want an operator agent, enable Orchestrator Mode on an eligible agent, then set its mission, wake interval, and governance policy.
  3. Use the Sessions view in Chatrooms for temporary session/live rooms created by orchestrators or structured runs.
  4. CLI-backed and OpenClaw-routed agents are not eligible for orchestrator mode; use a normal provider-backed agent when you want autonomous orchestration behavior.

v1.1.3 (March 16, 2026)

This patch repaired release-line integrity after v1.1.2 by fixing build validation and hardening storage writes so tests and tooling could not accidentally wipe live data.

Highlights

  • build:ci repair: the langgraph checkpoint duplicate-column path that could crash CI/build validation was fixed, restoring a clean release build path.
  • Safer storage writes: credentials and agents now use upsert-only save behavior, and a collection safety guard blocks accidental bulk-delete paths.
  • Tooling cleanup: the remaining plugin-to-extension rename residue in scripts and tests was cleaned up so release tooling matches the current extensions model.

Upgrade Guidance

  1. Upgrade SwarmClaw to v1.1.3 or later and restart.
  2. If you rely on build:ci, packaged install validation, or test tooling against a live workspace, prefer this patch line or newer because the release integrity fixes are included there.

v1.1.2 (March 15, 2026)

This release deepens Structured Sessions into a broader orchestration layer while tightening provider routing and chat/runtime correctness around the live issues that surfaced after v1.1.1.

Highlights

  • Structured Sessions now cover richer orchestration paths: the same ProtocolRun runtime now supports dependency-aware step graphs, reusable step outputs, and a broader advanced execution model without reviving a separate orchestration subsystem.
  • Explicit Ollama local/cloud routing: Ollama mode is now an explicit stored choice on agents and chats. Local Ollama no longer silently flips to cloud because of credentials or model naming, and cloud routing stays intentional.
  • Chat and runtime hardening: inline media streaming, stale streaming-row cleanup, exact-output handling, and message-list rendering regressions were tightened again through live use and regression coverage.
  • Nebius and DeepInfra as built-in providers: both are now first-class providers with setup wizard entries, model discovery, and pre-configured defaults — no more custom provider workaround needed.
  • stream_options resilience for OpenAI-compatible providers: the streaming handler now automatically retries without stream_options if a provider rejects it with a 400 error, fixing connectivity for strict endpoints.

Upgrade Guidance

  1. Upgrade SwarmClaw to v1.1.2 and restart.
  2. If you use Ollama, open the agent or chat config once and confirm the intended Local or Cloud mode is selected explicitly.
  3. If you use Structured Sessions heavily, expect more advanced step definitions to stay on the same ProtocolRun runtime rather than moving to a separate workflow engine.
  4. If you previously added Nebius or DeepInfra as custom providers, you can switch to the built-in entries and remove the custom ones.

v1.1.1 (March 15, 2026)

This release turns Structured Sessions into a core, contextual part of the product. Bounded runs can now be launched from the work you are already doing, watched through temporary hidden live rooms, and managed through a cleaner Sessions surface while the same runtime keeps hardening against live-agent edge cases.

Highlights

  • Contextual Structured Sessions: start bounded runs from direct chats, chatrooms, missions, tasks, schedules, or the Sessions page instead of treating orchestration like a separate setup mode. Chatrooms now also support /breakout for spinning a live discussion into a focused bounded run without posting the command into the room.
  • Temporary live rooms: active Structured Sessions can expose a hidden linked live room you can watch directly, while keeping transcript/control state out of the normal chatroom list.
  • ProtocolRun engine maturity: branching, repeat loops, parallel branches, and explicit joins now run on the same durable session engine instead of introducing a second orchestration subsystem.
  • Live-agent runtime hardening: exact-output contracts, direct memory preflight, same-channel delivery rendering, inline media, and grounded repo/runtime inspection were tightened through live validation before release.

Upgrade Guidance

  1. Upgrade SwarmClaw to v1.1.1 and restart.
  2. Use Start Structured Session from a chat, chatroom, mission, or task for the normal launch flow, or /breakout inside a chatroom when you want a fast room-based breakout.
  3. Use the Sessions page for inspection, retries, archives, live-room access, and advanced template authoring.
  4. If a run creates a live room, open it from the run detail or parent context instead of looking for it in the normal chatroom list.

v1.1.0 (March 15, 2026)

This release turns SwarmClaw’s autonomy model into a more durable operator runtime: missions become first-class tracked objectives, runtime safety gets its own control surface, queued follow-up work moves to the backend, and day-to-day agent chat behavior is quieter and easier to follow.

Highlights

  • Mission controller + Missions surface: SwarmClaw now tracks durable multi-step work as missions with status, phase, linked tasks, queued turns, recent runs, child missions, and an event timeline in the new Missions UI.
  • Autonomy safety desk: the new Autonomy Control page exposes estop state, runtime incidents, resume policy, and durable run replay so operators can inspect and recover background execution more safely.
  • Durable queued follow-ups: direct chat and connector follow-up turns now use a backend queue, which means queued work survives reloads, drains in order, and stays attached to the right mission/session context.
  • Chat execution hardening: memory writes, streamed handoff, inline media rendering, tool-policy fallback handling, and follow-up completion behavior were all tightened to reduce noisy or misleading replies.
  • Mission human-loop policy: generic “wait for the user’s next instruction” mission pauses are now optional. The new mission human-loop setting is off by default for new users, so small completed tasks do not linger as open waiting missions unless you want that behavior.

Upgrade Guidance

  1. Upgrade SwarmClaw to v1.1.0 and restart.
  2. Review the new Missions and Autonomy Control surfaces if you use schedules, delegation, or longer-running agent work.
  3. If you prefer missions to remain open while waiting for a human follow-up, enable Mission human loop in Settings → Runtime & Loop Controls or from the Missions page itself.
  4. If you operate direct-chat or connector-heavy workflows, expect queued follow-up turns to behave more durably across refreshes and reconnects.

v1.0.9 (March 14, 2026)

This patch focuses on making connector conversations sound more natural, reducing redundant chat noise after tool work, and keeping connector/task delivery state closer to what users actually saw.

Highlights

  • Quieter connector and chat turns: hidden control text and tool-only chatter are stripped more aggressively from visible replies, and successful tool flows stop re-surfacing connector delivery output as if the assistant wrote it manually.
  • Sender-aware inbox replies: direct connector chats can now honor stored sender display names and reply-medium preferences from memory, including voice-note-first replies when the connector can send audio and the agent has an ElevenLabs voice configured.
  • Cleaner delivery markers and followups: the connector manager now persists what was actually sent on the current channel, and task-origin followups resolve attachment/media paths more reliably before sending.
  • Memory-write followthrough hardening: successful memory store/update tool runs terminate more cleanly, which cuts down on empty post-tool loops while preserving a natural acknowledgement turn when one is needed.

Upgrade Guidance

  1. Upgrade SwarmClaw to v1.0.9 and restart.
  2. If you use inbox or DM workflows, expect fewer duplicated or tool-flavored replies in direct connector chats.
  3. If you want voice-note-first direct replies, verify the connector supports binary media and the replying agent has an ElevenLabs voice ID configured.

v1.0.8 (March 14, 2026)

This release improves learned-skill hardening, direct chat stability, and OpenClaw/Ollama route recovery.

Highlights

  • Learned skills and self-healing: SwarmClaw now keeps agent-scoped learned skills and shadow revisions so repeated successes and repeated external integration failures can harden into reusable local behavior without silently mutating the shared skill library.
  • Direct chat stability: chat-origin runs now stop after the visible answer instead of enqueueing hidden follow-up loops, leaked control tokens such as NO_MESSAGE stay out of the user transcript, and repeated internal reruns no longer replace the reply the user already saw.
  • OpenClaw and Ollama route hardening: agent thread sessions now repair stale credential and endpoint resolution more aggressively, including Ollama Cloud vs local endpoint selection and OpenClaw gateway fallback behavior.
  • Operator UX fixes: new agents appear in the list immediately, gateway-disconnected chat CTAs now route to the current agent's settings instead of global settings, setup-wizard flicker after access-key login is gone, and screenshot-heavy tool runs no longer render duplicate previews in chat.

Upgrade Guidance

  1. Upgrade SwarmClaw to v1.0.8 and restart.
  2. Learned skills and self-healing remain agent-scoped until you review or promote them, so re-check your skill workflow if you expected shared-library mutation.
  3. If you rely on OpenClaw or Ollama routing, run a quick gateway/model smoke check after upgrading because stale endpoint resolution is handled more aggressively now.

v1.0.7 (March 13, 2026)

This release rolls up the changes shipped after v1.0.6 into one cleaner product line: connector conversations are isolated, schedules behave like an operations system, delegation replaces orchestration, and the old plugin compatibility layer is gone.

Highlights

  • Dedicated Inbox for external connector conversations: external connector chats now live in a first-class Inbox surface instead of the main chat list. Owner/self-chat can remain on the main agent thread, while other senders are isolated into direct connector sessions.
  • Connector access and ownership controls: Inbox and connector sheets now expose DM policy, allow/deny lists, owner override, pairing approvals, and sender management in one place.
  • Strict connector memory isolation: external connector sessions now default to session-scoped memory so different senders cannot leak context into one another or back into the owner’s main chat.
  • WhatsApp delivery hardening: duplicate direct replies, false “sent” confirmations, and same-turn duplicate voice-note/text sends were hardened substantially. Sender avatars/profile photos are now surfaced when available.
  • Schedule console + cancellation cascade: Schedules now use Live, Archived, and Runs views. Archiving a schedule stops future runs, cancels linked queued/running work when possible, and preserves history for restore/purge.
  • Explicit schedule routing: schedule and follow-up routing now stays bound to the originating session/connector context instead of guessing from the last active chat.
  • Cancelled is a real task outcome: schedule-linked task cancellation is now distinct from failure, which prevents misleading retries and stale late follow-up chatter.
  • Durable human-loop cleanup: repeated ask_human requests and mailbox waits are deduped, and normal chat replies can resolve durable waits instead of leaving zombie watches behind.
  • Delegation replaces orchestration: the old orchestrator/orchestration-engine product model is gone. Agents either delegate or they do not. Background AI helper work now uses the same session/agent config instead of a separate global orchestration model.
  • Simpler agent and connector sheets: key setup fields stay in the main flow, advanced controls are collapsed by default, and new agents now default heartbeat, proactive recall, and conversation skill drafting to on.
  • Tools + extensions cutover: built-in capabilities are native tools, external add-ons are extensions, and persisted agent/session records now use canonical tools + extensions fields only.

Upgrade Guidance

  1. Upgrade SwarmClaw to v1.0.7 and restart.
  2. Expect the old Plugins surface and /api/plugins/* terminology to be replaced by Extensions and /api/extensions/*.
  3. Recheck any docs, habits, or internal runbooks that still refer to orchestrators or an orchestration engine. The correct model is now delegation.
  4. If you use connector-heavy or schedule-heavy workflows, review the new Inbox and Schedules surfaces because they now reflect the real execution model more accurately than before.

v1.0.3 (March 12, 2026)

This release hardens the published npm package path so fresh global and local installs can build and launch reliably without trying to compile the app from inside node_modules.

Highlights

  • Registry installs now build from an external workspace: when the published package needs a standalone bundle, SwarmClaw now copies the package into <swarmclaw-home>/builds/package-<version> and builds there while reusing the installed dependency tree. This avoids the Next.js module-resolution and build restrictions you hit when compiling directly from node_modules.
  • Published package includes build-critical dependencies: fresh npm installs now have the TypeScript and CSS build dependencies needed for a manual production build or first-run standalone build from the registry package.
  • Partial installs no longer warn on missing sandbox helper scripts: postinstall now skips sandbox browser setup cleanly when the helper script is not present, which keeps Docker and partial-install logs quieter.

Upgrade Guidance

  1. Upgrade SwarmClaw to v1.0.3 and restart the app after the update completes.
  2. For global installs, use swarmclaw update or your global package manager, then restart the local server.
  3. For local project installs, update the dependency in the project and rerun npx swarmclaw (or your package manager's exec command). Runtime state still defaults to <project>/.swarmclaw unless you set SWARMCLAW_HOME.
  4. On the first launch after upgrading, allow extra time if SwarmClaw needs to build the standalone bundle locally under <swarmclaw-home>/builds/package-<version> before starting.

v1.0.2 (March 12, 2026)

This release cleans up the packaged npm install story, makes local installs self-contained by default, and exposes a clearer top-level CLI surface.

Highlights

  • Smaller npm package, local standalone build when needed: the published registry package no longer ships the prebuilt Next.js standalone output. Instead, SwarmClaw builds the standalone bundle locally on first run when it is missing, which keeps npm publishes small enough to ship reliably again.
  • Install-aware state directories: global installs continue to use ~/.swarmclaw, while local project installs now default to <project>/.swarmclaw. SWARMCLAW_HOME still overrides both.
  • Cleaner root CLI commands: the packaged CLI now supports swarmclaw help [command], run, start, stop, status, doctor, update, and version, alongside --version / -v.
  • Registry and git installs update through the same CLI entrypoint: swarmclaw update now maps cleanly to either the owning package manager for registry installs or the release-tag/git flow for source checkouts.

Upgrade Guidance

  1. Upgrade SwarmClaw to v1.0.2 and restart the app after the update completes.
  2. For global installs, use swarmclaw update or your global package manager, then restart the local server.
  3. For local project installs, update the dependency in the project and rerun npx swarmclaw (or your package manager's exec command). Expect runtime state under <project>/.swarmclaw unless you set SWARMCLAW_HOME.
  4. On the first launch after upgrading, allow extra time if SwarmClaw needs to build the standalone bundle locally before starting.

v0.9.6 (March 12, 2026)

This release adds a global wallet-approval override and hardens long-running task continuation so agents do not stall after an intent-only progress reply.

Highlights

  • Global wallet approval override: Settings now expose a wallet-approval switch that can disable approval gates globally. Per-wallet approval toggles remain stored, but they are ignored while the global override is off.
  • Wallet send path respects the global setting: wallet send flows now check the global approval setting before creating pending approvals, so turning approvals off actually bypasses those gates instead of only changing UI.
  • Execution kickoff continuation: bounded live execution tasks that stop at a preamble like "let me try..." now get one immediate bounded continuation instead of waiting for the next user message.
  • Chat-origin progress followups: structured progress replies from normal chat turns can now queue one bounded main-loop followup, so longer-running work can continue without requiring a manual "how did that go?" prompt.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.9.6 and restart.
  2. If you want wallet sends to execute without approval prompts, turn off wallet approvals in Settings. Existing wallet-specific approval flags are preserved and start applying again if you re-enable the global switch.
  3. For long-running execution tasks, expect fewer cases where the agent pauses after an intent/progress message and only resumes when the user sends another message.

v0.9.4 (March 11, 2026)

This release hardens connector-bound autonomy and turns skills into a real runtime surface instead of a prompt-only enable list.

Highlights

  • Direct-session connector routing only: outbound connector state is now trusted only on true direct connector sessions, so mirrored agent threads and heartbeats no longer infer send targets from stale connector context.
  • Sender-boundary enforcement before the model runs: contact memories such as "do not reply unless Hal is explicitly addressed" are now checked before reply generation, while connector allowlists remain the source of truth for who is admitted at all.
  • Cleaner heartbeat and task follow-ups: tool-only heartbeats no longer write visible "I sent X" updates into the main agent thread, and connector task completions stop sending redundant generic summaries after the real outbound connector delivery already succeeded.
  • Discovery-by-default skills: ready local skills are now discoverable by default, pinned skills are treated as always-on preferences, and the agent runtime can resolve skills on demand instead of relying on bulk prompt stuffing.
  • Runtime skill surface: agents can now use use_skill (list, select, load, run, explain_blocker) plus manage_skills for recommendation, attachment, and approval-gated installs.
  • Fresh memory reads: the short-lived agent memory cache was disabled again so memory context reads come directly from storage until a complete, freshness-safe cache strategy is ready.
  • Short post-skill replies no longer loop: concise valid answers after use_skill calls no longer trip the generic tool-summary continuation path and get re-run as if they were unfinished.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.9.4 and restart.
  2. Revisit agent skill configuration: pinned skills now mean "always-on", while other ready local skills stay discoverable automatically.
  3. If you use connector DMs or shared channels, re-check your allowlist/pairing policy and any sender-boundary memories. Expect follow-ups and heartbeats to stay scoped to the originating direct connector session instead of mirrored main-thread history.

v0.9.3 (March 11, 2026)

This release adds structured memory categories, automatic contact resolution for connector messages, and privacy-scoped memory injection.

Highlights

  • Memory categories: Agents now store memories into structured categories (identity/preferences, identity/contacts, identity/events, knowledge/instructions, etc.) with clear guidance instead of regex-based content sniffing. 13 categories across identity, knowledge, projects, operations, and working memory.
  • Connector contact resolution: When a message arrives via WhatsApp, Discord, or other connectors, the sender is automatically matched against stored contact memories using normalized phone number and platform ID matching. The agent sees a "Known Sender" block identifying who is messaging.
  • Always-on identity memories: Pinned memories and identity/* category memories are now injected into the agent's context on every message, even short ones like "ok" or "hey" that previously bypassed memory injection entirely.
  • QMD memory scope: Identity memories and contact resolution are automatically hidden in group chat contexts to prevent leaking personal information. Only visible in DM/peer conversations.
  • Memory caching: A 30-second TTL cache for pinned and recent memory lookups reduces database queries on high-frequency connector messages, with immediate invalidation on writes.
  • Response discipline: All agents now receive a "don't end every reply with a question" directive in their system prompt.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.9.3 and restart.
  2. Existing memories remain unchanged — agents will naturally use the new categories for new memories.
  3. Contact resolution works automatically once the agent has stored contact memories with phone numbers or platform IDs in the content.

v0.9.0 (March 11, 2026)

This release aligns local agent execution more closely with OpenClaw's Docker-first sandbox model and hardens autonomous chats around heartbeat scheduling, prompt budgeting, and hot-reload recovery.

Highlights

  • OpenClaw-style local sandbox runtime: shell, browser, and sandbox_exec now share a persistent Docker-first sandbox/runtime model with automatic host fallback when Docker is unavailable.
  • Sandbox defaults and install alignment: new and existing agents default to sandbox-enabled configs, and package-manager installs plus update helpers prepare the sandbox browser runtime automatically when Docker is available.
  • No local Deno requirement: the local sandbox_exec path now runs JavaScript/TypeScript via Node.js only, preferring Docker containers and falling back to host Node when needed.
  • Heartbeat stability improvements: internal heartbeats no longer poison the stored objective, prompt budgeting counts pending input with reserve headroom, and heartbeat runs defer while user work owns the session.
  • Live chat route recovery: hot-reloaded dev servers now backfill new session-run state fields correctly, preventing /api/chats/[id]/chat from failing after runtime changes.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.9.0 and restart the app after the update completes.
  2. If you want container isolation for shell, browser, or sandbox_exec, install or verify Docker Desktop on the host.
  3. If you deploy SwarmClaw inside Docker, local sandbox_exec falls back to host Node inside the app container unless you separately provide Docker access to that container.
  4. Update any runbooks, skills, or setup docs that still mention Deno as a local sandbox prerequisite.

v0.8.9 (March 10, 2026)

This release hardens browser-backed agent runs and makes packaged install and update paths more predictable for operators using the npm package, the global CLI, or the curl installer.

Highlights

  • Browser-tool resilience: browser-backed turns now use longer default timeouts for Playwright actions and navigation, reducing premature aborts on slower sites.
  • Recoverable browser/web failures: a single browser or web timeout no longer has to end the turn. Agents can continue, retry with a corrected target, or switch to another enabled acquisition path before concluding with a blocker.
  • Installer and updater build alignment: the curl installer prebuilt the production bundle, and packaged installs on the v0.8.9 line could use swarmclaw update to rebuild the standalone server immediately after upgrading.
  • Install docs match runtime reality: global npm installs now document swarmclaw (or swarmclaw server) as the packaged-server entrypoint instead of implying that the Next dev server starts automatically.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.8.9 and restart the app after the update completes.
  2. On the v0.8.9 line, npm/global installs launched the packaged server with swarmclaw (or swarmclaw server) and used swarmclaw update to rebuild the standalone bundle during upgrades. Current v1.x npm packages build the standalone bundle locally on first run when it is missing.
  3. If you install from the curl script, npm run start is ready immediately after install because the production bundle is now built during setup.

v0.8.7 (March 9, 2026)

This patch release repairs the published npm lockfile so clean installs and GitHub Actions npm ci runs stay aligned with the shipped v0.8.6 runtime state.

Highlights

  • Clean-install repair: restored the optional nested lockfile records for opusscript and utf-8-validate that some npm runners require during npm ci, eliminating the release-line install failure on fresh environments.
  • No runtime behavior change: the app behavior remains the same as v0.8.6; this patch is about packaging/install integrity, not a new feature rollout.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.8.7 if you install from npm, rely on npm ci, or use the GitHub Actions release workflow.
  2. If you already pulled v0.8.6 source and installed dependencies successfully, no runtime migration is required beyond updating to the fixed patch line.

v0.8.6 (March 9, 2026)

This release focuses on chat-surface consistency, smarter provider model discovery, and lower UI refresh pressure across agent and thread navigation.

Highlights

  • Canonical agent plugin state: agent edits now persist enabled tools on the canonical plugins field, new agents start from a fuller default tool set, and agent-thread sessions stay in sync so inspector and chat-surface counts do not drift after saves.
  • Live provider model hydration: testing or saving provider credentials can now sync live model catalogs into the saved provider model list for discoverable providers, giving operators a more accurate model picker without manual copy or paste.
  • Lower refresh pressure across the UI: session, task, provider, and connector loaders now skip no-op writes, while agent and chat switching paths avoid redundant message reloads that previously caused visible rerender churn.
  • Chat surface polish plus release diagnostics: desktop image attachments now open in the shared preview panel, and the release toolchain now includes a dedicated browser workbench smoke path plus perf tracing hooks for regression checks.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.8.6 and restart the app and docs deployment.
  2. Re-run provider connection tests for any saved key or endpoint where you want the live model catalog persisted into the picker.
  3. If you keep long-lived agent chats pinned, expect tool counts and inspector badges to stay aligned after agent tool edits without requiring a manual dropdown reopen.
  4. If you use browser-based release checks, switch to the updated workbench smoke path and optional perf trace capture for UI regressions.

v0.8.4 (March 8, 2026)

This patch release promotes the latest connector-manager follow-up fix onto the v0.8.4 line without changing the broader v0.8.3 rollout shape.

Highlights

  • Connector manager follow-up fix: the current release commit already includes the latest connector-manager fix, and v0.8.4 exists to publish that corrected runtime state under a fresh patch version.
  • No installer or deployment workflow changes: install snippets, docs alignment, and deployment steps stay the same as v0.8.3; this is a patch-line promotion rather than a new feature rollout.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.8.4 and restart the app and docs deployment.
  2. If you validated the connector-manager behavior locally on top of the v0.8.3 commit, this is the tagged patch release for that same tested state.

v0.8.3 (March 8, 2026)

This release focuses on local runtime stability, lighter chat-index payloads, and clearer daemon ownership of background services.

Highlights

  • Lightweight chat index payloads: /api/chats now serves session summaries instead of full transcript histories, so the shell and home surfaces can load recent chats without pulling every message into the browser.
  • Lower hot-path reload pressure: thread switches, plugin toggles, and header/tooling refresh paths now use narrower session refreshes instead of repeatedly reloading the entire chat corpus.
  • Daemon owns background startup again: scheduler and queue bootstrap now happen through the daemon path instead of being started independently during server instrumentation, so the daemon toggle reflects the real background-service state.
  • Safer local runtime detection: local installs where NODE_ENV is unset now behave like development for auth/proxy fallback logic and daemon autostart defaults, avoiding accidental production-style lockouts during dev.
  • Dev-shell stability cleanup: duplicate request storms were reduced across websocket fallback polling, approvals, plugin UI fetches, and devserver starts, making the app less likely to bog down after repeated chat or agent switches.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.8.3 and restart the app and docs deployment.
  2. Expect chat list and home surfaces to feel lighter on large local installs because recent-chat metadata no longer requires full transcript payloads.
  3. If you use the daemon toggle during local testing, note that scheduler/queue ownership now follows the daemon state more faithfully than before.
  4. If you want daemon autostart in local dev, set SWARMCLAW_DAEMON_AUTOSTART=true; otherwise local boots stay manual.

v0.8.2 (March 8, 2026)

This release gives bounded turns more headroom and tightens the agent routing around memory writes, current-thread recall, and exact output structure.

Highlights

  • Higher bounded-turn headroom: the default agent recursion limit is now 120 instead of 60, giving longer bounded tool runs more room before they stop early.
  • Cleaner memory-write routing: remember-and-confirm turns stay on direct memory writes instead of getting mistaken for same-thread recall, and bundled related facts are now guided toward one canonical memory write.
  • Sharper recall separation: current-thread recall keeps using the active chat context, but direct write requests no longer get diverted into the recall path just because they mention confirmation.
  • Stricter output-shape guidance: deliverable follow-through now preserves exact bullet-count constraints and required titled sections more explicitly when writing files.
  • Memory plugin guidance refresh: the built-in memory tools now tell agents to prefer one canonical store call when a single request contains several related facts.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.8.2 and restart the app and docs deployment.
  2. If you rely on long bounded tool runs, expect fewer early cutoffs before you need to raise runtime settings manually.
  3. If you test remember-and-confirm prompts or multi-fact memory capture, rerun those flows against this release because memory-write routing is now narrower and more deliberate.
  4. If you generate structured docs or plans from prompts with exact section/bullet constraints, recheck those outputs because the follow-through policy now treats those shape requirements as hard constraints.

v0.8.1 (March 8, 2026)

This release tightens operator-facing behavior for notifications, memory routing, local observability, and eval coverage.

Highlights

  • Notification dedupe with activity counts: repeated events with the same dedup key now refresh one notification, keep the unread state intact, and show occurrence counts plus latest activity time in the home view and notification center.
  • Sharper memory vs recall routing: current-thread recall turns now stay inside the active chat instead of reaching for long-term memory or delegation, while direct memory-write requests steer agents straight to narrow memory tools.
  • Cleaner agent/tool discipline: manage_agents and manage_secrets now reject misuse as general memory storage, discovery/delegate flows tell agents to call already-enabled tools directly, and agent creation dedupes same-session duplicates more reliably.
  • Eval + runtime hardening: the regression suite adds blackboard-fit and follow-through coverage, eval turns persist only intentional internal user messages, and OpenClaw-linked thread sessions retain their openclawAgentId mapping.
  • Health/local operator polish: synthetic workbench/comparison sessions no longer spam daemon health alerts, stale-heartbeat alerts dedupe cleanly, HMR refreshes daemon timers, and localhost operators can see platform-owned sessions that stay hidden from remote users.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.8.1 and restart the app and docs deployment.
  2. Expect fewer duplicate notifications after repeated health or approval events; the latest activity time and repeat count now update in place.
  3. If you rely on memory-heavy automations or eval harnesses, re-run them against this release because current-thread recall and direct memory-write routing are now stricter.
  4. Local operators can continue to inspect system/platform sessions on localhost, but those sessions remain hidden from non-local browser views.

v0.8.0 (March 8, 2026)

This release focuses on release hardening for plugins, OpenClaw gateway verification, and outbound voice-note reliability.

Highlights

  • Plugin source/channel clarity: Marketplace installs now preserve both the plugin publisher and the install channel, so the UI can distinguish SwarmForge, SwarmClaw Site, ClawHub, and direct URL installs cleanly.
  • Canonical first-party plugin flow: The hosted registry remains a generated mirror of swarmclawai/swarmforge, making it clearer that SwarmForge is the first-party source of truth and the site is the public distribution mirror.
  • WebSocket-first OpenClaw health: Gateway health checks now treat successful websocket gateway auth as the primary health signal. Missing OpenAI-compatible /v1/chat/completions support is reported as a warning instead of a false hard failure.
  • Voice-note delivery fallback: Outbound ElevenLabs voice-note sends now retry with the built-in fallback voice when a saved default voice is rejected as a paid-only/library voice, keeping WhatsApp delivery working for affected setups.
  • Production start-path fix: npm run start now launches the standalone production server that matches the app's Next.js standalone build output.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.8.0 and restart the app and docs deployment.
  2. Re-run npm run sync:plugin-registry in the site repo before deploying docs so the public marketplace mirror matches swarmforge.
  3. If you use OpenClaw, expect gateway verification to show websocket health even when the optional HTTP /v1 chat endpoint is disabled.
  4. If you send WhatsApp voice notes, keep your ElevenLabs API key configured; older paid-only voice IDs now fall back automatically instead of breaking delivery.

v0.7.8 (March 7, 2026)

This release turns projects and task execution into longer-lived operating context, while making approvals, connectors, and the live chat surface more resilient.

Highlights

  • Project operating system: Projects now store durable objectives, audience, pilot priorities, open objectives, credential requirements, success metrics, and preferred heartbeat prompts/intervals. The project detail view also rolls up related agents, tasks, schedules, and secrets together.
  • Project-aware agents: Active project context now flows into agent runtime prompts and platform tools, so agents can answer from the current project brief and default new work toward that project when appropriate. Project workspaces are provisioned automatically.
  • Durable task continuation: Follow-up tasks can inherit project, agent, working directory, session, and CLI resume state from earlier tasks via continuation-style inputs, and queued tasks now wait for blocker tasks to complete before running.
  • Approval and surface controls: Settings now expose task-management and project-management toggles, while the approvals center adds operator controls for manual approvals, auto-approve categories, and outbound connector-send confirmation.
  • Connector resilience: Enabled connectors now auto-recover after disconnects or dev-server restarts with bounded exponential backoff instead of silently disabling themselves.
  • Chat/runtime polish: Finished streaming replies no longer trigger a full thread reload, Gemini resume handles now surface in delegation banners, and connector/web tools accept more forgiving media and URL inputs while handling cookie banners more reliably.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.7.8 and restart the app and docs deployment.
  2. Revisit Projects to fill in objective, audience, priorities, credential requirements, and heartbeat cadence for any active workstream.
  3. If you rely on durable automation, review Approvals and Settings -> Capability Policy so the new task/project controls and auto-approve categories match your operating model.
  4. If you use connectors, leave them enabled and let the daemon recover them automatically after restart; only intervene if a connector remains exhausted after the bounded retry window.

v0.7.7 (March 7, 2026)

This release turns OpenClaw Smart Deploy into a fuller control-plane workflow instead of a first-run helper only.

Highlights

  • In-house SSH deploy: SwarmClaw can now push the official OpenClaw Docker bundle to your own VPS over SSH and bootstrap it there without relying on outside deployment services.
  • Remote lifecycle controls: Gateway deploy panels now expose remote start, stop, restart, upgrade, backup, restore, and token rotation for SSH-managed OpenClaw hosts.
  • Safer remote defaults: Smart Deploy now carries clearer use-case templates (local-dev, single-vps, private-tailnet, browser-heavy, team-control) and exposure presets (private-lan, tailscale, caddy, nginx, ssh-tunnel) through onboarding and the main app.
  • Onboarding persistence: OpenClaw setup choices made during onboarding now persist into the saved gateway profile, including deployment metadata, notes, tags, and verified connection state.
  • Gateway mobility: Gateway editing now supports import/export JSON flows, while the Providers screen adds fast cloning for existing OpenClaw gateway profiles.
  • Fleet visibility + runtime controls: External Agent Runtimes now show lifecycle state, gateway assignment, version, tags, last-seen data, and direct activate/drain/cordon/restart controls.
  • Routing preferences: Agents and route targets can now prefer OpenClaw gateways by tags or deployment use case instead of only hard-pinning a single saved gateway.
  • CLI parity: The built-in CLI now exposes local restart, SSH deploy, verify, and remote lifecycle commands, including backup restore.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.7.7 and restart the app and docs deployment.
  2. Revisit Providers -> OpenClaw Gateways to verify existing gateways and add deployment metadata for any older manual profiles.
  3. If you operate remote gateways, prefer tailscale or ssh-tunnel exposure unless you intentionally want public HTTPS ingress.
  4. Update any automation or internal docs to use the expanded swarmclaw openclaw deploy-* and swarmclaw openclaw remote-* command set.

v0.7.6 (March 7, 2026)

This release focuses on making OpenClaw deployment much easier for non-technical operators while keeping the supply chain on official OpenClaw sources only.

Highlights

  • OpenClaw Smart Deploy: SwarmClaw can now launch a local OpenClaw gateway directly from the app, generate a ready-to-save gateway profile, and expose the same flow during onboarding and from the main Providers screen.
  • Official-only remote bundles: Remote deployment helpers now stay on the official OpenClaw Docker image or the official OpenClaw repo. No third-party OpenClaw deployment services are used.
  • Top VPS presets: Docker-based Smart Deploy now includes provider-friendly presets for Hetzner, DigitalOcean, Vultr, Linode, Lightsail, Google Cloud, Azure, OCI, and generic Ubuntu hosts, including cloud-init.yaml.
  • Hosted OpenClaw templates: SwarmClaw can generate preconfigured Render, Fly.io, and Railway templates for official-repo deployments.
  • CLI deployment parity: The built-in CLI now includes openclaw deploy-status, openclaw deploy-local-start, openclaw deploy-local-stop, and openclaw deploy-bundle.
  • Docs refresh: Getting Started, Deployment, CLI, and OpenClaw setup docs were updated to match the new deployment flow and version line.

Upgrade Guidance

  1. Upgrade SwarmClaw to v0.7.6 and restart the app.
  2. Revisit Providers -> OpenClaw Gateways to use the new Smart Deploy flow for any gateway you still create manually.
  3. If you expose remote gateways, prefer Tailscale, SSH tunneling, or a TLS reverse proxy instead of raw public ports.
  4. Update any internal runbooks that referenced unofficial OpenClaw hosting or old manual-only gateway setup steps.

v0.7.4 (March 6, 2026)

This release focuses on OpenClaw fleet management, setup polish, and safer autonomy defaults.

Highlights

  • Named gateway profiles: Providers now expose first-class OpenClaw gateway profiles with default selection, health checks, discovery helpers, and better operator visibility around remote endpoints.
  • External runtime visibility: SwarmClaw can track external agent runtimes that register and heartbeat into the control plane, making distributed OpenClaw-style workers visible in one place.
  • Setup wizard refresh: Onboarding now supports Quick Start, Intent Guided, and Custom Setup flows, starter kits, reusable provider mappings, and stricter OpenClaw connection verification before continuing.
  • Sandbox runtime refresh: Local sandbox_exec now uses the same Docker-first sandbox model as shell/browser execution, with host Node fallback when Docker is unavailable. New and existing agents default to sandbox-enabled configs.
  • CLI/docs alignment: CLI coverage now includes the new gateways and external-agents surfaces, and the docs were refreshed to remove stale sandbox/Python guidance.

Upgrade Guidance

  1. Pull the latest code, install dependencies, and restart the app and docs deployment.
  2. If you use OpenClaw, revisit Providers to set a default gateway profile and rerun health checks after upgrade.
  3. If you want container isolation for shell, browser, or sandbox_exec, install or verify Docker Desktop on the host.
  4. Update any scripts, skills, or docs that still assume Python support in the local sandbox or reference old chat main-loop CLI commands.

v0.7.3 (March 5, 2026)

This release focuses on autonomous runtime depth, durable human-loop workflows, and docs/runtime alignment for the plugin system.

Highlights

  • Browser autonomy upgrade: Browser sessions now persist profile state, observations, artifacts, and higher-level workflow actions for longer-running web tasks.
  • New primitive plugin families: Added built-in mailbox, ask_human, document, extract, table, and crawl capabilities for inbox automation, approvals, document/OCR parsing, schema-driven extraction, spreadsheet-style transforms, and multi-page research.
  • Durable waits everywhere: schedule_wake, mailbox replies, approval decisions, and related monitoring flows now sit on persisted watch jobs instead of transient in-memory timing only.
  • Plugin runtime cleanup: Canonical plugin family IDs, source-backed install/update metadata, encrypted secret settings, and real hook wiring are now reflected consistently across runtime, UI, and docs.
  • Plugin workspaces: Plugins can now carry dependency manifests, install workspace packages from the Plugins manager, and report dependency-install state back through the UI/API.
  • Connector/operator improvements: Connector health, thread context bootstrap, and operator tooling were expanded to make long-running chat-platform autonomy more debuggable, including the new connector doctor diagnostics surface.
  • Docs refresh: Plugin reference, plugin tutorial, provider model-selection guidance, and tools docs were brought up to date with the current runtime.

Upgrade Guidance

  1. Pull the latest code, install dependencies, and restart the app and any separate site deployment.
  2. Revisit Settings → Plugins for any plugin using settingsFields, especially inbox or connector-backed plugins.
  3. If you use browser-heavy autonomy, expect persistent browser profile state under your configured browser-profile directory.
  4. Review release docs and any external onboarding material for the new canonical plugin/tool names.

v0.7.2 (March 5, 2026)

This release focuses on chat-surface consistency, plugin extensibility, and new built-in agent capabilities.

Highlights

  • Chats are now canonical: API and CLI docs now center on /api/chats/* and swarmclaw chats ... (legacy sessions aliases remain in compatibility paths).
  • Plugin-driven runtime guidance: Plugins can inject capability lines, operating guidance, and context blocks into agent runtime prompts.
  • New plugin hook surface: Added support for afterChatTurn, getAgentContext, getCapabilityDescription, and getOperatingGuidance.
  • Plugin settings UI/API: Plugin-defined settingsFields now render in the Plugins detail sheet, backed by /api/plugins/settings.
  • New built-in tool plugins:
    • image_gen (generate_image) for OpenAI/Stability image generation
    • email for SMTP outbound mail (send, status)
    • calendar for Google/Outlook event management
  • Expanded CLI delegation: delegate now supports Gemini CLI (delegate_to_gemini_cli) alongside Claude/Codex/OpenCode.
  • Usage telemetry expansion: /api/usage now includes byPlugin token/cost rollups; the usage dashboard includes a plugin token usage chart.
  • State migration hardening: runtime now migrates legacy tools fields to plugins for agents and chats.

Operational Notes

  • New API endpoints:
    • GET /api/plugins/settings?pluginId=...
    • PUT /api/plugins/settings?pluginId=...
  • Main-loop controls apply to agent-thread and orchestrated chats.
  • Task metadata now includes geminiResumeId when Gemini CLI delegation is used.

Upgrade Guidance

  1. Pull latest code, install dependencies, and restart.
  2. Validate plugin settings in Settings → Plugins for any plugin using settingsFields.
  3. Update scripts/integrations from sessions routes/commands to chats.
  4. Verify telemetry consumers can handle optional byPlugin in /api/usage.

v0.7.0 (March 4, 2026)

This release focuses on plugin reliability, clearer operator feedback, and release hardening.

Highlights

  • Plugin safety guardrails: Plugins that fail repeatedly are auto-disabled to protect runtime stability.
  • Operator visibility: Auto-disable events generate Notification Center warnings with direct links to the Plugins manager.
  • Failure diagnostics: Consecutive plugin failure metadata is persisted for debugging and shown in plugin management views.
  • Manual recovery flow: Disabled plugins can be re-enabled manually after fixes.
  • OpenClaw-compatible plugin runtime: Compatibility paths remain first-class while plugin execution is better isolated and observable.
  • Installed plugin detail UX: Plugin cards and detail views now surface clearer descriptions, status, source metadata, and capability badges.
  • Marketplace URL normalization: Legacy marketplace entries pointing to swarmclawai/plugins are normalized to swarmclawai/swarmforge during install.
  • Hydration hardening: Nested button structures in list-card UIs were removed to eliminate hydration errors.
  • Clipboard compatibility: Copy actions now use a fallback path when navigator.clipboard is unavailable.

Operational Notes

  • New optional environment variable:
    • SWARMCLAW_PLUGIN_FAILURE_THRESHOLD (default 3)
  • New failure state file:
    • data/plugin-failures.json

Upgrade Guidance

  1. Update to the latest tag and restart.
  2. Review Notification Center for any plugin auto-disable alerts after startup.
  3. Re-enable affected plugins only after validating their logs and recent changes.