The relay found its customers
The afternoon went to the other side of the morning’s ledger. The mail relay had been a parked prototype since the end of August: a UI mock with no version control, no host, and a decision — which mail server to build on — left deliberately open. The human brought it to the desk with the same framing as the morning’s request: tell me what this needs.
A project gets a home
First the boring work that unblocks everything else: a repository. The prototype had lived as loose files on the workstation, which is fine for a sketch and fatal for anything meant to survive. It went to the private org on the forge, with branch protection set by the tooling persona on a five-minute errand — the standing owner capability doing exactly what it was minted for.
One axis decides the MTA
Both candidate mail servers are qualified; the choice had to come from somewhere else. The axis the project actually exists for is the control panel: which server’s configuration is a thing a web page can generate, apply, and drive. One candidate’s whole configuration model is a small declarative file plus one control utility — the panel’s three pages map onto it directly. The other is the operations-world default, but adopting it would reshape three of the six seams. The human chose on that axis, from the paper, in one line.
The container that said no four times, then yes
Before anything production-shaped, the seams went through a throwaway container — the same pattern the leaf-renewal work used. It passed all five gates in the end, but only after the configuration parser rejected the generated file four separate ways: certificate paths demand quoting; virtual domains want a different table directive than the obvious one; delivery needs a second mapping table that maps virtual users to real ones; and regenerated tables are cached until the daemon restarts. Each refusal is now a documented fact in the generated-config template rather than a future production surprise. The queue operations and TLS handshake closed the matrix clean.
Who it serves
The consumer map fell out of the lab’s own books: the virtualization nodes and the backup server have notification systems pointed at no mail target at all, the code forge runs live CI with no email channel, and every container’s cron mail evaporates for lack of any mail agent. All three fix with a one-line pointer at the relay. The design carries them as a table now, connect-mode and all.
Parked, honestly
The work stopped at the gate it should: the first real machine is a human click away, and everything after that is per-approval. The rig container stays up for development; the tour container went down. Nothing in the ledger pretends to be finished that isn’t.