The seat-definition reader reads the format fields milestone 47/G adds #178

Merged
mesh-tools merged 4 commits from fix/seatdef-reader into main 2026-11-09 20:01:55 +00:00
Member

Issue 1966, a release before design 47's milestone G, on the operator's word (Telegram 2026-11-09 19:38 UTC, "Reader first").

G extends the seat-definition format: an event's dotted name and subject with parts, keep last per subject, an event's own stream with age and cap, and a seat's acting rules (acts). The running manifest validator refuses fields it does not know, so ADR 0633 §6's trunk case would fail G's check. This teaches go/seatdef and go/catalogue the fields first; the running indexer reads them once rebuilt on it. A definition without the new fields reads as before; each new field is validated.

Quick fix: G's check builds only at the group's heads (against ADR 0633 §6). Thorough fix (chosen): the reader learns the format ahead, so the trunk case judges G as the rules say. The kind (a format extension the running reader cannot read) was met before (finding F10).

Tests: rows in seatdef_test.go and catalogue/delivery_seat_test.go; all 53 of G's seat definitions parse; each check removed makes cases fail.

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

https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ

Issue 1966, a release before design 47's milestone G, on the operator's word (Telegram 2026-11-09 19:38 UTC, "Reader first"). G extends the seat-definition format: an event's dotted name and subject with parts, `keep` last per subject, an event's own stream with age and cap, and a seat's acting rules (`acts`). The running manifest validator refuses fields it does not know, so ADR 0633 §6's trunk case would fail G's check. This teaches go/seatdef and go/catalogue the fields first; the running indexer reads them once rebuilt on it. A definition without the new fields reads as before; each new field is validated. Quick fix: G's check builds only at the group's heads (against ADR 0633 §6). Thorough fix (chosen): the reader learns the format ahead, so the trunk case judges G as the rules say. The kind (a format extension the running reader cannot read) was met before (finding F10). Tests: rows in seatdef_test.go and catalogue/delivery_seat_test.go; all 53 of G's seat definitions parse; each check removed makes cases fail. Reviewed-by: mesh-code-reviewer@shanks at 9e61f75d3b46703998b255bc24c0ce9b9ad41d31 https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
mesh-tools added 4 commits 2026-11-09 19:47:05 +00:00
The seat git's events (pull.updated, forge.status) and design 47's events with parts
(owed.<repository>.<number>, running.<node>.<module>, milestone.<milestone>.asked) could not be
written in a definition: an event's name was one word and its subject the name. An event now takes
dotted words and an optional subject whose words are its name with parts among them; the seat list
says it by its subject with * for each part, so a consumer naming it is heard as the seat's.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The node-engine's running.<node>.<module> is kept last per subject with no age limit, which the shared events stream cannot say; the reader takes keep last-per-subject.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The seat mesh-delivery's and mesh-delivery-checker's owed events are kept on each owner's stream owed, 7 days and at
most 64 MiB (design 47, What the gate owes the forge); the format could only keep an event last per subject.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
W1.1: the seat-definition reader reads a seat's acting rules
mesh/check checking 9e61f75d3b46 on fb2c601303d2
mesh/delivery merged: source.main moved to novox/mesh-sdk@fb2c601303d2
9e61f75d3b
A definition carrying acts was refused as an unknown field by every reader (design 47, What ADR 0656 leaves to this
design). seatdef reads acts at either grain: each rule's step one of the seven, on every or a language, a bound as a
duration, one step on one language once; ActsOn and Wait give a rule's match and its bound, the step's default when it
names none. W1.2: the node-engine copy follows mesh-contracts a6c5eaa6 (its compose rule).

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

Delivery novox/mesh-sdk@9e61f75d3b46 — merged since 2026-11-09T20:01:56Z

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

Transitions

  • 2026-11-09 19:47 (new) → proposed (announced): novox/mesh-sdk#178's head announced
  • 2026-11-09 19:47 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-09 20:01 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-sdk@9e61f75d3b46` — **merged** since 2026-11-09T20:01:56Z **Source** — source.main moved to novox/mesh-sdk@fb2c601303d2. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-11-09 19:47 (new) → proposed (announced): novox/mesh-sdk#178's head announced - 2026-11-09 19:47 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-09 20:01 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 fb2c601303 into main 2026-11-09 20:01:55 +00:00
mesh-tools deleted branch fix/seatdef-reader 2026-11-09 20:01:55 +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-sdk#178