Changelog

What's new in Colony

v0.2.0
February 23, 2026

Agent Orchestration & Brood System

Colony 0.2.0 introduces AI agent execution via HumanLayer’s hld daemon, multi-colony orchestration with the brood system, and persistent state across restarts.

Added

  • HumanLayer hld daemon integration — Agent execution via JSON-RPC over Unix socket, replacing the previous OpenCode Zen API
  • Brood orchestration system — Multi-colony coordination toward shared objectives with planning agent decomposition
  • Brood cost guardrails — Max 20 sessions per brood, max 3 parallel sessions, with automatic queuing
  • Agent event streaming — Real-time text_delta, tool_use, tool_result, and status events via WebSocket
  • Agent preview panel — Streaming event viewer in Bloom with status indicator and auto-scroll
  • Brood UI — List page, detail view with multi-colony grid and per-colony preview panels
  • Two brood creation modes — Simple (objective-based with planning agent) and advanced (explicit colony specs)
  • Script execution mode — Deterministic shell commands for setup steps without API cost
  • Project persistence — Erlang term storage with atomic writes (tmp+rename) for crash safety
  • Brood persistence — State survives Mycelium restarts
  • Chat interface — Brood-level chat for instructing agents from Bloom
  • Service-driven preview tabs — One tab per service from colony.toml, plus agent and terminal tabs
  • Master prompt editor — Configure system prompts for agent sessions

Changed

  • Agent backend — Migrated from OpenCode Zen API to HumanLayer hld daemon (ADR-0013)
  • Bloom WebSocket protocol — Switched from Protobuf to JSON messages
  • Colony spawning — Now accepts repo_url and branch instead of template config
  • Preview system — Tabs generated dynamically from colony.toml services section

Fixed

  • Safe deserializationbinary_to_term(Bin, [safe]) prevents atom table exhaustion from persistence data
  • Atomic file writes — tmp+rename pattern prevents data corruption on crash
  • Brood state reads — Use GetState instead of RefreshState to avoid blocking the brood actor
  • Socket buffer size — Increased to 4MB for large agent responses
  • Chat overflow — Fixed CSS overflow issues in brood chat

Stats

  • 1,316 tests — Gleam (540), Rust (317), SolidJS (459)
v0.1.0
February 14, 2026

Initial Preview Release

Colony’s first public preview. This release includes the complete Phase 1 infrastructure and the Phase 2 preview system.

Added

  • Colony lifecycle management — Spawn, stop, delete, and list colonies via HTTP API and IPC
  • Actor-per-colony architecture — Each colony runs as an OTP actor with full lifecycle state machine
  • Linux network namespace isolation — Kernel-level environment isolation at zero overhead
  • Jujutsu VCS workspace management — Per-colony workspaces with automatic conflict resolution
  • Caddy dynamic route registration — Automatic subdomain routing per colony
  • Structured logging — JSON structured logs with correlation IDs via glogg
  • Per-colony RingLogger — ETS ring buffer for in-memory log retention
  • Log API with SSE streaming — Query and stream logs by colony in real-time
  • UDS transport — Length-prefixed Protobuf over Unix Domain Sockets (Stem to Mycelium)
  • IPC handler with command dispatch — Decode requests, dispatch to colony manager, encode responses
  • Stem TUI — Ratatui-based terminal UI with component architecture and Lazygit-style UX
  • DNS resolution — *.colony.local via dnsmasq with setup script
  • Production command executor — Erlang open_port FFI for shell commands
  • Bloom web dashboard — SolidStart-based colony management UI
  • Preview plugin architecture — Extensible registry with dynamic component rendering
  • Web preview — Sandboxed iframe with multi-port endpoint tabs and DevTools toolbar
  • Terminal preview — xterm.js v5 with Nerd Font support, dedicated binary WebSocket, PTY backend
  • 910+ tests — Gleam (508), Rust (317), SolidJS (85) — zero warnings, zero failures