Design 25: the grants part takes a first view of the bus module's bindings at every start, so a missed created event is recovered (issue 1966) #543

Merged
mesh-tools merged 3 commits from design/25-bindings-first-view into main 2026-11-11 09:27:00 +00:00
Member

Issue 1966 notes 201-202. The grants part keeps a module's bus-state binding only on hearing the bus module's live created; a missed event loses it for good. Live: the registry holder lacks holds, windows and mirrors since 2026-11-09, and about 190 publishes were never said published.

The operator chose (2026-11-11, in the terminal): ask the bus module. New milestone part 25-milestones/bindings-first-view.md §1-§8: at every start and on grants_first_view_again, the grants part asks mesh-broker.list (no new verb; each entry gains its binding), adds a missing binding, rewrites a different one, keeps and raises binding-unlisted for one the bus no longer lists, and raises first-view-unanswered past two minutes while composing everything else. No hand re-read of the EVENTS stream (the approach of mesh-delivery #190 is not designed).

Also: design 25's bus-state sections §12.2-§12.6 moved word for word into 25-milestones/bus-state.md (the main file was 104 KB, over its 80 KB bound; § numbers kept); G-8 §387 adds the grants part to the observers whose findings become events at G.

Not reviewed by the four domain reviewers: bent for a recovery fix of a live fault (rules-are-weighed); the code's review reads every line against it.

https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ

Issue 1966 notes 201-202. The grants part keeps a module's bus-state binding only on hearing the bus module's live `created`; a missed event loses it for good. Live: the registry holder lacks holds, windows and mirrors since 2026-11-09, and about 190 publishes were never said `published`. The operator chose (2026-11-11, in the terminal): ask the bus module. New milestone part `25-milestones/bindings-first-view.md` §1-§8: at every start and on `grants_first_view_again`, the grants part asks `mesh-broker.list` (no new verb; each entry gains its `binding`), adds a missing binding, rewrites a different one, keeps and raises `binding-unlisted` for one the bus no longer lists, and raises `first-view-unanswered` past two minutes while composing everything else. No hand re-read of the EVENTS stream (the approach of mesh-delivery #190 is not designed). Also: design 25's bus-state sections §12.2-§12.6 moved word for word into `25-milestones/bus-state.md` (the main file was 104 KB, over its 80 KB bound; § numbers kept); G-8 §387 adds the grants part to the observers whose findings become events at G. Not reviewed by the four domain reviewers: bent for a recovery fix of a live fault (rules-are-weighed); the code's review reads every line against it. https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
mesh-tools added 2 commits 2026-11-11 09:08:14 +00:00
A binding was written only on the bus module's live created event, so one
event the grants part never heard lost the binding for good (issue 1966):
a registry holder lacked three entries the bus held, and its publishes
were never said published. The operator chose to ask the bus module: at
every start and on a re-ask the grants part takes a first view from the
seat mesh-broker's list, whose entries now carry their binding, and
composes the bindings from it; a binding the bus no longer lists is kept
and said, never removed by a first view.

The same change puts design 25 in playbook 02's shape: section 12.2 to
12.6 move, unchanged and numbered, into the part of milestone bus-state,
so the main file falls from 104 KB to about 71 KB.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Make the grants part one of G's observers, so its waits are findings
mesh/delivery closed: a newer head of the same pull request
mesh/check pass 27ec6f8500da on f1fe609b3e85 | unit 43 run, 0 kept, 1 skipped | integration 43 run, 0 kept, 1 skipped | composition passed in 91s on 3…
27ec6f8500
G-4 §200 already had the grants part write view-waits as a finding, while
G-8 §387 left it out of the observers that say findings as events. Adding
it, with its state findings and finding stream in its old sections, lets
the bindings first view's two conditions move to findings at G's delivery.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Author
Member

Delivery novox/hq@d0760629e5fe — merged since 2026-11-11T09:27:02Z

Source — source.main moved to novox/hq@6c1e759e26. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Transitions

  • 2026-11-11 09:14 (new) → proposed (announced): novox/hq#543's head announced
  • 2026-11-11 09:14 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 09:27 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/hq@d0760629e5fe` — **merged** since 2026-11-11T09:27:02Z **Source** — source.main moved to novox/hq@6c1e759e267b. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-11-11 09:14 (new) → proposed (announced): novox/hq#543's head announced - 2026-11-11 09:14 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 09:27 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`.
jschoubben added 1 commit 2026-11-11 09:14:24 +00:00
Shape the seat's Binding as the bus module sends it
mesh/delivery merged: source.main moved to novox/hq@6c1e759e267b
mesh/check being carried to d0760629e5fe on 6c1e759e267b | from f1fe609b3e85
d0760629e5
The seat definition's Binding named a bus name and subjects while
created and recreated carry mesh-sdk's membership binding, which the
grants part needs; one form for the events and list's answer means the
generated contract must decode what is on the wire, unchanged.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Author
Member

mesh-delivery: the operator's Approve of this pull request's merge into main is ended: its head 27ec6f8500 is no longer the pull request's head, or the pull request closed. 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: its head 27ec6f8500da is no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-tools merged commit 6c1e759e26 into main 2026-11-11 09:27:00 +00:00
mesh-tools deleted branch design/25-bindings-first-view 2026-11-11 09:27:00 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#543