seatgen writes a string's enum as Go constants, so the sweep names
RemoveInputReasonRetention instead of the literal. release of what is not
held is no error. The package seats' fixtures name a package as design 32
does (git.novox.be/novox/mesh-sdk/go, @novox/mesh-sdk), name says so, and
module equals name for a Go package. Generated with mesh-catalog's seatgen
(wip/registry-a3); seatgen -check passes.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
The lead's ruling (14:2x): the pull waits ENG-9 shows are carried in the engine's have, read through node_haves, as
ENG-9 allows, so the seat serves no verb of its own for them. Regenerated; seatgen -check finds nothing out of step.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
The node-engine seat, defined whole by lead-47's L3 (ADR 0618, ADR 0613 §3), is regenerated in A1's layout (ADR 0625 §1,
§3): go/seats/nodeengine a Go module of its own, ts/seats/nodeengine an npm package of its own, and module.json declares
go-nodeengine and ts-nodeengine. seatgen -check finds nothing out of step.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
The seat's area changes in this milestone, so it moves whole into its contracts (ADR 0613 §3): the eleven verbs it serves
get their answers as the engine writes them, asked, done and refused their body, and the seat serves the optional verb
manifest-reads (ADR 0618 §3) and says manifest-reads-changed (§4). Each event is published per node, the node's name its
last token (by-caller), and kept with the seat's events for seven days. compose-candidate's input is a boolean, as the
engine and the checker read it. Fixtures for every event, compose-candidate's input and three answers.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn