index: generations file contract revised by plan 4 R19 (seq intent, complete, paths; sweep reads it)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 file changed,
+10
−0
docs/superpowers/plans/2026-10-07-zero-downtime-deploys-0-index.md+10 −0
CI cancelled — superseded by a newer push — run details
diff --git a/docs/superpowers/plans/2026-10-07-zero-downtime-deploys-0-index.md b/docs/superpowers/plans/2026-10-07-zero-downtime-deploys-0-index.md| index 4dfa31574..ae016edb0 100644 |
| --- a/docs/superpowers/plans/2026-10-07-zero-downtime-deploys-0-index.md |
| +++ b/docs/superpowers/plans/2026-10-07-zero-downtime-deploys-0-index.md |
| @@ -535,6 +535,16 @@ Per finding: |
| (`Service.GenerationsFile`, `persistGenerations`, wired in `agent.go`). |
| Plan 5 extends that writer rather than adding its own, and `armAlways` |
| keeps only `OnWorkerServing`. |
| + **Generations file contract, revised (2026-10-08, plan 4 R19):** the |
| + file is now `{"schema":1,"seq":N,"complete":true,"hosts":{...},"paths":{...}}` |
| + (`paths`: resolved staged paths, for builds with no version), written |
| + after an atomic intent file `<data>/zdd/generations.seq` holding N. Root |
| + reads intent present + file missing, incomplete or at another seq as an |
| + incomplete pin set; neither file present is no generations. Plan 4's |
| + activator publishes a worker's build BEFORE its exec and refuses the |
| + spawn if that fails. The version sweep (`internal/host/versionsweep.go`) |
| + reads the same file through `release.GenerationVersions` in plan 4, so |
| + plan 5 adds instance generations to the writer, not a new reader. |
| - **7** (plan 5 Tasks 9, 11): as P1 #6. |
| - **8** (plan 5 Task 11): an empty version is published through the same |
| ordered writer, clearing the obsolete `ServingVersion`. |