mesh-grants places modules by the node-engines' haves while the assigner's assignments view does not answer (issue 1966, bootstrap recovery) #170

Merged
mesh-tools merged 3 commits from fix/1966-grants-places-by-haves into main 2026-11-07 22:05:11 +00:00
Member

Recovery fix under the instruction recovery-fixes-merge-and-tell: merged by the session, the operator told on Telegram.

Cause. The new grants part (682fabee) places modules only from the first view mesh-delivery-assigner.assignments. The assigner on ace is an older build that serves no first views (31 asks, 'no responders'), so the grants part placed nothing and wrote no grant, membership, bucket or user list: not for the builder b3f35873 on shanks, not for the new assigner d325caf4 that serves the view, not for a new grants build. The indexer's account also lost its right to serve the seat mesh-catalog, so seat-definitions went unanswered and the seat list stayed at the 10 bootstrapped seats. Evidence: issue 1966 notes 63, 64 (grants_first_views, grants_membership, nats_user_can, nats_users).

Change. When the assignments read fails and the haves read, each module is placed on the node whose node-engine have says it runs (not removed), and the bus node is found among them; the gap says so and the fallback ends once the view answers. Such a pass retires no account, deletes no withheld hearing, and seals no list that drops a user of the list in force or loaded (holdsBack). Bends ADR 0567 §9 (the assignments alone place modules) for the bootstrap, as the operator chose at 22:19 CET.

Quick vs thorough. Quick: this fallback. Thorough: the module graph's ordering edge (the assigner's views before the grants part that reads them) in the delivery plan; noted on issue 1966.

Tests. Table rows in grants_test.go (fallback places and grants, the indexer serves the seat's verbs with the gate closed, a removed have places nothing, an answering view places by the assignments); each fails on main or under the named mutation. go vet ./..., go vet -tags integration ./..., go test ./... pass in modules/mesh-grants. Reviewer: mesh-code-reviewer, round 2 approved.

Undo. Revert the merge commit.

Reviewed-by: review-1966@shanks at 69b6b89af5

https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5

Recovery fix under the instruction recovery-fixes-merge-and-tell: merged by the session, the operator told on Telegram. **Cause.** The new grants part (682fabee) places modules only from the first view `mesh-delivery-assigner.assignments`. The assigner on ace is an older build that serves no first views (31 asks, 'no responders'), so the grants part placed nothing and wrote no grant, membership, bucket or user list: not for the builder b3f35873 on shanks, not for the new assigner d325caf4 that serves the view, not for a new grants build. The indexer's account also lost its right to serve the seat `mesh-catalog`, so `seat-definitions` went unanswered and the seat list stayed at the 10 bootstrapped seats. Evidence: issue 1966 notes 63, 64 (grants_first_views, grants_membership, nats_user_can, nats_users). **Change.** When the assignments read fails and the haves read, each module is placed on the node whose node-engine have says it runs (not removed), and the bus node is found among them; the gap says so and the fallback ends once the view answers. Such a pass retires no account, deletes no withheld hearing, and seals no list that drops a user of the list in force or loaded (holdsBack). Bends ADR 0567 §9 (the assignments alone place modules) for the bootstrap, as the operator chose at 22:19 CET. **Quick vs thorough.** Quick: this fallback. Thorough: the module graph's ordering edge (the assigner's views before the grants part that reads them) in the delivery plan; noted on issue 1966. **Tests.** Table rows in grants_test.go (fallback places and grants, the indexer serves the seat's verbs with the gate closed, a removed have places nothing, an answering view places by the assignments); each fails on main or under the named mutation. go vet ./..., go vet -tags integration ./..., go test ./... pass in modules/mesh-grants. Reviewer: mesh-code-reviewer, round 2 approved. **Undo.** Revert the merge commit. Reviewed-by: review-1966@shanks at 69b6b89af57b1dde686846800d92ea6cffa41a7f https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
mesh-tools added 3 commits 2026-11-07 21:53:00 +00:00
Bootstrap only (issue 1966, notes 63 and 64; the operator chose it 2026-11-07 22:19,
bending ADR 0567 §9 for the bootstrap). An assigner that serves no first views answers
no assignments, so the grants part placed nothing and wrote no grant, membership or
bucket for anything, not even for the assigner that would serve the view.

When the assignments read fails and the haves read, each module is placed on the node
whose have says it runs (any phase but removed), the bus node found among them, and what
runs composed from each have's fingerprint instead of the assigner's wants. Said as a gap
naming the fallback, and kept as Inputs.ByHaves: such a pass retires no account and deletes
no withheld hearing (ReadFailures), and seals no list that drops a user of the list in
force or of the loaded list (holdsBack). Once the view answers, the fallback is unused.

Quick fix; the thorough one stays the module-graph edge (the assigner's views before the
grants part that reads them) in the delivery plan.

Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
Issue 1966: the seat list is read through mesh-catalog's seat-definitions, which got no
responders only because nothing was placed. A row shows that, the assignments view
unanswered, the indexer placed by its have (its real manifest) is composed to hear
mesh.seat.mesh-catalog.* and its membership serving seat-definitions is published, while
the seat list stays unread and other modules still wait for it.

Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
mesh-grants: the bootstrap row proves a removed have places nothing
mesh/delivery merged: source.main moved to novox/mesh-delivery@dcc48b82d0cb
69b6b89af5
Review round 1 of issue 1966's fix: the membership check alone did not pin the removed
phase; the row now reads the inputs and requires mod-y off b while its have is removed.

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

Delivery novox/mesh-delivery@69b6b89af57b — merged since 2026-11-07T22:05:14Z

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

Transitions

  • 2026-11-07 21:53 (new) → proposed (announced): novox/mesh-delivery#170's head announced
  • 2026-11-07 21:53 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-07 22:05 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@69b6b89af57b` — **merged** since 2026-11-07T22:05:14Z **Source** — source.main moved to novox/mesh-delivery@dcc48b82d0cb. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-11-07 21:53 (new) → proposed (announced): novox/mesh-delivery#170's head announced - 2026-11-07 21:53 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-07 22:05 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 dcc48b82d0 into main 2026-11-07 22:05:11 +00:00
mesh-tools deleted branch fix/1966-grants-places-by-haves 2026-11-07 22:05:12 +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#170