carlos / platform Public

zdd-2-containment

Human

Zero-downtime deploys, plan 2 of 6: containment (spec rev 17 §7.3, §7.6). Cut from zdd-1-generations (plan 1, unmerged); rebase onto main once plan 1 lands. Dormant: ExecBackend.GenContainment is false everywhere outside tests; plan 5 wires it to CARLOS_SWAP.

Flat: carlos-exec@<host> becomes a parent (oom.group=0) with g<n> children (full tier, oom.group=1) and role-sidecar/role-seed. Strict: PrepareStrictParent, PrepareGen, SetParentLimit, CloseRemove, one shared child-pinning helper. Stop-evidence Members() walks the parent's subtree, bounded while it reads. Nested: the carlos-instance-gen@<iid>:<n> template; the root control service writes a per-generation runtime drop-in (plan decision D1), with gen= on start/stop/reset, /parent, and cleanup only after termination is proven. spawnClaimedGen is built closed, matching main's a4cd3003.

Kernel suite (TestGenOOMKernel, TestGenStrictKernel) passed on DOCS-T1 under systemd-run --user Delegate=yes. Dev-box run not done (needs Paul's approval). D1's daemon-reload cost still has to be measured on dev before the flag goes on.

Astra: r1 ACCEPT WITH FIXES, one fix wave, r2 ACCEPT WITH FIXES with one open item. L1: after a generation kill that can't be proven, the wake path still releases the lease. That is latent behind the flag and parked to plan 3 Task 2 (cleanupFailedWake/unprovenWakes). Astra calls it a merge blocker, so Paul decides. Findings: docs/superpowers/plans/CODEX-FINDINGS-ZDD-IMPL-2*.md. Decisions D1-D6 need Paul's sign-off before merge.

Commits 26
Files changed 47 +4661 −160
Discussions 0 0 open
Tasks 0/0 done

Discussions

  • No discussions on this branch yet.

Tasks

  • No tasks yet.

Activity