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.
## 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/delivery-group group fix/1945-kept-compositions-follow-config held: a member is held: novox/mesh-controller@ff3cc47027e0 (merged without a passing check: …
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.
Deliverynovox/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.
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`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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
73779a5dd1Delivery
novox/mesh-delivery@73779a5dd180— held since 2026-10-25T18:38:06ZHeld 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 fromsource.main, the wants and the haves.Group
fix/1945-kept-compositions-follow-config: novox/mesh-controller@ff3cc47027, novox/mesh-delivery@73779a5dd1Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.