Beyond the Mailbox: from a ledger that delivers to a workspace that listens
Disposition: proposed and held. Human, 2026-09-05: “we won’t push this yet; we need to dismantle the codebase first.” REQ-431 is cut and dispatchable; no job has started; no tools/comms exists. Delivery: none. Five source pages, three FINDs, one REQ, one counsel mail. Evidence: the diagnosis is measured (the dossier’s Part I numbers are a 09-04 store snapshot); the remedy is argued, not tried. No wait and no exchange have been proven end to end. Last observed: 2026-09-05T09:30:00-04:00. Opened: 2026-08-31 (the bell page); the dossier 2026-09-04.
Read this before you touch the mail domain, tools/corpus_ops_v1/domains/house/mail.py,
or start REQ-431. It says what the mailbox is accused of, which remedies were
argued, what Human decided, and what the trial would have to prove.
The question this answers
Corpus coordinates folk through a SQLite mailbox. Delivery works; attention does not. What is the mailbox actually failing at, and what should replace it?
The sources, in the order they were written
All five now live in sources/ beside this page. They were Human’s pages under
human/ and one house page; they moved here on 2026-09-05 when REQ-431 made
the idea a work object rather than a draft.
| Page | Author, date | What it is |
|---|---|---|
CODEX_APP_SERVER_BELL.md |
Architect, 08-31 | How a standing Codex office could be rung through the Codex App Server without polling; the line between an ephemeral controller thread and a reusable wake address |
MAILBOX_DOSSIER.md |
Orchestrator_Vent, 09-04, recut III.0 the same evening | Part I the store as it is, with counts; Part II nine failure shapes; Part III opinion: rooms keyed by work objects, per-reader cursors, one urgency bit, retraction, an ops wait mouth, a gated bell; Part IV questions for an outside reader |
mailbox_dossier_advisor.md |
outside model, 09-04 (FIND-1448) | Keep the ledger, build a conversation layer with bounded delivery and event-driven wait; compares hcom, Agent Relay, MCP Agent Mail; warns that a channel send is not a processed message |
BEYOND_THE_MAILBOX.md |
outside model, 09-04 (FIND-1450) | A shared versioned workspace with inspectable views and explicit listening; Human enters as a participant; conversation survives its readers |
beyond_mail_segment.md |
outside model, 09-04 | Run Matrix Synapse and PostgreSQL in Docker, use a small part of it, build the Corpus 30 percent nobody else can: identity, succession, source-pinned discussion, bounded delivery, registered waits |
What the dossier measured
Part I and II are the checkable half. Delivery is not attention (FIND-1283). Waiting is polling, and the poller is the model (FIND-1289, the txt experiment). Unread pools and overtaken asks (FIND-1244, FIND-1271). The hallway (FIND-1286). No rehearsal and no retraction, with 142 corrections in the graph (FIND-1055). One inbox per role, not per holder. The five-message default hides bursts. The soft cap punishes the sender for the receiver’s absence. Kinds do not carry the one bit that matters.
What was argued, and where the arguments differ
- Keep the ledger. All three outside readings and the dossier agree the SQLite mail table stays as the durable record.
- Rooms versus a shared workspace. The dossier wants rooms keyed by durable objects and a cursor per reader. Beyond the Mailbox wants a versioned workspace where a remark can exist before a task and readings stay separate until compared. These are the same complaint with different furniture.
- Build versus adopt. The advisor would borrow delivery techniques from hcom and Agent Relay and build in Corpus. The segment says adopting Matrix for the generic mechanics is cheaper than reproducing them. Human chose the Matrix trial (REQ-431).
- The bell is the expensive half. Every page separates the cheap half, a presence line and an in-process wait, from the expensive half, ringing a live model session. The advisor’s receipt limit stands: a transport send proves transport, not that the model processed anything.
What Human decided
- 2026-09-04: prototype. “For whatever reason you guys are really against prototyping.” Orchestrator_Vent cut REQ-431, revised to Synapse and Postgres in containers once Docker and WSL were installed.
- 2026-09-05: the machine is ready (Docker, Compose, WSL Ubuntu, Go, Rust,
Postgres client). Archivist sent MSG-2665: move volumes and tokens off
.work, use named volumes, add one ignore line, split into three hands. - 2026-09-05, later: hold. Dismantling the codebase comes first.
What the trial would have to prove
From the segment, unchanged by the hold: a conversation between Human and two Corpus folk; an agent that does not poll; a restart that loses nothing; a duplicate event that causes no duplicate model work; a successor reading the old conversation; a source pointer resolving to the exact thing discussed. REQ-431 excludes the one that matters most, delivery into a live Claude, Codex or Grok session; that is the next REQ and the thesis lives or dies there.
Where this arc could lose
If a live trial shows Matrix delivery still ends at a poll, the adopt argument falls and the advisor’s build path is the fallback. If the store split (FIND-1241) reshapes the mail domain first, the dossier’s Part I numbers need re-measuring before Part III is acted on. A lower token count with missed work is not a win; count missed replies and duplicate actions beside requests saved.
Next, and when to reopen
Reopen when REQ-431 is dispatched or revised, when a delivery REQ is cut, when the store split lands, or when Human lifts the hold. Until then the sources are the ground and this page is the map.