Delivery records are true at the source: the indexer records what it took in, the view derives what reached the machines, a settle verb for held deliveries (issue 1280)
#80
Merged
mesh-toolsmerged 11 commits from fix/delivery-records-true into main2026-10-26 21:48:51 +00:00
Issue 1280, ADR 0556: a delivery reads as delivered only when the wants it moved are settled on the machines, derived by the view, and the gate keeps no delivery state after the merge.
indexer: writes taken.<repository> (the newest merge it took in). taken is bound with AwaitBucket, as main binds placement (issue 1790's rule): while the bucket is not on the bus the merge's modules are still taken in and the key is skipped, said in the log, and the repository's next merge writes it.
view: view_reach and the reached head of each repository, capped at its taken merge, with the words why a merge is not yet on the machines.
teller: reads what the view derives.
Merged with main up to 4b36cc2 (#79, L2): 11 conflicts in the indexer and the view, each two additions at one spot, resolved keeping both sides (taken beside placement); reviewed file by file.
Member of the delivery group fix/delivery-records-true (mesh-sdk, mesh-delivery, mesh-catalog); pins mesh-sdk 68d65e6 exactly.
Follow-up written on issue 1280, not in this change: a skipped taken key is written only at the repository's next merge (fill taken at start, or write on the bucket's appearance).
Tests: unit suites and go vet -tags integration pass in all 9 modules; one table row added, no new test function.
Reviewed-by: review-delivered-b@shanks at c12b870104
Issue 1280, ADR 0556: a delivery reads as delivered only when the wants it moved are settled on the machines, derived by the view, and the gate keeps no delivery state after the merge.
- indexer: writes `taken.<repository>` (the newest merge it took in). `taken` is bound with AwaitBucket, as main binds `placement` (issue 1790's rule): while the bucket is not on the bus the merge's modules are still taken in and the key is skipped, said in the log, and the repository's next merge writes it.
- view: `view_reach` and the reached head of each repository, capped at its taken merge, with the words why a merge is not yet on the machines.
- teller: reads what the view derives.
- Merged with main up to 4b36cc2 (#79, L2): 11 conflicts in the indexer and the view, each two additions at one spot, resolved keeping both sides (taken beside placement); reviewed file by file.
Member of the delivery group fix/delivery-records-true (mesh-sdk, mesh-delivery, mesh-catalog); pins mesh-sdk 68d65e6 exactly.
Follow-up written on issue 1280, not in this change: a skipped taken key is written only at the repository's next merge (fill taken at start, or write on the bucket's appearance).
Tests: unit suites and `go vet -tags integration` pass in all 9 modules; one table row added, no new test function.
Reviewed-by: review-delivered-b@shanks at c12b870104e811f6debf478dd2b0841968dc99f6
Deliverynovox/mesh-delivery@c12b870104e8 — merged since 2026-10-26T21:48:54Z
Source — source.main moved to novox/mesh-delivery@4af36c69a7. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
2026-10-26 21:30 (new) → proposed (announced): novox/mesh-delivery#80's head announced
2026-10-26 21:30 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
2026-10-26 21:48 ready → merged (merged): on the trunk its modules follow: merged there
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@c12b870104e8` — **merged** since 2026-10-26T21:48:54Z
**Source** — source.main moved to novox/mesh-delivery@4af36c69a761. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `fix/delivery-records-true`: novox/mesh-catalog@c1cd8461bc6e, novox/mesh-delivery@c12b870104e8, novox/mesh-sdk@68d65e6bbf61
**Transitions**
- 2026-10-26 21:30 (new) → proposed (announced): novox/mesh-delivery#80's head announced
- 2026-10-26 21:30 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
- 2026-10-26 21:48 ready → merged (merged): on the trunk its modules follow: merged there
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: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
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.
Issue 1280, ADR 0556: a delivery reads as delivered only when the wants it moved are settled on the machines, derived by the view, and the gate keeps no delivery state after the merge.
taken.<repository>(the newest merge it took in).takenis bound with AwaitBucket, as main bindsplacement(issue 1790's rule): while the bucket is not on the bus the merge's modules are still taken in and the key is skipped, said in the log, and the repository's next merge writes it.view_reachand the reached head of each repository, capped at its taken merge, with the words why a merge is not yet on the machines.4b36cc2(#79, L2): 11 conflicts in the indexer and the view, each two additions at one spot, resolved keeping both sides (taken beside placement); reviewed file by file.Member of the delivery group fix/delivery-records-true (mesh-sdk, mesh-delivery, mesh-catalog); pins mesh-sdk 68d65e6 exactly.
Follow-up written on issue 1280, not in this change: a skipped taken key is written only at the repository's next merge (fill taken at start, or write on the bucket's appearance).
Tests: unit suites and
go vet -tags integrationpass in all 9 modules; one table row added, no new test function.Reviewed-by: review-delivered-b@shanks at
c12b870104Delivery
novox/mesh-delivery@c12b870104e8— merged since 2026-10-26T21:48:54ZSource — source.main moved to novox/mesh-delivery@4af36c69a7. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/delivery-records-true: novox/mesh-catalog@c1cd8461bc, novox/mesh-delivery@c12b870104, novox/mesh-sdk@68d65e6bbfTransitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.