HoldersIn is the one holder function a part gives seatlist.Part.Holders: the modules holding a seat on
any node, from the seat-holders view as the part last heard it (a views follower's or a watched state's
values), so a callers entry `seat:<seat>` is resolved with no call per checked call.
Builds: design 47 G A-295, A-210
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
A tool's callers list named modules ("node-tools", "mesh-healers"). A-295: an entry `seat:<seat>`
allows a module caller whose module holds that seat, as a holder function the part is given answers
it from what it last heard of the assigner's seat-holders view, so no call is made per check.
VerbCallers.AllowedWith and seatlist.RefusalWith/ToolsWith take the function; Allowed, Refusal and
Tools keep their form (no seat entry allows anyone without one); a seatlist.Part is given it by
Holders.
Builds: design 47 G A-210, A-295
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
Conn.CallChunks subscribes to the call's chunks before it asks the verb, hands the verb's answer to an accept hook, then
receives the chunks the answer counts, in order, acknowledging each, into a writer; CallFile answers the whole body as
the member file, the form a bundle's seat call answers. The checker, the indexer, the assigner and the recovery keeper
read a step's answer kept as an object through it.
Builds: design 47 G A-291, A-290, A-254
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The indexer holds an artifact's named paths, and the checker packs the SDK for a
group only when its merge changes one of them.
Builds: design 47 G A-285
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The definition of a seat on the list a part follows, read through the part's reader at each call: none until the list
is read, none for a seat the list does not hold. Every holder passes it instead of writing its own.
Builds: design 47 G A-278, A-186, A-179
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
A part handed the binding finding-events publishes on mesh.bus.<module>.finding-events.<event>.<node>, a part with none on
the old stream; the stdio writer reads the event of either form.
Builds: design 47 G A-274, A-13, A-30, §529
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
A process publishes on mesh.seat.<seat>.accept.<kind>.<caller>, its module the caller, as Emit publishes an event, so the
gate's channel over a connection can ask and cancel through the seat operator-channel.
Builds: design 47 G §677, §700; lead answers A-272, A-273
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
seatdef.Resolve, which the seat generator and every reader of a definition go
through, makes each marked verb by-caller and adds the event gated-ended
(gated-ended.<caller>.<call>, kept last per subject one day) and the verb
approvals (class read); the seat files stay as written. approvals is the
gate's verb, so CanHold asks no holder to name it.
Builds: design 47 G §677, §697; lead answers A-264, A-265, A-266
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
A waiting call's ask's 60 minutes are a key with its own time to live in the
holder's state approvals, its end heard as the bus's marker, so no clock waits
in the process; a call whose key ended while the holder was away is judged at
its start. A process holder's act names no node, so two instances raise one ask.
Builds: design 47 G §677, lead answer A-255
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
Against an embedded bus, a module's process calls a holder's marked verb through
process.Conn's call: asked, approved, run once, recorded through
mesh-hand-acts.warranted and its answer {answer, approval} heard on its own
gated-ended; a declined call runs nothing; a marked verb served through no gate,
or a gate whose state approvals is not on the bus, fails closed.
Builds: design 47 G §677, §700, lead answers A-158, A-224, A-244
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
conn.AnswerSeat holds a verb its seat definition marks needs-approval through the
holder's gate (process.Conn.Gate, go/approval held.go): waiting calls call.<id>,
act.<escaped digest> by create or compare-and-set, claimed.<ask id> by create; a
call carrying the x-wait: held header answered {asked, call} in the reply's field
held; on the router's record read under the module's name, the oldest waiting call
run once within 30 minutes of the Approve and recorded through
mesh-hand-acts.warranted, the others asked anew; declined unasked for 10 minutes;
expired and refused ends; every end said on gated-ended.<caller>.<call>; the read
at start; gate-unanswered past the ask's 60 minutes; the verb approvals. A call
without the header takes ADR 0286 §37's path. process.Conn's seat call sends the
header on every seat call and, answered held, waits on its own gated-ended.
Builds: design 47 G §677, §700, lead answers A-158, A-186, A-209, A-219, A-224, A-228, A-244
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
A holder sends a verb's answer file with SeatChunks.Send: it subscribes to the verb's acknowledgements, answers each as a
request and publishes each chunk only after the one before is acknowledged. The bootstrap, seatlisttest and captured copies of
the mesh-catalog seat are the contracts' file at the input verb with chunks.
Builds: design 47 G §712, §681, A-237, A-139, A-249
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
At every start an ordered consumer, made for the one read, hands every message from the first, then the
durable is followed, so a part that keeps what an age-kept seat event said (the assigner's version-released
and version-delivered) knows it again after a restart.
Builds: design 47 G A-233, A-189, A-181
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
catalogue.QueueInvoke reads seat:<seat>.accept.<queue>, the form an asker names
the queue it asks in its manifest's invokes; the validator, the indexer's served-verb
edge and the grants part read it here.
Builds: design 47 G §544, §601, A-231
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
A bundle's state call mesh/state.info is served by the tool runner (node-tools launch.go:425, runtime.go:1093); the module library had no wrapper for it.
Builds: design 47 G §623, §366, A-214
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The tool runner's invokes hold * beside {verb, fields} entries; Invokes
keeps every verb, so none of its readers changes, and InvokeFields maps a
verb to the fields it names, written back in the long form.
Builds: design 47 G §621, §617
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
AdoptEvent hands each message of the event to its handler beside the adopted views, and makes the
subscription at once when no view made it, so the runner hears a run's candidate revision even when it
follows no watched branch.
Builds: design 47 G A-185, A-199, A-193, §532
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The tool runner's invokes hold * beside {verb, fields} entries; Invokes
keeps every verb, so none of its readers changes, and InvokeFields maps a
verb to the fields it names, written back in the long form.
Builds: design 47 G §621, §617
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
A stream entry takes `last-per-subject`, and process.Account.HearStream reads a module's own stream kept so whole through an ordered
consumer before following its durable, as HearSeatEvents does for a seat's event.
Builds: design 47 G §703, §556, A-181
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
A message delivered again in the same run keeps its kept time; after a restart, which kept none, it takes the time
the bus stored it, never later than its first delivery, so a message that never settles grows old and the runner's
health check fires for it.
Builds: design 47 G A-187, §76
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
conn.AnswerSeat takes the seat's definition from its caller (the seat list the process follows) and,
before a handler runs, refuses an unproven caller, and every caller while the definition is unread,
names no such verb or opens it to none; a proven caller is among them, since the grants part composes
the call subject only for the effective callers. Every caller of AnswerSeat passes the definition.
Builds: design 47 G §610; lead answers A-165, A-179, A-186
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
seatdef.DefaultCallers follows §610: a read keeps invokers, persons and sessions; act, warrant and
accept take operator, sessions and invokers. The class table's rows say so.
Builds: design 47 G §610; lead answer A-179
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
views.HeldWriter gains Pend and Judged: a key pended is named, with its since and bound, in every
statement until the part judges it, a key pended again keeping its first since. The tool runner pends
an acted, unrecorded ask's call-unanswered at its start until its warranted is made again.
Builds: design 46 7-approval-mark §16; design 47 G §384
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
catalogue.Verb gains NeedsApproval, copied by SeatsFromDefinitions from the
definition's verb, so the manifest validator and every reader of the seat
list read a verb's mark from one place. Compiled only, never read from a
manifest's own verb.
Builds: design 46 7-approval-mark §2, §4; lead answer A-177
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
process.ConsumerLedger writes stream, name, acknowledged sequence, pending, last event applied with its at and the delivery of
the oldest unacknowledged message into one key per consumer, after each message delivered and applied, so a tool reads them.
Builds: design 47 G §579, A-166, A-176
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h