Keep the builds every want names and each composition's provisioner plans; find the replaced controller in the build records (issue 1945)

With no plan left to name a build or a send to keep the plans, a want names what a collection must keep, and the
composition is where the provisioner's plans are composed for the assignments mirror (ADR 0539 clauses 1 and 5);
the assignments no longer name a node's build, so the controller replaced is the newest earlier build of it.
This commit is contained in:
2026-10-24 17:23:55 +02:00
parent a8d63653fb
commit c19d4516ef
9 changed files with 251 additions and 20 deletions
+3
View File
@@ -43,6 +43,9 @@ type Inventory struct {
// keptLately is how long a build's artifacts are kept after it is recorded (KeptLately, novox/hq issue 1933); zero
// is KeptLately, negative none (ForTest: the tests of the keep set's other rules record their builds a moment apart).
keptLately time.Duration
// wanted is every fingerprint a want names, as `<module> <fingerprint>` (novox/hq ADR 0539 clause 1; SetWanted): the
// builds of each are kept, so a collection never lets go of what a node is told to run. Nil names none.
wanted func(ctx context.Context) (map[string]bool, error)
}
// lately is how long a build's artifacts are kept after it is recorded, whatever else the records say.