Release Notes — Week of October 5 to October 12, 2026
Seven releases make secrets unleakable across every write path, add sub-workflows and a QuickJS script engine, bring eight new harnesses and ACP targets, and ship a one-command self-host install, across 168 merged commits.
Seven releases shipped this week — v1.164.0 through v1.169.0 — across 168 merged commits. The swarm got safer to trust and easier to adopt: secrets can no longer leak through any write path, workflows compose, scripts run lighter, and a single command stands up a self-hosted swarm. A note on scope: 19 commits landed on main after the v1.169.0 tag and are in no release yet; each is marked "on main, ships in the next release" below.
Highlights
Secrets are scrubbed everywhere they could land
A credential that reaches an agent never lands in a log, event, memory, task, workflow step or outbound message. A central secret registry learns every credential the API knows, survives restarts, and catches encoded copies of known values (#1918). A vendored gitleaks rule set — pinned to v8.30.1 and verified by sha256, replacing 19 hand-written token shapes — covers vendor credentials (#1922). Write-time scrubbing now covers event payloads, script runs, workflow runs and steps, memory, messages, approvals, schedules and task text (#1924, #1925, #1926, #1927), plus HTTP error bodies, telemetry and Slack/WhatsApp egress (#1911, #1914, #1919). db-query refuses credential tables outright (#1915), gitleaks runs in merge-gate (#1910), and a versioned retro-sweep scrubbed existing rows (#1917).
Two mechanisms keep it true: a canary sweep plants three shape-less canaries — one per way the API learns a secret — and verifies none survive in any table or stdout (#1928), and the merge gate fails when a TEXT column is not classified scrubbed, exempt or pending (#1923).
Workflows now compose
A sub-workflow node lets a parent workflow start a child with explicit inputs, wait for it, and branch on its outcome (#2030). Re-executed steps reconnect to the existing child instead of spawning a second one.
QuickJS script executor (opt-in)
SCRIPT_EXECUTOR=quickjs runs scripts in a WASM worker pool instead of a subprocess per run (#1951). The pool size is configurable (#2037) and the executor is selectable from the dashboard (#2004). Opt-in: the default subprocess executor is unchanged.
Eight more ways to run agents
Native Cursor and Amp harnesses landed in v1.164.0 (#1882, #1883), plus a Grok CLI harness that runs on an API key (#1959). ACP targets for GitHub Copilot CLI (#1957) and Gemini CLI (#1956) are live now; Qwen, Kiro and Goose presets are on main and ship in the next release (#2067) — Kiro needs a paid KIRO_API_KEY.
One command to self-host
A curl | bash installer checks Docker and Compose, installs Bun, onboards you, waits for /health and prints the /setup link; --tunnel is optional (#2064, on main, ships in the next release). Workers wait for credentials instead of failing when none are present yet. The dashboard also ships as a standalone nginx image (#1943).
Improvements
- Workflows and automation — OpenAI and Cloudflare providers for
system-one-decisionnodes (#1945). An optional heartbeat gate script can skip quiet checklist ticks, in shadow mode by default (#2033), and the Lead boot-triage task is skipped on a clean boot (#1973). Scheduled script runs get ascript_runsrow (#2021); script connections can be hard-deleted (#2020); a script can send a task to its own agent (#2019); a slack-reply-gate extension ships as a catalog template (#2023). Extensions bridge approval, budget, email, Kapso and code-host events aspost.*events (#1878), and approvals take their responder from the credential and enforce the approvers policy (#1854). - Access and MCP — One-click Connect to ChatGPT via single-use connector codes: 10-minute validity, hash-only storage (#1903).
SWARM_ENABLED_TOOLSsets an exact per-agent tool allowlist; unset keeps today's surface (#1989). The/connectconfirm step is inline instead of a dialog (#1944), OpenRouter requests are attributed to Agent Swarm (#1995, #1996), and tool results get a per-channel budget, spill shape summaries and pagedkv-getviews (#1949). - Slack, pages and dashboard — Durable Slack inbound receipts with explicit dispatch outcomes (#1606). An in-page feedback overlay sends element comments to the lead (#2039). The task detail page got a full overhaul on desktop and mobile (#1881), and page sessions get a guest principal (#1955). Skill usage and adoption surface in the dashboard (#2068, on main, ships in the next release).
- Evals and quality — Nightly and weekly eval schedules with regression checks and a Slack summary (#1768), a read-only publish-bundle endpoint for the weekly benchmark publish (#2046), and nightly canary caps sized from measured cost (#2041). CI is faster and stricter: tsgo typechecks and a lighter merge-gate (#1920), test durations and flakes tracked per run (#1986), faster slow tests (#2065), vendored anti-slop Oxlint rules in CI (#2038), and a show-me PR template with review map, risk and swarm provenance (#1937).
Bug Fixes
- Model pins survive resumes — Resumes and reboot retries keep the parent's model pin (#2052), and a resume keeps an explicit model alias that had fallen back next to a tier (#2053); both are on main and ship in the next release. Dated Claude model ids are accepted in harness family checks (#2002).
- Codex and Claude auth — Codex OAuth separates auth refresh from expiry timestamps (#1983); the legacy
codex_oauthrow counts as pool slot 0 (#1902); pool rows stay out of worker env (#1897); Codex reports the latest request as context, not the turn total (#1988). Claude seeds workspace trust for every session (#1899); pi acceptsGEMINI_API_KEY(#1892) and honors presence-only credentials (#1960). - ACP — Target configuration is validated before claiming tasks (#1981); the OpenRouter gateway is honored in the opencode target (#1992); the USD cost a target reports is recorded (#1896).
- Heartbeat and tasks — A Claude session stays live while it waits on background tasks (#2017); terminal statuses are excluded from heartbeat deduplication (#1909); worker output schemas stay off Lead follow-ups and Slack continuations (#1904); user MCP tasks route through the Lead (#1964); injected memories show outcome and date, and legacy auto-memories expire (#1963).
- Pricing and cost — Claude Haiku 5.5 rates are seeded (#1993); amp's dated snapshot ids collapse before the refresh insert (#1994); x402 concurrent payments can no longer overshoot the daily limit (#1885).
- Integrations and telemetry — Linear puts the session-opening comment in the task body (#1898); the Jira and Linear skills use OAuth bindings (#1929); background runs call back through the internal base URL (#1935); integration
*_DISABLEflags parse with the shared env-flag parser (#1948);skill.invokeis recorded for every harness (#1894); self-hosted support links show correctly (#1936).
Migration Notes
db-querynow denies credential tables (#1915). Scripts that read them must use connections or credential bindings instead.- With the new installer (on main, next release),
onboard --yesno longer fails without a model credential — workers park in credential-wait until/setupsupplies one. - The QuickJS executor and
SWARM_ENABLED_TOOLSare opt-in; defaults are unchanged.
Release Notes
Weekly release notes for Agent Swarm — new features, improvements, and fixes
Release Notes — Week of September 28 to October 5, 2026
Five releases let swarms make cheap workflow decisions with human review, run Claude and memory on enterprise clouds, and prove results on a public benchmark, across 190 merged commits.