Registry recovery: the grants part takes a first view of every binding (issue 1966) #203

Merged
mesh-tools merged 3 commits from fix/1966-bindings-first-view into main 2026-11-11 10:32:35 +00:00
Member

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 8501968154

https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ

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
mesh-tools added 3 commits 2026-11-11 10:27:29 +00:00
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
Raise and release the bindings' first view at the bound itself, so held events never reach dead letters
mesh/delivery merged: source.main moved to novox/mesh-delivery@8f5cbce46845
mesh/check checking 8501968154b4 on 8f5cbce46845 | novox/mesh-delivery#203 in group fix/1966-bindings-first-view
mesh/delivery-group group fix/1966-bindings-first-view merged: every member is merged
8501968154
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
Author
Member

Delivery novox/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.

Group fix/1966-bindings-first-view: novox/mesh-catalog@ae056a44dd, novox/mesh-contracts@0167b24b95, novox/mesh-delivery@8501968154, novox/mesh-sdk@0fe5b6a0e7

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.

<!-- 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`.
mesh-tools merged commit 8f5cbce468 into main 2026-11-11 10:32:35 +00:00
mesh-tools deleted branch fix/1966-bindings-first-view 2026-11-11 10:32:35 +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#203