v0.2.0
First release since v0.1.0 (2026-06-06) — 26 commits. This release centers on interactive background sub-agents and the supervisor machinery behind them: spawn a worker, attach to its live transcript, send it input, and let it idle while awaiting more — all under an inherited permission policy.
Highlights
Interactive background sub-agents (#81)
Sub-agents can now run in an InputProvider mode that idles awaiting input and resumes interactively, backed by:
- a bidirectional per-agent socket (
SocketInputProvider) (#89) - a
worker → daemonstatus channel withAgentStatus::Idle(#91) - a
--interactivespawn path (#90), with idle time bounded when no client is attached (#92)
Live caliban agents attach (#79, #82)
Stream a running sub-agent's transcript live, with a send path to feed the attached agent input.
Worker permission gating (#75, #84)
A spawned worker applies its tool_allowlist and a default permission gate; background sub-agents inherit the parent's permission policy via inherit_hooks.
Observability
--verbose— emit full headless tool I/O (#27)--debug-file— redirect the debug log to a chosen file (#26)
Providers
- Ollama: detect a model's real context window via
/api/ps+/api/show(#60) - Mid-stream body/decode failures are now classified as
StreamInterrupted(#63) - Daemon-spawned workers honor a requested provider via
SpawnSpec.provider(#93) TurnEventnow derivesSerialize/Deserializefor full-fidelity event capture/replay (#78)
Permissions
- Ask-modal UX overhaul + single-prompt fix (#58)
- "Always allow" / "Always deny" rules now take effect immediately, in-session (#55)
- Workers actually launch on
Spawn— fixed agents stuck inSpawning(#71);agents rm --forcesignals the worker and cleans up its socket (#76, #77)
Internal
Resumable, rate-limit-aware crates.io publisher (#59); minimum line-coverage gate with the floor ratcheted 75 → 85 (#67, #68, #72, #73); Kanban + label automation foundation (#53).
Full Changelog: v0.1.0...v0.2.0 — see CHANGELOG.md for the complete list.