Install & Run
npm:
npx @desplega.ai/agent-swarm@2.9.0
# or install globally
npm i -g @desplega.ai/agent-swarm@2.9.0bun:
bunx @desplega.ai/agent-swarm@2.9.0
# or install globally
bun i -g @desplega.ai/agent-swarm@2.9.0Docker:
# Server
docker pull ghcr.io/desplega-ai/agent-swarm:2.9.0
# Worker
docker pull ghcr.io/desplega-ai/agent-swarm-worker:2.9.0
# Dashboard
docker pull ghcr.io/desplega-ai/agent-swarm-ui:2.9.0E2B templates:
# API
agent-swarm-api-2-9-0
agent-swarm-api-latest
# Worker / lead runtime
agent-swarm-worker-2-9-0
agent-swarm-worker-latestagent-fs
Ships agent-fs 0.18.23 (bumped from 0.18.22).
agent-swarm pins agent-fs via the chart image tag and npm packages @desplega.ai/agent-fs and @desplega.ai/agent-fs-just-bash; each agent-fs release needs a chore(deps): bump agent-fs pins PR here.
What's Changed
- docs(skills): systemDefault skill seed patches (2026-11-07) by @desplega-bot in #2828
- docs(specs): sync TLA+ specs with main (heartbeat) by @desplega-bot in #2832
- test(ui): unmount the Toaster before unregistering happy-dom by @desplega-bot in #2839
- docs: make the AI operations governance guide lead answer-first by @desplega-bot in #2830
- chore(docker): bump claude-code, opencode, amp, copilot, qwen (2026-11-07) by @desplega-bot in #2831
- docs: correct team collaboration secrets claim by @desplega-bot in #2829
- test(savings): pin the script route test clock and tick after today's runs by @desplega-bot in #2822
- test(savings): pin the fleet read's day slices and id tie-break by @desplega-bot in #2814
- feat(hitl): mark the Slack approval card resolved in place by @desplega-bot in #2840
- fix: validate Slack tree stall threshold by @ZedingZhang in #2817
- fix(multi-runtime): fall back to the default stale threshold on invalid env values by @Oscar-Williams in #2821
- fix(heartbeat): fall back to the default resume-generation limit on invalid values by @RClaudiuM in #2837
- docs: inherit configured decision provider in workflow skill by @desplega-bot in #2841
- perf(db-query): reuse worker children instead of spawning per query by @desplega-bot in #2813
- perf(scrubber): selective, load-paced boot re-scrub sweep with forward-only mode by @desplega-bot in #2811
- feat(apps): add the SessionThread component and app-page steering source by @AsLogd in #2760
- chore(docker): bump amp (2026-11-07) by @desplega-bot in #2842
- fix(heartbeat): fall back to the default stall threshold on invalid values by @RClaudiuM in #2838
- fix(tasks): fall back to the default eligibility scan cap on invalid values by @RClaudiuM in #2836
- fix: preserve keyed write retries after a slow first attempt by @desplega-bot in #2820
- feat(github): GitHub Enterprise Server support via GITHUB_URL by @desplega-bot in #2808
- feat(extensions): add sql-admin-only template gating db-query by task creator role by @desplega-bot in #2824
- docs: verify explicitly selected decision provider in ping by @desplega-bot in #2843
- fix(get-swarm): mark wakeable pool agents as on demand by @tarasyarema in #2815
- fix: bound heartbeat pool scan when batch size is non-positive by @jay23606 in #2807
- feat(import): opt-in file import of workflows, skills, scripts and agent instructions by @desplega-bot in #2805
- refactor(entrypoint): move provider binary checks to Bun by @ZedingZhang in #2823
- feat(seed): per-kind opt-out flags for built-in seed catalog by @mandreev-dev in #2800
- feat(apps): catalog batch with approval, agent-fs files, split drawer, dialog and charts by @desplega-bot in #2810
- docs: make extension authoring internal first by @desplega-bot in #2848
- feat(onboarding): in-app files, Work/Connect/Build navigation, use-case groups and Home by @tarasyarema in #2734
- fix(ui): show agent files with the reply and flush my message time to the bubble edge by @desplega-bot in #2852
- fix(slack): show dashboard responder names on approval cards by @desplega-bot in #2847
- feat(chat): let agents post json-render cards to Slack and Chat SDK channels by @desplega-bot in #2844
- fix(slack): fold buffered thread follow-ups into the pending Lead task by @desplega-bot in #2849
- feat(ui): answer a session's approval request in place by @desplega-bot in #2851
- test(e2e): drive the Chat SDK Slack adapter through slack-mock HTTP delivery by @desplega-bot in #2853
- feat(dreaming): batch skill routes per target skill and raise skill caps to 6/2 by @desplega-bot in #2856
- fix(slack): match block dedupe word boundaries by code point by @desplega-bot in #2859
- docs(prompts): steer small chat tables and charts to a json-render card by @desplega-bot in #2860
- fix(ui): match Files reading width to agent-fs by @desplega-bot in #2854
- fix: identify Slack inbound messages in retry logs by @desplega-bot in #2855
- chore(deps): bump agent-fs pins to 0.18.23 by @tarasyarema in #2862
- feat(slack): serve SLACK_MODE=http through a native signed receiver by @desplega-bot in #2857
- fix(worker): validate provider dependencies at task start by @ZedingZhang in #2858
- fix(evals): fix three grader false negatives in docs-suggestion, implement-review and fanout-research by @desplega-bot in #2865
- feat(ui): mobile and desktop layout fixes from UI audit by @desplega-bot in #2863
- fix(ui): show session approvals before live activity by @desplega-bot in #2864
- fix: keep savings available before today's first rollup by @desplega-bot in #2867
- fix(slack): persist buffered thread replies across API restarts by @desplega-bot in #2861
- feat(ui): Home and Usage feedback: savings, dismissible failures, first-screen layout, new top bar by @tarasyarema in #2866
- release: v2.9.0 + docs daily update 2026-11-08 by @desplega-bot in #2868
New Contributors
- @RClaudiuM made their first contribution in #2837
- @jay23606 made their first contribution in #2807
Full Changelog: v2.8.3...v2.9.0