The registry recovery (issue 1966, notes 201 and 202), one delivery group of four on branch fix/1966-bindings-first-view: mesh-contracts, mesh-sdk, mesh-catalog, mesh-delivery.
Why: the grants part on the broker node missed the bus module's created for the distribution's holds, windows and mirrors bindings, so about 190 publishes since 2026-11-09 went unanswered. The grants part now takes a first view of every binding from the seat mesh-broker's list at each start, holds the seat's events unacknowledged until that answer (or its 2-minute bound, when it raises first-view-unanswered and releases them), and applies them in order after it; list, show and orphans answer each held entry's binding, with its types.
Tests: unit suites, go vet -tags integration and the touched packages' integration tests in all four (mesh-grants TestTheGrantsPartWhole 41 s, nats tools, the meshbroker contract test), at the reviewed heads. Review round 2 removed the hold, the "named since the ask" check and the pause cap in copies; each makes a test fail.
After delivery: mesh-grants.grants_membership for distribution on the broker node lists holds, windows and mirrors; then builder_publish_again per lost version, proven by oci-artifact-registry.versions.
The registry recovery (issue 1966, notes 201 and 202), one delivery group of four on branch fix/1966-bindings-first-view: mesh-contracts, mesh-sdk, mesh-catalog, mesh-delivery.
Why: the grants part on the broker node missed the bus module's `created` for the distribution's holds, windows and mirrors bindings, so about 190 publishes since 2026-11-09 went unanswered. The grants part now takes a first view of every binding from the seat mesh-broker's `list` at each start, holds the seat's events unacknowledged until that answer (or its 2-minute bound, when it raises `first-view-unanswered` and releases them), and applies them in order after it; `list`, `show` and `orphans` answer each held entry's binding, with its types.
Builds: design 25 bindings-first-view §1-§8 (hq 9ca4757; §2's `types` wording corrected in hq #545).
Tests: unit suites, go vet -tags integration and the touched packages' integration tests in all four (mesh-grants TestTheGrantsPartWhole 41 s, nats tools, the meshbroker contract test), at the reviewed heads. Review round 2 removed the hold, the "named since the ask" check and the pause cap in copies; each makes a test fail.
After delivery: mesh-grants.grants_membership for distribution on the broker node lists holds, windows and mirrors; then builder_publish_again per lost version, proven by oci-artifact-registry.versions.
Reviewed-by: mesh-code-reviewer@shanks at mesh-contracts 0167b24b9564df57e65cb6da81de905ebc908b54, mesh-sdk 0fe5b6a0e7e712b68e8154fcc26a3956cb395475, mesh-catalog ae056a44dd725867630d2e28f8886b5eaf90227a, mesh-delivery 8501968154b4721bc3d075c58068c5ceb25a8e6e
https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Held.binding is the entry's plan binding, the value its created and recreated
carry, present when the bus holds the entry's objects and absent on one it does
not (waiting, refused). Table rows in the reading verbs' test: the binding of a
held entry equals the one its created carries; a waiting entry has none.
Builds: design 25 bindings-first-view §2, §7 (hq d0760629, PR 543)
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Deliverynovox/mesh-catalog@ae056a44dd72 — merged since 2026-11-11T10:32:28Z
Source — source.main moved to novox/mesh-catalog@9dfb2eae0e. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
2026-11-11 10:27 (new) → proposed (announced): novox/mesh-catalog#656's head announced
2026-11-11 10:27 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-11-11 10:32 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-catalog@ae056a44dd72` — **merged** since 2026-11-11T10:32:28Z
**Source** — source.main moved to novox/mesh-catalog@9dfb2eae0eb3. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `fix/1966-bindings-first-view`: novox/mesh-catalog@ae056a44dd72, novox/mesh-contracts@0167b24b9564, novox/mesh-delivery@8501968154b4, novox/mesh-sdk@0fe5b6a0e7e7
**Transitions**
- 2026-11-11 10:27 (new) → proposed (announced): novox/mesh-catalog#656's head announced
- 2026-11-11 10:27 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-11-11 10:32 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.
The registry recovery (issue 1966, notes 201 and 202), one delivery group of four on branch fix/1966-bindings-first-view: mesh-contracts, mesh-sdk, mesh-catalog, mesh-delivery.
Why: the grants part on the broker node missed the bus module's
createdfor the distribution's holds, windows and mirrors bindings, so about 190 publishes since 2026-11-09 went unanswered. The grants part now takes a first view of every binding from the seat mesh-broker'slistat each start, holds the seat's events unacknowledged until that answer (or its 2-minute bound, when it raisesfirst-view-unansweredand releases them), and applies them in order after it;list,showandorphansanswer each held entry's binding, with its types.Builds: design 25 bindings-first-view §1-§8 (hq 9ca4757; §2's
typeswording corrected in hq #545).Tests: unit suites, go vet -tags integration and the touched packages' integration tests in all four (mesh-grants TestTheGrantsPartWhole 41 s, nats tools, the meshbroker contract test), at the reviewed heads. Review round 2 removed the hold, the "named since the ask" check and the pause cap in copies; each makes a test fail.
After delivery: mesh-grants.grants_membership for distribution on the broker node lists holds, windows and mirrors; then builder_publish_again per lost version, proven by oci-artifact-registry.versions.
Reviewed-by: mesh-code-reviewer@shanks at mesh-contracts 0167b24b9564df57e65cb6da81de905ebc908b54, mesh-sdk 0fe5b6a0e7e712b68e8154fcc26a3956cb395475, mesh-catalog
ae056a44dd, mesh-delivery 8501968154b4721bc3d075c58068c5ceb25a8e6ehttps://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Delivery
novox/mesh-catalog@ae056a44dd72— merged since 2026-11-11T10:32:28ZSource — source.main moved to novox/mesh-catalog@9dfb2eae0e. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/1966-bindings-first-view: novox/mesh-catalog@ae056a44dd, novox/mesh-contracts@0167b24b95, novox/mesh-delivery@8501968154, novox/mesh-sdk@0fe5b6a0e7Transitions
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.