The node-engine states the seats of the list it holds, and again on every change (issue 1966, recovery) #211

Merged
mesh-tools merged 1 commits from fix/1966-seat-reads-bootstrap into main 2026-11-08 03:45:15 +00:00
Member

Recovery group fix/1966-seat-reads-bootstrap (mesh-delivery, mesh-host, mesh-tools), issue 1966 notes 78-89.

Cause. internal/link/record.go froze the engine's reader capabilities with sync.OnceValue at its first call, at link open, before the seat list (even the bootstrapped seats) is loaded; since ADR 0635 the seat table is empty until UseSeats. So the engine states no seat names and never states them again (ADR 0618 §4 requires manifest-reads-changed when they change).

Change. Words and forms stay computed once; the seats come from catalogue.Seats(). Session.RestateReads rewrites the node record and says manifest-reads-changed when the statement changed; cmd/mesh-host/seatlist.go calls it after each UseSeats (at start, after the first read, on every change).

Evidence. Rows in TestTheNodeKeyCarriesTheNodesFacts; vet (both tags) and unit suites pass.

Undo. Revert this merge.

Reviewed-by: mesh-code-reviewer@shanks at 9ab85ef92e

https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5

Recovery group fix/1966-seat-reads-bootstrap (mesh-delivery, mesh-host, mesh-tools), issue 1966 notes 78-89. **Cause.** `internal/link/record.go` froze the engine's reader capabilities with sync.OnceValue at its first call, at link open, before the seat list (even the bootstrapped seats) is loaded; since ADR 0635 the seat table is empty until UseSeats. So the engine states no seat names and never states them again (ADR 0618 §4 requires manifest-reads-changed when they change). **Change.** Words and forms stay computed once; the seats come from catalogue.Seats(). Session.RestateReads rewrites the node record and says manifest-reads-changed when the statement changed; cmd/mesh-host/seatlist.go calls it after each UseSeats (at start, after the first read, on every change). **Evidence.** Rows in TestTheNodeKeyCarriesTheNodesFacts; vet (both tags) and unit suites pass. **Undo.** Revert this merge. Reviewed-by: mesh-code-reviewer@shanks at 9ab85ef92e6c046f53cf2063ab492fcf7085641c https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
mesh-tools added 1 commit 2026-11-08 02:55:45 +00:00
The node-engine states the seats of the seat list it holds, again at each change (issue 1966)
mesh/delivery merged: source.main moved to novox/mesh-host@875b4ee5ce38
mesh/delivery-group group fix/1966-seat-reads-bootstrap merged: every member is merged
mesh/check failed (2): mesh-delivery-checker: no published of the tagged version of go-sdk of mesh-delivery…; and 1 more | 9ab85ef92e6c on 875b4ee5ce38
9ab85ef92e
manifestReads froze the statement at its first call, before the engine gave
catalogue even its bootstrapped seats (ADR 0635 empties mesh-sdk's table
until the list is read), so ace's engine stated no seat and its own next
build, naming mesh-catalog, was held on it.

The words and forms stay the build's, computed once; the seats are those of
the list held now. The reader of the seat list restates after each change:
the node record carries the new statement at once and the node seat's event
manifest-reads-changed says it (ADR 0618 §4); an unchanged statement writes
and says nothing; the verb manifest-reads answers when it was made.

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

Delivery novox/mesh-host@9ab85ef92e6c — merged since 2026-11-08T03:45:18Z

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

Group fix/1966-seat-reads-bootstrap: novox/mesh-delivery@ee6fd92b4d, novox/mesh-host@9ab85ef92e, novox/mesh-tools@7572627aff

  • composed together: fail — the checker's verdict at the members' heads (cb2ce203891b): mesh-delivery-checker

Transitions

  • 2026-11-08 02:55 (new) → proposed (announced): novox/mesh-host#211's head announced
  • 2026-11-08 02:55 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 03:45 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@9ab85ef92e6c` — **merged** since 2026-11-08T03:45:18Z **Source** — source.main moved to novox/mesh-host@875b4ee5ce38. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/1966-seat-reads-bootstrap`: novox/mesh-delivery@ee6fd92b4d1a, novox/mesh-host@9ab85ef92e6c, novox/mesh-tools@7572627affde - composed together: fail — the checker's verdict at the members' heads (cb2ce203891b): mesh-delivery-checker **Transitions** - 2026-11-08 02:55 (new) → proposed (announced): novox/mesh-host#211's head announced - 2026-11-08 02:55 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 03:45 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 875b4ee5ce into main 2026-11-08 03:45:15 +00:00
mesh-tools deleted branch fix/1966-seat-reads-bootstrap 2026-11-08 03:45:16 +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#211