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
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/check failed (2): mesh-delivery-checker: no published of the tagged version of go-sdk of mesh-delivery…; and 1 more | 9ab85ef92e6c on 875b4ee5ce38
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
Deliverynovox/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.
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`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Recovery group fix/1966-seat-reads-bootstrap (mesh-delivery, mesh-host, mesh-tools), issue 1966 notes 78-89.
Cause.
internal/link/record.gofroze 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
9ab85ef92ehttps://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
Delivery
novox/mesh-host@9ab85ef92e6c— merged since 2026-11-08T03:45:18ZSource — source.main moved to novox/mesh-host@875b4ee5ce. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/1966-seat-reads-bootstrap: novox/mesh-delivery@ee6fd92b4d, novox/mesh-host@9ab85ef92e, novox/mesh-tools@7572627affTransitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.