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
At each start and on grants_first_view_again with state bindings, the part asks
list, writes the bindings the answer carries that it holds none of or another of,
keeps and raises binding-unlisted for those the answer omits, never writes over
an event heard since the ask, holds the seat's events until the answer or the
bound, and raises first-view-unanswered naming mesh-broker and list past two
minutes while composing as before. grants_first_views shows the first view
beside the others. Cases are rows and subtests of the existing tests.
Builds: design 25 bindings-first-view §1, §3, §4, §5, §6, §7, §8 (hq d0760629, PR 543)
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The process hands an event of the seat mesh-broker to BindingsView.Hold, which
applies and acknowledges it after the answer or past the bound, so a restart
finds it delivered again (one delivered again while held keeps its place by its
stream sequence). Unit rows: the answer's bucket differs from the held created's
and the held event's stands. Whole test: an answer that lists a binding dropped
since its ask does not write it back (fails without the check). Neutral caller
name in the by-hand asks.
Builds: design 25 bindings-first-view §3, §4, §8 (hq d0760629, PR 543)
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
No pause between two failed asks runs past the bound (two minutes): the ask at the bound raises
first-view-unanswered and releases the held events, well inside the events consumer's five deliveries
of 30 s. An answer's binding is taken as it lists it, with no fallback to an event's types (§4).
Checks: the unit start row requires the raise at exactly the bound; the whole test says the created
before the bound and requires the condition raised when it is applied (fails without the process's
hold), and waits on the kept first-views status for the held answer instead of a sleep.
Builds: design 25 bindings-first-view §3, §4, §5, §8 (hq d0760629, PR 543)
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Deliverynovox/mesh-delivery@8501968154b4 — merged since 2026-11-11T10:32:36Z
Source — source.main moved to novox/mesh-delivery@8f5cbce468. 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-delivery#203'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-delivery@8501968154b4` — **merged** since 2026-11-11T10:32:36Z
**Source** — source.main moved to novox/mesh-delivery@8f5cbce46845. 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-delivery#203'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`.
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 ae056a44dd725867630d2e28f8886b5eaf90227a, mesh-delivery
8501968154https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Delivery
novox/mesh-delivery@8501968154b4— merged since 2026-11-11T10:32:36ZSource — source.main moved to novox/mesh-delivery@8f5cbce468. 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.