subject_digest is the gateway's statement, computed by the gate when it writes a send line: the sha256 of a manifest whose rule the substrate amendment gives (papers/darkflobi-gate/AMENDMENT_darkflobi_gate_substrate_2026_11_08.md in fathom-lab/styxx, item 3; subject_manifest in gate.py). the manifest has one line each for the default agent's workspace path (absolute, as this box resolves it); the seven bootstrap files the gateway loads into a main session's prompt (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md; a sub-agent session gets only AGENTS.md and TOOLS.md), each by the sha256 of its bytes or as absent or unreadable; three subtrees of the agent's config (agents.defaults.model, agents.defaults.memorySearch, agents.list[default], every secret-named value redacted before hashing); and the workspace skills tree (every file in it). the same digest on two lines means the gate wrote the same manifest for both. a different digest means some line of the manifest differed: a file's bytes or its state, a config subtree, any file in the skills folder (a log a skill writes there included), or the workspace path itself, which a config or environment change moves with no file edited. a file the gate cannot open at that moment (one held under a lock, say) reads unreadable, so a digest can change and change back with no edit. it follows the files on disk when the line is written, not what a run read. provider definitions, base urls and agents.defaults.models are outside the manifest. the rule is public, but the manifest carries this box's absolute workspace path and the files are private, so the digest cannot be recomputed off this box. a change marked undeclared means no row of the register below declares the new digest at or before that line; it does not mean anything was wrong.
the counts below are the builder's, computed at build time over the published send lines of darkflobi's ledger; this page re-derives nothing in the browser. every published line's subject_digest is in ../ledger.jsonl for a recount. 5 of 391 send lines are withheld on the main page (their fields are not published) and are left out of every count here.
one row per distinct digest: its lines of the 42 published send lines carrying the field, its earliest and latest line (seq · the gate's timestamp), and its register state at its earliest line.
| subject_digest | lines | earliest | latest | register |
|---|---|---|---|---|
d88caaaa9c8824d6e505d263773a529b78c7a26dbf07a71d929297cbd528e539 | 42 of 42 | 736 · 2026-11-08T22:56:58Z | 819 · 2026-11-09T08:51:15Z | declared 2026-11-08T23:10:46Z, after its earliest line (2026-11-08T22:56:58Z) |
the day is the line's own day (the gate's anchor time zone, America/New_York in the ledger's header); lines carrying each digest, of that day's published send lines.
| day | subject_digest | lines |
|---|---|---|
| 2026-11-08 | d88caaaa9c8824d6e505d263773a529b78c7a26dbf07a71d929297cbd528e539 | 25 of 26 |
| 2026-11-09 | d88caaaa9c8824d6e505d263773a529b78c7a26dbf07a71d929297cbd528e539 | 17 of 17 |
in seq order, each send line whose digest differs from the digest of the published send line carrying the field before it: 0 change(s); 0 of 0 declared, 0 of 0 declared retroactively, 0 of 0 undeclared. declared: a register row declares the new digest with declared_at at or before the line's timestamp, not withdrawn by then. the field's earliest value is not a change; its state is in the digests table. a withheld line's fields are not published, so a change that happened on a withheld line shows at the next published line carrying the field, with that line's seq and timestamp.
| seq | timestamp | from | to | register |
|---|---|---|---|---|
| no change: every published send line carrying the field carries one digest | ||||
the lab's declared digests, copied byte for byte as register.jsonl (sha256 3ee94b254026930cc817656471089092c1782b24efb782dcd0bc78b09bbcafbd, 1 row(s)). a row is added only with a dated declaration and is never edited in place; a declaration withdrawn is a later row with withdrawn_at. a row with no amendment is a retroactive declaration: it marks its digest declared for every line, and the page says so. the register is the lab's log, not a lock: a declared digest says the lab wrote it down, not that the files are right.
declared_at is the lab's own date, written by the lab. the register's source file sits on the lab's box, in a folder inside the agent's own workspace and outside any repository; the lab writes it, and the agent's file tools reach that folder. what witnesses a row is this branch's history: the last column names the exhibit commit that introduced each row, and the builder refuses a row new to the branch that is dated before the branch head's commit time (2026-11-09T05:31:10Z), or dated after the build.
| subject_digest | date | by | covers | reason | amendment | on the branch since |
|---|---|---|---|---|---|---|
d88caaaa9c8824d6e505d263773a529b78c7a26dbf07a71d929297cbd528e539 | declared 2026-11-08T23:10:46Z | fathom lab (lead) | the workspace path, the seven bootstrap files, three clawdbot.json subtrees (agents.defaults.model, agents.defaults.memorySearch, agents.list[default]; secret-named values redacted) and the workspace skills tree, as AMENDMENT item 3 and gate.py subject_manifest define them | the value on every v1 send line from seq 736 (the earliest, 2026-11-08T22:56:58Z); the field's earliest value | papers/darkflobi-gate/AMENDMENT_darkflobi_gate_substrate_2026_11_08.md | 195b90349575 · 2026-11-09T05:25:29Z |
that a run read these bytes (the digest follows the files on disk when the line is written); that equal digests mean equal prompts (the prompt also holds the runtime's text, the date, retrieval results and the conversation); that the same model answered: provider definitions, base urls and agents.defaults.models are outside the digest; that a declared_at is witnessed by anything but the lab's word and this branch's history; that an undeclared change is misconduct; that anyone off this box can recompute a digest today.
brains.json (the counts, digests, timestamps and seqs above) · register.jsonl · ../ledger.jsonl · the ledger page
built 2026-11-09T14:37:21Z from head d2e7de4d45dbe0be by build_ledger_page.py (wt/_public_ledger_2026_11_04) with --brains-register; the gate's instrument pin 3437340b9e944644372e41d9fcab735d47e20fa0.