The assigner's and the grants part's seat-list again answers the operator's sessions (issue 1966; group fix/1966-seat-list-unread) #197

Merged
mesh-tools merged 1 commits from fix/1966-seat-list-unread into main 2026-11-10 00:44:38 +00:00
Member

Issue 1966 (notes 147-149): after a restart, a node-engine whose first read of the seat list met "no responders" composed on its bootstrapped list for good. On ace that held about 60 modules from 22:49 to 23:21 UTC on 2026-11-09 under a misleading "no artifact store", raised no condition, and its recovery verb answered no session. Met twice (2026-11-08, 2026-11-09), so the thorough fix.

Group fix/1966-seat-list-unread, one check, members pushed together: mesh-sdk (merge first; a build edge for the others), mesh-host, mesh-catalog, mesh-delivery.

  • S1 mesh-host: the node-engine's ask keeps the bus's "no responders" in its error.
  • S2 mesh-sdk: the seat list's reader asks again (busretry) while its ask reached no one (ADR 0636 §1, §4).
  • S3 mesh-host: seat-list and seat-list-again answer any person, node-tools (every console call is proved as node-tools, issue 627) and mesh-healers, as the node-engine seat's definition says.
  • S4 mesh-host: while the list is unread, a module whose seats are not all bootstrapped is held before its build is read, with a reason naming the bootstrapped seats; a pass refused whole begins with that line.
  • S5 mesh-host: the integration test of the node's first read is extended: a holder that answers "no responders" then serves is read by the same reader, with no event or hand act.
  • S6 mesh-catalog: the condition keeper reads the node-engine's findings, so ADR 0636 §1's condition is raised.
  • S7 mesh-catalog (claude-code), mesh-delivery (assigner, grants): node-tools on each seat-list-again caller list.

Quick fix: restart the node-engine once (done 2026-11-09 23:21 UTC on the operator's yes, hand act act-1794266688172849851-1). Thorough fix: this change, chosen because the kind was met twice, hid its cause behind another part's name and stopped every delivery to the machine.

Tests: every change is a row or subtest of an existing test and fails without its change; no repository's test count rises (mesh-host and mesh-delivery stay over their budgets, unchanged).

Manifest validator: the verdict on mesh-catalog modules/mesh-conditions/module.json (new read mesh-host.findings) is unproved until this pull request's check runs. A local re-creation against mesh-sdk's test copy of the seats accepted it in both the change and trunk cases, with no verdict differing; that is not the validator's live verdict.

Prepare and rulings: hq .work/1966-engine-seat-list/prepare.md.

Reviewed-by: mesh-code-reviewer@shanks (2 rounds) at mesh-sdk 2f156e7f30508e9aaf06322b305036645c3ed266, mesh-host 5c353cfc7bf08d1503d5bd6ce28b6d704df51bab, mesh-catalog c39503e3227c0d6ac653d7d48b7103fd7c5fcad0, mesh-delivery b1343147e8
Pushed-by: lead-47@shanks

https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ

Issue 1966 (notes 147-149): after a restart, a node-engine whose first read of the seat list met "no responders" composed on its bootstrapped list for good. On ace that held about 60 modules from 22:49 to 23:21 UTC on 2026-11-09 under a misleading "no artifact store", raised no condition, and its recovery verb answered no session. Met twice (2026-11-08, 2026-11-09), so the thorough fix. Group fix/1966-seat-list-unread, one check, members pushed together: mesh-sdk (merge first; a build edge for the others), mesh-host, mesh-catalog, mesh-delivery. - S1 mesh-host: the node-engine's ask keeps the bus's "no responders" in its error. - S2 mesh-sdk: the seat list's reader asks again (busretry) while its ask reached no one (ADR 0636 §1, §4). - S3 mesh-host: seat-list and seat-list-again answer any person, node-tools (every console call is proved as node-tools, issue 627) and mesh-healers, as the node-engine seat's definition says. - S4 mesh-host: while the list is unread, a module whose seats are not all bootstrapped is held before its build is read, with a reason naming the bootstrapped seats; a pass refused whole begins with that line. - S5 mesh-host: the integration test of the node's first read is extended: a holder that answers "no responders" then serves is read by the same reader, with no event or hand act. - S6 mesh-catalog: the condition keeper reads the node-engine's findings, so ADR 0636 §1's condition is raised. - S7 mesh-catalog (claude-code), mesh-delivery (assigner, grants): node-tools on each seat-list-again caller list. Quick fix: restart the node-engine once (done 2026-11-09 23:21 UTC on the operator's yes, hand act act-1794266688172849851-1). Thorough fix: this change, chosen because the kind was met twice, hid its cause behind another part's name and stopped every delivery to the machine. Tests: every change is a row or subtest of an existing test and fails without its change; no repository's test count rises (mesh-host and mesh-delivery stay over their budgets, unchanged). Manifest validator: the verdict on mesh-catalog modules/mesh-conditions/module.json (new read mesh-host.findings) is unproved until this pull request's check runs. A local re-creation against mesh-sdk's test copy of the seats accepted it in both the change and trunk cases, with no verdict differing; that is not the validator's live verdict. Prepare and rulings: hq .work/1966-engine-seat-list/prepare.md. Reviewed-by: mesh-code-reviewer@shanks (2 rounds) at mesh-sdk 2f156e7f30508e9aaf06322b305036645c3ed266, mesh-host 5c353cfc7bf08d1503d5bd6ce28b6d704df51bab, mesh-catalog c39503e3227c0d6ac653d7d48b7103fd7c5fcad0, mesh-delivery b1343147e80f846b889467143f4ae145e4b682f7 Pushed-by: lead-47@shanks https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
mesh-tools added 1 commit 2026-11-10 00:21:24 +00:00
S7: the assigner's and the grants part's seat-list again answers a proved operator's session
mesh/delivery merged: source.main moved to novox/mesh-delivery@8d9683d844ec
mesh/delivery-group group fix/1966-seat-list-unread merged: every member is merged
mesh/check checking b1343147e80f on 8d9683d844ec | novox/mesh-delivery#197 in group fix/1966-seat-list-unread
b1343147e8
Their seat_list_again answered person.<name> and the healers, but every call
through the mesh MCP server is proved as its machine's tool runner (issue
627), so no operator's session could ask it; node-tools now stands for that
session, the kind met a second time in the node-engine (issue 1966). The
assigner's silent stand-in keeps the bus's retry bound short, since the
seat list's reader now asks again while its ask reached no one.

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

Delivery novox/mesh-delivery@b1343147e80f — merged since 2026-11-10T00:44:39Z

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

Group fix/1966-seat-list-unread: novox/mesh-catalog@c39503e322, novox/mesh-delivery@b1343147e8, novox/mesh-host@5c353cfc7b, novox/mesh-sdk@2f156e7f30

Transitions

  • 2026-11-10 00:21 (new) → proposed (announced): novox/mesh-delivery#197's head announced
  • 2026-11-10 00:21 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-10 00:44 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@b1343147e80f` — **merged** since 2026-11-10T00:44:39Z **Source** — source.main moved to novox/mesh-delivery@8d9683d844ec. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/1966-seat-list-unread`: novox/mesh-catalog@c39503e3227c, novox/mesh-delivery@b1343147e80f, novox/mesh-host@5c353cfc7bf0, novox/mesh-sdk@2f156e7f3050 **Transitions** - 2026-11-10 00:21 (new) → proposed (announced): novox/mesh-delivery#197's head announced - 2026-11-10 00:21 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-10 00:44 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 8d9683d844 into main 2026-11-10 00:44:38 +00:00
mesh-tools deleted branch fix/1966-seat-list-unread 2026-11-10 00:44:38 +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#197