The assigner follows a kept composition's new digest, so a want held at an earlier build gets today's config (issue 1945, ADR 0545) #45

Merged
jschoubben merged 1 commits from fix/1945-kept-compositions-follow-config into main 2026-10-25 18:38:03 +00:00
Member

Why

With the controller recomposing kept compositions on a config change (mesh-controller, same branch), a want the rules hold back at an earlier fingerprint kept Composed: before.Composed (wants.go:308), so the node never took the new digest and a rollback still applied the old config.

What

In the default branch, when the rules hold the newest fingerprint back and the want names an earlier fingerprint whose composition has a new digest, the want is written naming the new digest, through mustAsk (a record module's revision is asked first). A want held at the newest fingerprint still waits for the rules (ADR 0539 §5).

Tests

New cases inside TestARevisionAtTheSameFingerprintIsAWantByTheSameRules (no new test function); go test -race and go vet -tags integration pass. Recovery mode: no try; merge by hand, together with the mesh-controller member.

Issue: issue 1945, ADR 0545.

Reviewed-by: reviewer-kept2@shanks at 73779a5dd1

## Why With the controller recomposing kept compositions on a config change (mesh-controller, same branch), a want the rules hold back at an earlier fingerprint kept `Composed: before.Composed` (wants.go:308), so the node never took the new digest and a rollback still applied the old config. ## What In the default branch, when the rules hold the newest fingerprint back and the want names an earlier fingerprint whose composition has a new digest, the want is written naming the new digest, through mustAsk (a record module's revision is asked first). A want held at the newest fingerprint still waits for the rules (ADR 0539 §5). ## Tests New cases inside TestARevisionAtTheSameFingerprintIsAWantByTheSameRules (no new test function); go test -race and go vet -tags integration pass. Recovery mode: no try; merge by hand, together with the mesh-controller member. Issue: issue 1945, ADR 0545. Reviewed-by: reviewer-kept2@shanks at 73779a5dd180e6893d8abb2e9498a74ebb8214c0
mesh-tools added 1 commit 2026-10-25 18:37:20 +00:00
Let a want held back at an earlier fingerprint follow that fingerprint's new revision (issue 1945, ADR 0545)
mesh/delivery-group group fix/1945-kept-compositions-follow-config held: a member is held: novox/mesh-controller@ff3cc47027e0 (merged without a passing check: …
mesh/delivery held for a person: merged without a passing check: only a person decides what follows
mesh/check failed: integration: github.com/novox/mesh-controller/cmd/mesh-controller.TestTheDeclarationsStreamGoesOnceEveryNodeRunsTheNewEngine: with …
73779a5dd1
The controller now composes a module's kept compositions again when its config
changes, so going back keeps today's config. A want held back at an earlier
fingerprint kept the digest it was first written with, and the node applied
the old revision from the bucket's history: on g14 a rollback of mesh-build-go
put its capacity back to 0. The want now names the new digest, asked through
the record hold as any move of a record module is. A want held at F by the
rules still waits for them, as a new fingerprint does (ADR 0539 §5).
Research 072: milestone 2, the composer reacting to the change of an input.
Author
Member

Delivery novox/mesh-delivery@73779a5dd180 — held since 2026-10-25T18:38:06Z

Held for a person: merged without a passing check: only a person decides what follows — the merge reached the trunk without a passing check.

Source — source.main moved to novox/mesh-delivery@250364a57b. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Group fix/1945-kept-compositions-follow-config: novox/mesh-controller@ff3cc47027, novox/mesh-delivery@73779a5dd1

Transitions

  • 2026-10-25 18:37 (new) → proposed (announced): novox/mesh-delivery#45's head announced
  • 2026-10-25 18:38 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides what follows

The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-delivery@73779a5dd180` — **held** since 2026-10-25T18:38:06Z Held for a person: merged without a passing check: only a person decides what follows — the merge reached the trunk without a passing check. **Source** — source.main moved to novox/mesh-delivery@250364a57b4a. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/1945-kept-compositions-follow-config`: novox/mesh-controller@ff3cc47027e0, novox/mesh-delivery@73779a5dd180 **Transitions** - 2026-10-25 18:37 (new) → proposed (announced): novox/mesh-delivery#45's head announced - 2026-10-25 18:38 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides what follows The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
jschoubben merged commit 250364a57b into main 2026-10-25 18:38:03 +00:00
jschoubben deleted branch fix/1945-kept-compositions-follow-config 2026-10-25 18:38:04 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-delivery#45