carlos / platform Public

zdd-4-release-side

Zero-downtime deploys, plan 4 (release side). Spec: docs/superpowers/specs/2026-10-07-zero-downtime-deploys-design.md (rev 17) §4.2, §7.9, §8.5. Plan: docs/superpowers/plans/2026-10-07-zero-downtime-deploys-4-release-side.md.

Additive: Manifest.Swap, lossless staged siblings, CanonicalDemand, the pin set, PinSource, and the generations file (/data/zdd/generations.json, guarded by a generations.seq intent file: seq + complete, entries by version and by resolved path). Nothing reads swap until plan 5.

Behaviour changes the spec mandates: workers exec their staged build by path and recycle (crash, maxrun) onto the captured build; a recycle refused by the digest check stays refused (worker down, reported); the activator publishes each worker's build to the generations file BEFORE its exec, whatever CARLOSSWAP says, and a failed publish prevents the spawn (plan 5 extends this writer); root's restage check and the hourly version sweep both read that file and do nothing destructive on an incomplete set; pins compare fully resolved real paths; a worker's /v1/ready report no longer writes registry Version; SidecarAdoptable adopts native sidecars (stage, repoint, stamp, no restart); a reused staged copy is hashed and restaged only when nothing refers to it (the held stage never restages). Recycle-triggered converges share the sweep's converge budget and never run when a scheduler hook is set.

Review: Astra r4 ACCEPT WITH FIXES (docs/superpowers/plans/CODEX-FINDINGS-ZDD-IMPL-4*.md). N5 resolved by ruling R22: a refused publish reaches members through the existing "wake failed: " passthrough, like every internal wake error; plan 6's copy review adds a dedicated member-safe reason. Accepted costs: a full /data skips the version sweep until a publish succeeds; the root/agent check-then-mutate race needs a shared lock (pre-existing).

Known display effect: carlos sidecars ls RUNNING VERSION shows root's install stamp until plan 6 moves it to ServingVersion.

Commits 27
Discussions 0 0 open
Tasks 0/0 done

Discussions

  • No discussions on this branch yet.

Tasks

  • No tasks yet.

Activity