The node-engine serves its seat's verbs from the bootstrapped definition until it holds the seat list (issue 1966, recovery) #213

Merged
mesh-tools merged 1 commits from fix/1966-engine-seat-verbs-bootstrap into main 2026-11-08 17:34:52 +00:00
Member

Recovery fix under recovery-fixes-merge-and-tell, merged by the session without the Approve (the operator, 2026-11-08 ~18:30: deliver design 47 completely, no Telegram approvals or checks).

Cause. The link serves the seat node-engine when it opens (internal/link/run.go), before the node agent starts the seat list reader (cmd/mesh-host/nodeagent.go). Since ADR 0635 catalogue holds no seat until then, so ServeEngineSeat registered no verb: mesh_runtimes shows every new engine announcing 0 seat verbs, and manifest-reads, compose, composition and the hand acts answer "no responders" on novox, shanks and ace. The old assigner on ace therefore keeps ace's statement from 2026-11-07 23:20 (no seats) and holds its own successor 92ed4318.

Fix. ServedEngineSeat: the seat list's definition once held, the bootstrapped definition before (ADR 0636 §2). The only seat-list read at start in mesh-host; the composer waits for the list and the reads statement restates (#211). Quick and thorough fix are one.

Checked locally. go vet (and -tags integration), the whole unit suite; new unit test TestServedEngineSeatBeforeTheList (no list held / list held).

Undo. Revert this merge.

https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5

Recovery fix under recovery-fixes-merge-and-tell, merged by the session without the Approve (the operator, 2026-11-08 ~18:30: deliver design 47 completely, no Telegram approvals or checks). **Cause.** The link serves the seat node-engine when it opens (internal/link/run.go), before the node agent starts the seat list reader (cmd/mesh-host/nodeagent.go). Since ADR 0635 catalogue holds no seat until then, so ServeEngineSeat registered no verb: mesh_runtimes shows every new engine announcing 0 seat verbs, and manifest-reads, compose, composition and the hand acts answer "no responders" on novox, shanks and ace. The old assigner on ace therefore keeps ace's statement from 2026-11-07 23:20 (no seats) and holds its own successor 92ed4318. **Fix.** ServedEngineSeat: the seat list's definition once held, the bootstrapped definition before (ADR 0636 §2). The only seat-list read at start in mesh-host; the composer waits for the list and the reads statement restates (#211). Quick and thorough fix are one. **Checked locally.** go vet (and -tags integration), the whole unit suite; new unit test TestServedEngineSeatBeforeTheList (no list held / list held). **Undo.** Revert this merge. https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
mesh-tools added 1 commit 2026-11-08 17:34:44 +00:00
The node-engine serves its seat's verbs from the bootstrapped definition until it holds the seat list (issue 1966, recovery)
mesh/delivery merged: source.main moved to novox/mesh-host@87bdc95a3d65
mesh/check pass 7b42c94a4d78 on 87bdc95a3d65 | unit 1679 run, 333 kept, 31 skipped | integration 1692 run, 333 kept, 26 skipped | over bound: unit (sl…
7b42c94a4d
The link serves the seat node-engine when it opens, before the node agent
starts the reader of the seat list; since ADR 0635 catalogue holds no seat
until then, so the engine registered no verb at all. Nobody answered
manifest-reads, compose, composition or the hand acts on novox, shanks and
now ace, and the assigner kept ace's old statement, holding its own
successor on seats the new engine states.

Quick and thorough fix are one here: the only seat-list read at start is
this one (the composer waits for the list, the reads statement restates).

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

Delivery novox/mesh-host@7b42c94a4d78 — merged since 2026-11-08T17:34:54Z

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

Transitions

  • 2026-11-08 17:34 (new) → proposed (announced): novox/mesh-host#213's head announced
  • 2026-11-08 17:34 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-08 17:34 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-host@7b42c94a4d78` — **merged** since 2026-11-08T17:34:54Z **Source** — source.main moved to novox/mesh-host@87bdc95a3d65. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-11-08 17:34 (new) → proposed (announced): novox/mesh-host#213's head announced - 2026-11-08 17:34 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-08 17:34 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 87bdc95a3d into main 2026-11-08 17:34:52 +00:00
mesh-tools deleted branch fix/1966-engine-seat-verbs-bootstrap 2026-11-08 17:34:53 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-host#213