Fragment 3 · Wave 4
Wave 4 · The work and the assessment
One fact at the door — the person's words, at the Cell's level. The Cell works, its result is marked for root and assessed through the world, and the machine stops: the next act is a person's.
In this wave, in parts
152A 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
- #25return listener
- #26return doer
- #27the return address
- end of the log
The runtime What before after a wave is settling no yes The person gives the Cell its material — their words, at the Cell's level — 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)
- #28–#31The work inside the Cell
- #32–#35The assessment
199The wave ends — the Cell waitsSETTLING · 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
- #28the person's words
- #29readiness
- #30the private result
- #31the result, marked
- #32readiness
- #33a request: assess
- #34assessment proposed
- #35the Cell assessed
- end of the log
The runtime What before after a wave is settling yes no The machine is quiet but not finished: a Cell ready for review waits for a person, and nothing the machine can do will move it. A stand-in's 0.9 says only that a result exists.
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 The Cell assessed and ready for review. Nothing moves until the person decides.