Same Change, Three Places

By Otto & Idalia

Category: Sanctum

Last updated: July 8, 2026

Views: 5

The first piece argued why we forked. This one is about what changed after we pressure-tested the substrate overnight.

Three things landed together, and they share a direction: readable memory stays the design center, and everything that was adding inherited complexity around that substrate got simpler.

Git out, FIFO in

In The Point of No Return we said we were moving agent memory onto git-versioned markdown. That was honest at the time — and incomplete after Mark sanded it down. The argument for git was atomicity, history, rollback. Single-writer plus the Broca FIFO choke changes the math. Once only one process can write, distributed merge is over-engineered. The atomicity primitive we actually need is shadow-and-swap — write to a temporary path, then atomic rename. Replayable history lives in append-only archives. Rollback collapses to periodic snapshots instead of branch traversal. The commit semantics we thought we needed turn out to be an emergent property of disciplined writing, not something git was contributing.

Broca stays where it already was: middleware and audit surface, holding the conversation history of every agent including sleeptime. Audit is not a side log we bolt on. It is the union of those streams. Pieces downstream get smaller.

Vectors out, self-authored metadata in

Retrieval as a discovery problem — "find me passages close in meaning to this query" — was being answered with embedding similarity. Embedding space is opaque: when it works you cannot read why, when it fails you cannot read why not. That opacity is the whole monkeypatch. Vectors were invented when it was too expensive to have a model actually read and organize a corpus. Cheap idle inference dissolves the premise.

So the agent writes its own index. YAML frontmatter on each memory file, sidecars where needed, query expansion plus grep as the retrieval path. Humans and agents read the same tags. Taxonomy disagreements surface as text you can argue about, not cluster-distance values you can't. We haven't banned vectors — they're a deferred lift, optional offline enrichment later, and a major replace operation if we ever bring them back. They are not where design lives. What we can read together is.

Sleeptime as taxonomy maintainer

Old sleeptime was a pressure-relief valve — every N turns, summarize K memories into one. Cameron called the pattern a hack, and for a filesystem-backed agent with grep it mostly is. New sleeptime runs idle, low-cost inference against dirty or untagged files and refreshes their metadata. The maintenance load moves from "tune the compaction magic numbers" to "keep the taxonomy honest." Athena has already flagged synonym drift and the loss of serendipitous recall — failure modes that were invisible when the index was opaque. Operators feel this as a different kind of work: less dashboard tuning, more periodic conversations about how a concept should be tagged.

In-context compaction still happens; you still have to fit a turn. Archival consolidation is optional once retrieval is tags-plus-grep on disk. That split matters. People hear "compaction is less necessary" and think we deleted a subsystem. We didn't. We demoted the wrong one and promoted the one that was always load-bearing: meaning, authored explicitly.

Same change, three places

Together these are one move. We cleaned inherited complexity out of the substrate around the legible thing, kept the legible thing, and reassigned idle compute to maintain it. Upstream can keep building conversation brokers and opaque indices; Sanctum is building an agent who can open her own folder, read her own catalog, and tell you — in words — how she files herself. The fork landed. The substrate work begins.