v0.3.3
Completes the PROSPERO_FLEET=k8s control plane so a spawned agent actually runs: the previous two fixes (v0.3.2) let the caliband pod bind and decoupled spawn from reconcile, but nothing ever started the agent inside the pod. Local behavior is unchanged.
Fixed
- k8s agents now actually start (and stream). Under the k8s backend, spawning created the
CalibanTaskCR and a caliband pod but never started the LLM run — caliband is a passive supervisor that begins an agent only onCtlRequest::Spawn, and prospero's session plane only attached, so the attach looped forever onagent not found. prospero now spawns the agent in the pod's caliband (list-or-spawn, one agent per pod) from theCalibanTaskprompt, then attaches — idempotent across poll cycles and replicas (ownership-lease-gated). Because caliband assigns the agent id itself, the attach id is decoupled from prospero's stream key (the CR name) so output still streams to the dashboard under the identity/streamexpects (#159) (#160).
Image: ghcr.io/caliban-ai/prospero:0.3.3