Releases: caliban-ai/caliban
v0.3.0
This release pairs extensibility — config-defined hooks that now fire at runtime, a SessionStart context-injection surface, and a proactive skill nudge — with a reliability pass on the background sub-agent supervisor, hardening the EventHub and worker channels against panics, unbounded memory, blocked readers, and idle-timeout overshoot. It also adds a user-facing extended-thinking toggle and tightens the Google provider's fault classification.
Added
- Config-defined hooks execute at runtime (#121):
[[hooks.*]]handlers are now built into executingcommand/httphandlers and composed into the agent's hook chain. (#126) - SessionStart context-injection hook surface (#106):
session_starthooks can spliceadditional_contextinto the system prompt before turn 1. (#122) - Proactive skill-invocation nudge (#56): the system prompt lists loaded skills and nudges the model to invoke a matching one, gated by
tools.skill_guidance. (#105) - User-facing extended-thinking toggle (#100): control extended thinking independently of the effort level. (#110)
- Shared cross-cutting area labels (#109). (#123)
Changed
Fixed
- Inbound frame reader no longer blocks on a full worker channel (#118). (#134)
- Worker idle timeout uses a deadline to remove overshoot (#119). (#133)
- EventHub history is bounded to cap worker memory (#116). (#132)
- Inherited workers honor parent allow/deny rules (#114). (#131)
- Poisoned EventHub history lock recovers instead of panicking (#113). (#130)
- Google provider fault classification for 400 context-overflow + in-band SSE faults (#111). (#129)
/memory deletegated behind--force(#112). (#120)- Skipped skills surfaced instead of silently dropped (#107). (#108)
Docs
- Adopted the
docs/adr/convention (#125) and centralized GitHub Pages — ADR ingestion, shared theme, rustdoc (#128).
Full changelog: v0.2.0...v0.3.0
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.