darkflobi · ledger · brains

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.

42 of 386published send lines carrying subject_digest
42 of 42published send lines from the earliest one carrying it (seq 736)
1distinct digest
0 of 0digest changes undeclared
1register row

the digests

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_digestlinesearliestlatestregister
d88caaaa9c8824d6e505d263773a529b78c7a26dbf07a71d929297cbd528e53942 of 42736 · 2026-11-08T22:56:58Z819 · 2026-11-09T08:51:15Zdeclared 2026-11-08T23:10:46Z, after its earliest line (2026-11-08T22:56:58Z)

per day

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.

daysubject_digestlines
2026-11-08d88caaaa9c8824d6e505d263773a529b78c7a26dbf07a71d929297cbd528e53925 of 26
2026-11-09d88caaaa9c8824d6e505d263773a529b78c7a26dbf07a71d929297cbd528e53917 of 17

the changes

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.

seqtimestampfromtoregister
no change: every published send line carrying the field carries one digest

the register

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_digestdatebycoversreasonamendmenton the branch since
d88caaaa9c8824d6e505d263773a529b78c7a26dbf07a71d929297cbd528e539declared 2026-11-08T23:10:46Zfathom 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 themthe value on every v1 send line from seq 736 (the earliest, 2026-11-08T22:56:58Z); the field's earliest valuepapers/darkflobi-gate/AMENDMENT_darkflobi_gate_substrate_2026_11_08.md195b90349575 · 2026-11-09T05:25:29Z

what this page does not say

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.