decided already names ask, outcome refused, words and at; the record gains at beside state refused and answer.
Generated code waits for K21.
Builds: design 47 G §570, §638
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
mesh-sdk's writer is the one place a finding is written; seatgen -check is clean for health-and-repair but for the
generated code K21 writes.
Builds: design 47 G §461, §503
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
attempt-changed.<condition>.<attempt>, kept last per subject, 7 days and 16 MiB, its body the attempt's value whole with
until, or removed. Generated code waits for K21.
Builds: design 47 G §541, §665
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
defs.Wait has the fields of a wait (owner, step compose or kept-build, node, on, bound, since, clock-from, words, reason)
and, in the have, ask-at and act; wait-held.<node>.<module> and wait-ended.<node>.<module> are kept last per subject on
the stream running is kept on; the have's value gains wait, waits stays. Generated code waits for K21.
Builds: design 47 G §498, §499, §541, §556, §560, §629
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
capabilities-changed and its body go, the one event of a node's stated capabilities is manifest-reads-changed, which
already carries why. Generated code waits for K21.
Builds: design 47 G §590
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
owner and waiting-on carry the pattern of the three forms (session who@node, a seat's name, forge:<account>) in the layout
and the state value, and the fixtures read two forms. mesh-sdk's writer is what refuses another. Generated code waits for K21.
Builds: design 47 G §678, §540, §451
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
operator-channel's notify takes every-channel, which the router sends on every channel's send, as a break-glass
act is announced; the teller tells widens, recovery-merged and forge-made through it. A fixture reads the input.
Generated code waits for K21.
Builds: design 47 G §514
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
FindingsStated gains kinds, the finding kinds the stating bundle owns; a statement deletes only keys of those kinds
and one with none covers every kind, as before. A body of bodies yields its type alone, so no fixture reads it here:
mesh-sdk's writer is what reads and tests it. Generated code waits for K21.
Builds: design 47 G §580
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The seat gains item-started and item-ended on <event>.<node>.<module>.<item>, kept last per subject for 7 days,
each with at, and item-ended with outcome (done, failed or put-off), the restore's act it gave way to and an
error, so the recovery module and the backup holder each read the other's start and never overlap. The seat is
of the seat-list grain: nothing is generated and its fixtures are not read, so mesh-sdk's definition reader and
its bootstrapped copy of this file are what read it.
Builds: design 47 G §554, §555, §563, §523
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The node-engine seat's Running gains healthy, a nullable boolean so that a false survives the wire and a running
said by a node-engine of before G, with none, is told apart and reads as healthy; stopped is said only when the
have no longer holds the module. Two fixtures read healthy true and false; the one without it still decodes.
Generated code waits for K21.
Builds: design 47 G §520
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The definition drops held-by-the-engine, so one module's claim of the seat is read as any other. It gains
first-views (read; any person and the healers) and first-view-again (act; the operator and the healers), not
optional, their inputs and answers those of the view's two tools mesh-sdk's runtime serves; a fixture reads
first-view-again's input. Generated code waits for K21.
Builds: design 47 G §508, §422, §204, §400
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The format's accepted kind gains stream (check or delivery), so the build seats' step on both streams and run on
check validate against it; the class description says a verb that names no class takes read, on main or added in
G, and that nothing refuses it.
Builds: design 47 G §455, §456
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
G section 555: the seat node-backup gains nothing for kept data on the bus; its now and restore keep the class act (§405).
Builds: design 47 G §555, §405
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The conflicts in mesh-broker's seat.json and fixtures took origin/main's Binding (list, show and orphans answer each
binding) and the objects field of C8; C8's snapshot-kept, restore-kept, KeptPoint and Aside are not carried over as G
section 555 moves them to the seat mesh-recovery, which mesh-broker does not gain. The generated Go and TypeScript of
mesh-broker are written again by seatgen.
Builds: design 47 G §399, §513, §555
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Regenerated by seatgen at mesh-catalog b5aebbbe (bodies types, design 47 G section 452, 454); the eight hand-kept
tsconfig.json files are deleted (the generator writes none, section 341); health-and-repair/module.json names the
artifact go-meshwatchdogsclient its client check asks for.
Builds: design 47 G §439, §452, §454, §341
Written by seatgen at c62650e4 (GEN3) with mesh-sdk b19fc7fa (reader release): the seat mesh-grants new,
every TypeScript contract as index.js with index.d.ts, events with subject and stream. mesh-watchdogs gains
its family, which a definition with events needs. Written with the reader as it is: the field needs-approval
(node-login-shell) and the section bodies (mesh-conditions) are unknown to it, so they were laid aside for
the run; nothing generated carries either.
Builds: design 47 G §339, §341, §261, §389
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
create and apply are of class act; recreate and drop of class warrant; all four called by module:nats.
seat-list and seat-list-again name persons, sessions and healers as SeatListCallers does.
Builds: design 47 G §336, §388, §391, §392, §393
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The event findings-asked (ask, at, by, module; 7 days, 16 MiB), resync with an optional module and callers
operator, healers and sessions, and the section bodies: the finding with its layout whole, finding-written,
finding-cleared and findings-stated. The state findings is its owner's alone. Whether findings-views is a
state of this definition waits on a question.
Builds: design 47 G §383, §384, §390, §434, §437, §439
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
asks gains the state held-back and the field held-since (no behind); the seat gains the verb ask-again,
of class act, the operator's and the healers'.
Builds: design 47 G §40, §83, §394, §403; design 46 §6
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Rewritten from the earlier branch to the final lines: the earlier verbs waits and release go (the part's
tools stay its own), grants-for is added, wait events carry clock-from, filling and room carry a store's fill
as mesh-wants' do. The generated Go and TypeScript wait on the generator.
Builds: design 47 Where it goes (grants part), G §264, §266, §331, §401, §441
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Both verbs are of class act, not optional, and called by holder:node-backup@same-node alone; restore-kept
takes aside-only and discard-aside; the Binding gains objects. The verbs' sibling mesh-broker callers text
(create, apply, recreate, drop) is left as it is: a question is open.
Builds: design 47 G §58, §59, §337, §399, §400, §405, §406
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
now, restore and aside are of class act; discard-aside is the operator's alone; ended and restored carry the
node, module and kept data in their subject and the module, kept data, form, fingerprint and outcome.
Builds: design 47 G §296, §297, §302, §405
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Rewritten from the earlier branch to the final lines: keep as an object, stopped on running, process-builds a
read for persons, sessions and healers and not optional, the compose rule with the step's default bound.
The eleven verbs' callers (§393) wait on a question; the generated Go and TypeScript wait on the generator.
Builds: design 47 G §177, §199, §203, §260, §261, §266, §396, §404, §440
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
mesh-broker list, show, check, orphans and mesh-config renames name invokers; mesh-vault retire names
seat:mesh-config; node-engine seat-list names persons and healers, seat-list-again the operator and the
healers. mesh-broker create, apply, recreate and drop keep their text: the design names no form for them.
Builds: design 47 G §336, §392, §204
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
A verb gains class (read, act, warrant), callers as a list of the forms of §336/§392 and needs-approval; an
accepted kind gains callers; an event gains subject and keep as an object (max-age-days, max-mib,
last-per-subject), a dot only without keep; the seat gains acts (steps incl. pipeline, on every|language|
kind:image, bound) and bodies.
Builds: design 47 G §68, §203, §336, §338, §391, §392, §396, §397, §439; design 46 milestone 7 §2
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Client.KeyPrefix is put before the keys the client writes and reads in its own State; empty for every
asker today, so today's keys stay; Where still reads the router's record under <module>.<id>.
Builds: design 46 milestone 7 §10, §22 (design 47 G, approval mark)
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The seat's Binding takes the fields the events carry and the membership holds
(local, storage, template, stream, subject, bucket, object-store, history,
state, indexes, snapshot, types): one form in the events, in list, show and
orphans. Held gains binding, present on an entry the bus holds. Definition,
fixture and generated Go and TypeScript contract.
Builds: design 25 bindings-first-view §2, §7 (hq d0760629, PR 543)
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
mesh/check checking c9ffed70421a on f5d76e84ca71 | novox/mesh-contracts#4 in group fix/1966-engine-reads-asked-again
An event of manifest-reads-changed heard while an ask of the same node ran was dropped
without a line, so a restated engine could stay read at its first statement (ace,
2026-11-10 07:36). Every reader goes through Keeper.AskNode, so the assigner, the
builder and the indexer are fixed at once (ADR 0668 §4: the caller hears it and calls
again; ADR 0634 §1: the seat's client).
- AskNode: an ask while one runs is asked once more after it, one follow-up however
many came, said in one line (1966/AC170-1, AC170-3). The asks of one node so run one
after another, and take keeps the last answer, as before (no rule on the engine's
clock: review round 1).
- Statement.EventAt (event-at): when the node's event was last heard, read by the
parts' engine-reads tools; forgotten with the node's key.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
mesh/check checking bb16f99e2d5e on 7fbfd77a76cb | novox/mesh-contracts#3 in group fix/1966-call-made-once
The assigner, the builder and the indexer share it instead of two copies; it names no other seat's client (the client check), so each caller writes its finding in mesh-conditions' layout through Raise, stamped with ReadsCalls' clock.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The builder and the indexer ask whether a node's machine is heard through this verb instead of reading the watchman's state; regenerated with seatgen, whose -check names nothing new.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
A part whose node answers nothing waited out busretry.Bound (30 s) before it acted on the node's record: Once asks the verb once, and its fault is taken at once.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
A manifest-reads-changed said before the part's consumer existed was never heard (note 155), and the
statement taken while an engine restarted stood. AtBind is registered on the hub's OnBound.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ