Fragment 3 · Wave 3
Wave 3 · The return, declared
The slot's doer was born with no place for a Cell's return, and a description is never edited. So the act sows a figure that will gather the return — now, before the Cell has done anything.
In this wave
136A new wave beginsSETTLING · enter-settle
a wave is settlingengine: at the endmembrane: at the end
The log - #0a listener
- #1a doer
- #2listener: the charter
- #3doer: the author
- #4listener: charter seen
- #5listener: blueprint seen
- #6doer: the planner
- #7listener: assess · charter
- #8listener: assess · result
- #9doer: the evaluator
- #10the charter wanted
- #11the blueprint
- #12readiness
- #13readiness
- #14a request: a charter
- #15the charter proposed
- #16the charter defined
- #17readiness
- #18readiness
- #19a request: a Cell
- #20the seed
- #21the Cell is open
- #22inner listener
- #23inner doer
- #24the Cell's context
- end of the log
The runtime What before after a wave is settling no yes The act comes back to the door with three more records — the way the Cell's answer will return — so a new wave starts.
Where it happens
markSettling()Vol. 02 §4.6 · Vol. 02 §4.7Marks the start and the end of a wave. The runtime settles one wave at a time.
- Specification
- Vol. 02 §4.6 · Vol. 02 §4.7
- Code
markSettling()incore/registers/mark-settling.ts, line 16: the runtime notes whether a wave is settling- Journal
SETTLING · enter-settle· by runtime- Picture
- a wave is settling: no → yes
core/registers/mark-settling.ts· build 043cc8b// SETTLING latch (Vol. 02 §4.6): one settling wave at a time — a second// concurrent settle is a caller error, not a queue. Ephemeral stratum: the// latch never survives into a snapshot; extraction asserts it clear.// Entering a wave also rewinds the discharge slot sequence: slot ids are// wave-local (the table is drained between waves and ids never reach the// log), which keeps the journal byte-identical across a snapshot/restore —// unlike INTENT.CTR, which the spec pins as never-reset (Vol. 02 §4.7).import type { RegisterFile } from "./register-file";import { recordTransition } from "./record-transition";export function markSettling(file: RegisterFile, settling: boolean): void {if (settling && file.ephemeral.settling) {throw new Error("A wave is already settling; the runtime handles one wave at a time.");}file.ephemeral.settling = settling;↑ the runtime notes whether a wave is settlingif (settling) file.ephemeral.nextDischargeId = 0;recordTransition(file, "runtime", "SETTLING", settling ? "enter-settle" : "leave-settle");↑ the change is written into the journal}
AGPL-3.0-onlyThe Lab's demonstration environment, as this fragment ran it (build 043cc8b). The code may change, and may differ from the code of a working machine.
Nest VM core, incubated in the CoAgnes garden · build 043cc8b (2026-09-21) · this file last changed in f36e70d (2026-08-18)
- #25 · the return listener
- #26 · the return doer
- #27 · the return is declared
151The wave endsSETTLING · leave-settle
quietengine: at the endmembrane: at the end
The log - #0a listener
- #1a doer
- #2listener: the charter
- #3doer: the author
- #4listener: charter seen
- #5listener: blueprint seen
- #6doer: the planner
- #7listener: assess · charter
- #8listener: assess · result
- #9doer: the evaluator
- #10the charter wanted
- #11the blueprint
- #12readiness
- #13readiness
- #14a request: a charter
- #15the charter proposed
- #16the charter defined
- #17readiness
- #18readiness
- #19a request: a Cell
- #20the seed
- #21the Cell is open
- #22inner listener
- #23inner doer
- #24the Cell's context
- #25return listener
- #26return doer
- #27the return address
- end of the log
The runtime What before after a wave is settling yes no The wave ends with the return prepared and nothing yet to return. The person's next act happens inside the Cell.
Where it happens
markSettling()Vol. 02 §4.6 · Vol. 02 §4.7Marks the start and the end of a wave. The runtime settles one wave at a time.
- Specification
- Vol. 02 §4.6 · Vol. 02 §4.7
- Code
markSettling()incore/registers/mark-settling.ts, line 16: the runtime notes whether a wave is settling- Journal
SETTLING · leave-settle· by runtime- Picture
- a wave is settling: yes → no
core/registers/mark-settling.ts· build 043cc8b// SETTLING latch (Vol. 02 §4.6): one settling wave at a time — a second// concurrent settle is a caller error, not a queue. Ephemeral stratum: the// latch never survives into a snapshot; extraction asserts it clear.// Entering a wave also rewinds the discharge slot sequence: slot ids are// wave-local (the table is drained between waves and ids never reach the// log), which keeps the journal byte-identical across a snapshot/restore —// unlike INTENT.CTR, which the spec pins as never-reset (Vol. 02 §4.7).import type { RegisterFile } from "./register-file";import { recordTransition } from "./record-transition";export function markSettling(file: RegisterFile, settling: boolean): void {if (settling && file.ephemeral.settling) {throw new Error("A wave is already settling; the runtime handles one wave at a time.");}file.ephemeral.settling = settling;↑ the runtime notes whether a wave is settlingif (settling) file.ephemeral.nextDischargeId = 0;recordTransition(file, "runtime", "SETTLING", settling ? "enter-settle" : "leave-settle");↑ the change is written into the journal}
AGPL-3.0-onlyThe Lab's demonstration environment, as this fragment ran it (build 043cc8b). The code may change, and may differ from the code of a working machine.
Nest VM core, incubated in the CoAgnes garden · build 043cc8b (2026-09-21) · this file last changed in f36e70d (2026-08-18)
At the end of the wave A return listener holding the address and waiting for the Cell's answer; a doer ready to carry it back.