docs(prd-0024): consolidate per-bottle sidecars into a single bundle #54
Reference in New Issue
Block a user
Delete Branch "prd-0024-consolidate-sidecar-bundle"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
New PRD for collapsing pipelock + egress + git-gate + supervise from four per-bottle containers into a single
claude-bottle-sidecarsbundle image with a small stdlib Python init supervisor. Same daemons, same ports, same protocols, same per-bottle lifetime — fewer containers per bottle, one Dockerfile to maintain instead of three.The compose file for a bottle goes from five services (
agent,pipelock,egress,git-gate,supervise) to two (agent,sidecars). Inside the bundle, egress stays as pipelock's localhost upstream; nothing on the agent side ever addressed it directly anyway.Why now
PRD 0023's smolmachines backend wants one host-side sidecar container per bottle, not four. Rather than ship two divergent sidecar topologies, converge both backends on the same bundle. This PRD produces the image; PRD 0023 chunk 3 consumes it.
Sized
Five chunks: bundle image + init supervisor → compose renderer collapse (feature-flagged) → backend Python trim + delete old Dockerfiles → integration test sweep → docs and flag removal.
Open questions
Six. Most load-bearing: init failure semantics (bundle exits on any child death vs restart-the-child), exit-code propagation when multiple daemons die under SIGTERM, and healthcheck aggregation across four ports in one container. None block landing chunk 1.