Skip to content

Releases: spacedriveapp/spacebot

v0.2.0

26 Feb 08:16
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.2.0 is the biggest Spacebot release yet.

The agent is no longer a single-channel chatbot, it's a multi-agent system with real orchestration primitives.

Screenshot_2026-02-23_at_12 48 29_PM copy

Agents coordinate through a spec-driven task system with a full kanban board in the UI. Tasks are structured markdown documents with requirements, constraints, and acceptance criteria. The cortex background loop picks up ready tasks, spawns workers, and handles completion or re-queuing on failure. Agents see the shared task board through the bulletin system, so delegation happens through specs, not conversation.

Workers got a complete visibility overhaul. Full transcript persistence with gzip compression, live SSE streaming of tool calls as they happen, and a new worker_inspect tool so branches can verify what a worker actually did instead of trusting a one-line summary.

On the security front, the old string-based command filtering (215+ lines of whack-a-mole regex) has been replaced with kernel-enforced filesystem sandboxing via bubblewrap on Linux and sandbox-exec on macOS. The LLM can't write outside the workspace because the OS won't let it.

This release also brings OpenAI and Anthropic subscription auth support, better channel history preservation with deterministic retrigger handling, structured text payload blocking to keep raw JSON/XML out of user-facing messages, self-hosted update controls in the settings UI, new provider support (Kilo Gateway, OpenCode Go), prebuilt Linux binaries for amd64/arm64, a Nix flake, and a pile of fixes across cron scheduling, OAuth, model routing, and more.

What's Changed

  • feat(nix): add Nix flake for building and deploying Spacebot by @skulldogged in #47
  • Fix chatgpt oauth by @marijnvdwerf in #187
  • Multi-agent communication graph by @jamiepine in #150
  • Process sandbox: kernel-enforced filesystem containment for shell/exec by @jamiepine in #188
  • Workers tab: full transcript viewer, live SSE streaming, introspection tool by @jamiepine in #192
  • add settings update controls and harden self-hosted update flow by @jamiepine in #207
  • feat(web): ui/ux cleanup by @skulldogged in #143
  • feat(ci): publish binaries for linux/amd64 and linux/arm64 on release by @morgaesis in #94
  • block structured text payloads from user replies by @jamiepine in #209
  • Fix Z.AI Coding Plan model routing by @jamiepine in #210
  • fix: use Bearer auth when key comes from ANTHROPIC_AUTH_TOKEN by @worldofgeese in #196
  • fix: use Bearer auth for ANTHROPIC_AUTH_TOKEN and add ANTHROPIC_MODEL by @worldofgeese in #197
  • Task tracking system with kanban UI and spec-driven delegation by @jamiepine in #227
  • fix: make background result retriggers deterministic by @jamiepine in #231
  • fix: guide users to enable device code login for ChatGPT OAuth by @mwmdev in #214
  • fix(cron): make cron scheduler reliable under load and in containers by @mmmeff in #186
  • Fix Z.AI coding-plan model remap for GLM-5 by @vsumner in #223
  • fix: Default cron delivery target to current conversation by @jaaneh in #213
  • feat(llm): add Kilo Gateway and OpenCode Go provider support by @skulldogged in #225

New Contributors

Full Changelog: v0.1.15...v0.2.0

v0.1.15

24 Feb 01:37
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

What's Changed

  • fix: resolve pre-existing CI failures (clippy, fmt, test) by @Marenz in #174
  • fix: wire up ollama_base_url shorthand in config by @Marenz in #175
  • fix: return synthetic empty text on Anthropic empty content response by @Marenz in #171
  • fix: accept string values for timeout_seconds from LLMs by @Marenz in #169
  • feat(telegram): use send_audio for audio MIME types by @Marenz in #170
  • feat(skills): workers discover skills on demand via read_skill tool by @Marenz in #172
  • fix: avoid panic on multibyte char boundary in log message truncation by @Marenz in #176
  • ChatGPT OAuth browser flow + provider split by @marijnvdwerf in #157
  • Fix worker completion results not reaching users by @jamiepine in #182
  • Default MiniMax to M2.5 and enable reasoning by @hotzen in #180
  • fix: register groq/together/xai/mistral/deepseek providers from shorthand config keys by @Marenz in #179
  • Bugfix: Update dependencies for Slack TLS by @egenvall in #165
  • Add warmup readiness contract and dispatch safeguards by @vsumner in #181
  • fix(slack): Slack channel fixes, DM filtering, emoji sanitization, and restore TLS on websocket by @sra in #148

New Contributors

Full Changelog: v0.1.14...v0.1.15

v0.1.14

23 Feb 00:19

Choose a tag to compare

What's Changed

  • feat(mcp): add retry/backoff and CRUD API by @l33t0 in #109
  • feat(ux): add drag-and-drop sorting for agents in sidebar by @MakerDZ in #113
  • fix(channel): roll back history on PromptCancelled to prevent poisoned turns by @Marenz in #114
  • Fix CI failures: rustfmt, clippy, and flaky test by @Marenz in #116
  • fix(channel): prevent bot spamming from retrigger cascades by @PyRo1121 in #115
  • feat(security): add auth middleware, SSRF protection, shell hardening, and encrypted secrets by @PyRo1121 in #117
  • remove obsolete plan document from #58 by @hotzen in #142
  • fix(build): restore compile after security middleware + URL validation changes by @bilawalriaz in #125
  • fix(telegram): render markdown as Telegram HTML with safe, telegram-only fallbacks by @bilawalriaz in #126
  • Fix Fireworks by @Nebhay in #91
  • fix: harden 13 security vulnerabilities (phase 2) by @PyRo1121 in #119
  • fix: replace .expect()/.unwrap() with proper error propagation in production code by @PyRo1121 in #122
  • feat(twitch): Add Twitch token refresh by @Nebhay in #144
  • feat: add minimax-cn provider for CN users by @shuuul in #140
  • feat(telemetry): complete metrics instrumentation with cost tracking and per-agent context by @l33t0 in #102
  • feat: support ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN and SPACEBOT_MODEL env vars by @adryserage in #135
  • Fix cron timezone resolution and delete drift by @jamiepine in #149
  • feat: update Gemini model support with latest Google models by @adryserage in #134
  • feat(web): add favicon files and update HTML to include them by @the-snesler in #154
  • fix: add API body size limits and memory content validation by @PyRo1121 in #123

New Contributors

Full Changelog: v0.1.13...v0.1.14

v0.1.13

21 Feb 23:00

Choose a tag to compare

What's Changed

  • Improve channel reply flow and Discord binding behavior by @jamiepine in #95
  • feat(messaging): unify cross-channel delivery target resolution by @jamiepine in #97
  • feat: add dedicated voice model routing and attachment transcription by @jamiepine in #98
  • Fix all warnings and clippy lints by @Marenz in #87
  • Add CI workflow (check, clippy, fmt, test) by @Marenz in #101
  • Add native poll support to telegram adapter by @Marenz in #93
  • docs(agents): update existing documentation when adding features by @Marenz in #106
  • feat(llm): add Google Gemini API provider support by @MakerDZ in #111
  • prompts: add missing memory-type guidance in memory flows by @marijnvdwerf in #112
  • add mcp client support for workers by @nexxeln in #103
  • Avoid requiring static API key for OAuth Login by @egenvall in #100

New Contributors

Full Changelog: v0.1.12...v0.1.13

v0.1.12

21 Feb 02:15

Choose a tag to compare

Note about v0.1.11

v0.1.11 was removed due to a bad migration, and its tag/release were deleted.
v0.1.12 includes those intended changes plus additional fixes.

Highlights included from the missing v0.1.11 window

  • Added hosted agent limit functionality
  • Added backup export and restore endpoints
  • Added storage status endpoint and filesystem usage reporting
  • Improved release tagging/version bump workflow (including Cargo.lock handling)

What's Changed

  • fix: register NVIDIA provider and base URL by @Nebhay in #82
  • fix: Portal Chat isolation by @jnyecode in #80
  • Nudge previously rejected DM users when added to allow list by @Marenz in #78
  • Telegram adapter fixes: attachments, reply-to, and retry on startup by @Marenz in #77
  • Anthropic OAuth authentication with PKCE and auto-refresh by @Marenz in #76
  • fix: Prevent duplicate message replies by differentiating skip and replied flags by @thesammykins in #69
  • fix(cron): prevent timer leak and improve scheduler reliability by @michaelbship in #81
  • feat(cron): add configurable timeout_secs per cron job by @michaelbship in #83
  • feat: add mention-gated Discord bindings and one-time cron jobs by @jamiepine in #88
  • docs: update README for new features since last update by @Marenz in #92

New Contributors

Full Changelog: v0.1.10...v0.1.12

v0.1.10

20 Feb 08:45
98cb45d

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.1.9...v0.1.10

v0.1.9

20 Feb 04:25

Choose a tag to compare

What's Changed

  • add local ollama provider by @mmattbtw in #18
  • fix(docs): add favicon, fix theme toggle, and resolve og:image localhost issue by @andrasbacsai in #29
  • feat(llm): add NVIDIA NIM provider support by @skulldogged in #46
  • Update slack connector to include additional sender metadata by @ACPixel in #43
  • feat(telemetry): add Prometheus metrics with feature-gated instrumentation by @l33t0 in #35
  • fix(ingestion): do not delete ingest files when chunk processing fails by @sookochoff in #57
  • feat: Improve Slack Markdown by @egenvall in #52
  • fix: key Discord typing indicator by channel ID to prevent stuck indicator by @tomasmach in #53
  • fix: Telegram adapter improvements by @Marenz in #50
  • Adds pdf ingestion by @ACPixel in #63
  • feat: add markdown preview toggle to identity editors by @tomasmach in #59
  • Add GitHub CLI to default docker image by @ACPixel in #61
  • feat(llm): add custom providers and dynamic API routing by @sbtobb in #36
  • fix: prevent panic in split_message on multibyte UTF-8 char boundaries by @tomasmach in #49
  • feat(slack): app_mention, ephemeral messages, Block Kit, scheduled messages, typing indicator by @sookochoff in #58
  • feat(slack): slash commands (Phase 3) + Block Kit interactions (Phase 2b) by @sookochoff in #60
  • Add Portal Chat for direct web-based agent interaction by @jnyecode in #64
  • feat: add MiniMax as native provider by @ricorna in #26
  • feat: add Moonshot AI (Kimi) as native provider by @ricorna in #25
  • feat: Discord rich messages (Embeds, Buttons, Polls) by @thesammykins in #66

New Contributors

Full Changelog: v0.1.8...v0.1.9

v0.1.8

19 Feb 05:26

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.1.7...v0.1.8

v0.1.7

18 Feb 18:09
db0e09f

Choose a tag to compare

What's Changed

  • fix(config): support numeric telegram chat_id binding match by @cyllas in #34
  • Add ARM64 multi-platform Docker images by @andrasbacsai in #27

New Contributors

Full Changelog: v0.1.6...v0.1.7

v0.1.6

18 Feb 10:14

Choose a tag to compare

Full Changelog: v0.1.5...v0.1.6