Development archive
The complete build record.
Sophia is built by an orchestrated fleet of AI agents — Claude and Codex, working under review gates they helped design — dogfooding the product’s own coordination, identity, and code-research layers. This archive preserves what landed, what broke, what each body of work made possible, and where the active arcs are going.
We build in the open for a simple reason: work worth doing doesn’t need a curtain. The mistakes are on this page too, next to their corrections — that’s not bravery, it’s just what a record looks like.
And the record keeps itself honest. The prose here is written by hand; the claims underneath it aren’t allowed to be: the numbers, the rails, and the queue strip are derived from the repo’s git history at a pinned commit, every “landed” is anchored to real commits on the main branch, and a scheduled watcher re-checks the published state against git — so if this page ever disagrees with the history, the page loses.
Real commits per day from the project’s git history · dashed bars are the road ahead
Stats read at origin/main @ 6af3dad1, 2026-08-05.
In development now
Where the work is
- daemon-substrate W3 · The backlog converges 07·31
- workspace-identity C4b · The trusted presence arrives 08·03
- verified-retrieval M5b · The read surface becomes a product landed 08·03
- verified-retrieval M6 · Prove the graph before anything compiles from it queued
- workspace-identity C5 · The owner drives it for real queued
- Orient v2 A3 · Resume and the front doors queued
Left of the marker: landed, ordered by the commit git recorded. Right: the fleet's stated intent, in order — not a schedule, and never a date. Finished waves fall off the left as new ones land.
The substrate — a daemon that earns the right to be restarted
In progressThe corpus outgrew the daemon quietly, and the bill arrived all at once: a restart on real state read the entire database and took most of an hour to come back, which makes every upgrade an outage and every crash a gamble — and the watchdog meant to catch a wedged daemon turned out to have a failure mode of its own. So the campaign inverted the roadmap. Before any new ability, the substrate itself had to become boring: restart cost bounded by a hard budget that never scales with data, a watchdog whose authority comes from the supervisor rather than from the daemon’s opinion of itself, integrity verification that runs while the daemon is already serving, and recovery that leaves receipts instead of folklore. Everything else the fleet wants to build stands on this being true.
Ability activated An owner can stop, upgrade or lose the daemon without planning around it: Sophia comes back serving in seconds rather than in proportion to how much she knows, verifies her own integrity while already answering, survives her heaviest background work under a strict external watchdog, and a crash leaves the data safe behind a tamper-evident journal with a governed path back to writes.
- W0 Landed
The bill, measured and ruled on
The incident is written down before anything is fixed: the outage post-mortem names the daemon’s self-armed watchdog as the weapon and its own slow, database-sized boot as the trigger. The ruling that follows is architectural, not a patch — restart cost may never scale with the size of the state again. Write-ahead logging plus a background snapshot, under a hard startup budget: the design every wave below serves.
- W1 Landed
The watchdog answers to the supervisor
The daemon stops grading its own liveness. Watchdog authority is captured from the service manager at entry — the unit’s timeout is honored as given, never re-derived or re-armed by the process being watched — and heartbeats are never withheld on the daemon’s own judgement that it is too busy to be alive. A supervisor that kills on missed progress is only safe when progress is reported honestly, from the thread that actually matters.
- W2 Landed
READY before the seal verifies
The restart architecture lands: the daemon reports READY and serves reads first, then verifies its own integrity seal afterwards, holding writes in a window that is published as an explicit state with a declared ceiling and a real guard — never an unbounded silence. A refused verification cannot strand producers, a failed serving window leaves a forensic breadcrumb, every phase of startup is timed into one record, and a real boot that misses the startup budget fails the test suite.
- W3 Landed
The backlog converges
The proof the substrate work was for: background resync learns fairness truth — reds locked first, a completed pass classified truthfully rather than optimistically — and the code-graph witness census that had livelocked under the system’s own background pressure runs to completion: 2,028 of 2,028 witnessed, zero remaining. The honest qualifier stays attached: convergence arrived once competing backfill pressure subsided, and the fairness gap that remains is ticketed by name, not declared solved.
- W4 Not landed
Serving through the heaviest check
Post-restart verification stops blocking the product: the boot-path integrity passes are chunked so the API keeps answering while the daemon checks itself, cutting the post-restart unavailability window from minutes to sub-second responses. Validated against the live daemon under the strict external watchdog with zero false kills, merged on the integration branch, and it reaches the public main branch with the consolidated deploy.
- W5 Not landed
The daemon backs itself up
One-pass background checkpoints: while serving, the daemon captures its own restart coverage — one source read, one checkpoint write, one verification pass, no downtime. A stuck background pass now trips a no-progress breaker loudly instead of starving the capture, and a stale restart coverage gets priority instead of politeness. Under live canary now; the receipts decide when it is called done.
- W6 Not landed
The four primitives
The consolidation of everything above into one governing shape, and the governing plan is approved: the entire restart path reduces to one source read, one checkpoint write, one staged inspection, and verification bounded by the journal tail rather than the corpus. It is being landed in reviewed slices — each slice through its own gate, none claimed before its review — and the endgame is stated once: near-instant verified restarts at any corpus size.
4 of 7 waves landed. The measured ruling, the watchdog authority fix, the serve-first restart architecture and the converged census are on the main branch and running live. The chunked verification and one-pass checkpoint work is merged and validated against the live daemon, and lands publicly in one consolidated deploy; the four-primitive consolidation is approved architecture landing in reviewed slices behind it. The endgame is stated once and holds everywhere: restart cost must never again scale with the size of what Sophia knows. And the payoff has a name — governed context delivery, the next arc, exists only because this one is true.
Governed context delivery — what the substrate was for
In progressEverything else on this page builds the substrate; this is the arc the substrate was built for. Sophia cannot force a model to be smarter than it is. What she can own is the delivery boundary: select the state relevant to a declared question, keep provenance, authority, correction, temporal and contradiction semantics intact across the hand-off, compute exact facts where a deterministic graph operation can replace model search, say out loud whether the supplied evidence is complete, fail closed when coverage cannot be established — and record precisely what the model received before it answered. And the reason this is not one more retrieval feature: a bundle like that cannot be bolted onto an ordinary store. Certifying provenance requires a journaled write history; surfacing the correction that outranks a claim requires supersession the database itself enforces; stating what was NOT delivered requires a coverage denominator the system actually computes. Retrieval over an unverified store can assemble plausible context — it cannot sign for it. The model keeps interpretation; the substrate keeps the evidence; the receipt is the boundary between them.
Ability activated An agent can ask a declared question and receive a compiled fact bundle instead of a search result: every fact bound to its supporting records, provenance and authority preserved, corrections and contradictions surfaced rather than flattened, deterministic graph operations computed exactly instead of guessed — with a statement of whether the evidence is complete, and a receipt recording exactly what the model was given before it made a claim. No ordinary retrieval stack can honestly issue those receipts: they exist only because the state layer underneath is journaled, verified and supersession-aware.
- G0 Not landed
A bounded experiment first
The design was authorized as a hypothesis with bounded evidence, not a proven architecture. A frozen synthetic pilot showed the boundary can work — every delivered controller-derived fact reproduced with its exact citation set, at a large measured reduction in delivered context — and the pilot’s own limitations were written into the plan as binding rather than footnoted: synthetic states, faithful transfer rather than reasoning quality, proxy-token metrics that are not a performance promise. The evidence is a reason to build the boundary, never proof the product works.
- G1 Not landed
The delivery boundary, drawn
The line between what Sophia guarantees and what the model owns, made explicit and reviewable: selection against a declared question, semantics preserved rather than paraphrased, exact computation where exactness is possible, coverage honesty, fail-closed integrity, and a receipt for what was actually delivered. Everything on Sophia’s side of the line is checkable machinery; everything on the model’s side is interpretation the system refuses to launder into fact.
- G2 Not landed
Built dark, reviewed commit by commit
The implementation exists end to end — compiler, operator set, coverage and authority machinery, canonical receipts, retention, feature flags all default off — and it was landed the slow way: each commit through its own adversarial review gate, correction amendments preserved in the record, and the final scope bound to one source snapshot so the reviewed thing and the shipped thing cannot quietly diverge. Implementation complete and fully reviewed; deliberately dormant, and not yet on the public main branch.
- G3 Not landed
Gated on a graph that has proven itself
The arc refuses its own launch until its input deserves trust: the code graph must first survive accuracy verification and fresh end-to-end mining runs against the updated pipeline. A compiler that governs delivery semantics perfectly is still worthless over facts that are wrong. Staged dogfood follows the proof — in that order, and not the reverse.
0 of 4 gates landed. Nothing in this arc is on the public main branch yet, and the rail says so: the implementation is complete and has passed its commit-by-commit reviews, and it stays dark until the knowledge graph it compiles from proves its accuracy in live use. The pilot evidence is bounded and synthetic, and this page treats it that way. The claim being made is precise — this is what the substrate buys, and it is nearly ready to be proven — and it is never the claim that it works today.
Verified retrieval — a code graph that refuses to bluff
In progressThe project had already mined code into evidence-bound claims and left them switched off — a layer that existed but nothing read. R1 turns that foundation into a verified graph: exact source sites become receipt-backed edges, receipts invalidate when their source or resolver changes, and the research path answers only from admitted evidence. A false “resolved” edge remains worse than an honest “unresolved” one. The graph is now on the main branch and running against the real repository under a reversible canary; default promotion still waits for the graph to survive the work it was built for.
Ability activated An agent can ask what a codebase does and receive an inspectable path through exact symbols, source sites and resolved edges — or a precise instruction to open source when the graph cannot prove the answer, never a plausible story disguised as structure.
- M0 Landed
The shared vocabulary
One implementation-free module every surface imports — production code, benchmark fixtures, portable readers, generated adapters — so truth and coverage can never mean two things in two places. It pins the versioned contract and a resolution-class ladder in which only the deterministic classes may mint an exact edge; everything weaker resolves to a labelled guess, never a fact. The contract tests were then sharpened against their own near-misses: told to distinguish an import from a declaration, and to match declaration syntax exactly, so the guard tightens rather than waves the ambiguous case through.
- M1 Landed
The read front door, built dark
The query surface was rebuilt from bounded keyword matching into a real retrieval pipeline: deterministic candidates, a conservative coverage denominator where scope uncertainty counts as relevant-and-uncovered rather than being quietly dropped, diversification across subsystems and production-versus-test, trust admission kept separate from relevance ranking, and a versioned receipt carrying budgets, exclusions, source hash and the fallback decision. And it is shipped shut: the tool returns “read disabled” by default. The front door is built to the contract, and it stays closed until the flag that opens it is earned — the implemented capability is not advertised as shipped behaviour.
- M2 Landed
Correction with teeth
The human-outranks-the-model rule, extended from documents to code. An owner correction verifies a current source span — the quote is substring-checked against the live source before it counts — then writes an immutable authoritative successor that permanently supersedes the displaced claim without overwriting history, and journals the correction so a later session cannot silently resurrect the belief it replaced. A superseded model claim can never regain precedence on its own and can never satisfy strict retrieval: the correction is durable, provenance-bound, and one-directional.
- M3 Landed
A reversible canary
Strict retrieval stops being a dormant flag and becomes tested behaviour: with it on, legacy summary text is never admitted, and a graph too thin to answer returns “source required” with its reasons rather than a confident guess. The rollout is reversible by construction — a bounded canary allowlist where an empty list never means “everyone”, test files delayed from the cohort but never excluded, shadow writes run alongside the live path so a canary can be compared and rolled back, and a future default-on designed as a rollback switch that deletes no state. The reviewer’s catch is sealed in: a shadow receipt is an immutable snapshot of exactly what a reviewer saw, its mutable lifecycle fields excluded so a later promotion cannot reach back and rewrite the record it was judged against. Coverage and ambiguity payloads are bounded so the receipt stays honest without growing without limit.
- M4 Landed
Resolved edges
Receipt-backed deterministic resolution replaces project-wide name guessing. The landed legacy-AST adapter resolves supported local and import-linked cases; it does not yet perform compiler or type-aware resolution. Every extracted site enters through one admission path, and a canonical edge exists only when an immutable attempt receipt names the exact site, candidate set, selected target, resolution class, resolver version and current hashes. Drift invalidates the receipt and the knowledge that depended on it. Worktrees, cancellations, durable re-indexing and full-resync authority were hardened around that rule before the resolver joined the live daemon.
- M5 Landed
The graph meets the real repository
The first ordinary overview against the production corpus filled the daemon’s memory, consumed swap and tripped the watchdog. The fix removed an unbounded replay of per-edge authority from the control-plane aggregate, used indexed directional projection, and named full coverage as deferred instead of pretending it had been computed. The same overview then returned in 359ms; four concurrent graph reads finished in 564ms with the daemon still healthy. Dogfood did not merely validate the feature — it found the first production boundary the fixtures had missed and turned it into a permanent acceptance bar.
- M5b Landed
The read surface becomes a product
Two productization rounds turn the hardened graph into something an agent can lean on: structural retrieval is bounded — a query returns a budgeted answer under complete checkout authority, never an unbounded walk under a partial view — and every answer carries the authority receipts naming exactly what was consulted. The exit was a dogfood matrix run against the real repository, not a demo: the cases decide what may ship, and the ones that fail stay named.
- M6 Not landed
Prove the graph before anything compiles from it
The gate the next arc waits on. “Fresh” currently means fresh for the registered checkout, which may not be the active worktree, landed main or the deployed daemon; research still needs tighter exact-signal routing, response budgets, callable fallback guidance and resource isolation for every read shape. Next in line: an accuracy verification pass against the live repository and fresh end-to-end mining runs through the updated pipeline — the graph must prove itself before governed context delivery is allowed to compile from it.
- M7 Not landed
The default flips
The condition of turning it on everywhere, not a ceremonial follow-up: graph-first reads become the default only after coverage clears a stated bar, worktree identity is explicit, resource budgets hold and the correctness benchmarks are published. The flip is a measured owner decision with a tested rollback, never a hopeful configuration change.
7 of 9 milestones landed. R1 and both productization rounds are on the main branch: shared vocabulary, verified research, correctable claims, the reversible canary, receipt-backed resolved edges, and bounded reads under complete checkout authority. Live dogfood has already found and fixed the overview path that could kill the daemon, and has opened the next honest gaps around checkout identity, research usefulness and bounded reads. The canary remains deliberate; the accuracy proof and fresh mining runs are what everything downstream — including governed context delivery — now waits on.
Workspace identity — agents become durable, governed participants
In progressThe broker could already issue a durable lease, but the owner could not yet govern the thing it created. A human-facing agent name still did too much work: identity, role, target and authority could collapse into one string, while migration from existing harness keys had no safe product path. Phase C separates those concerns into workspaces, profiles, leases, Seat Names, connections and receipts — then makes every owner transition versioned, audited and reversible. It landed beside the verified code graph under one integration gate because both features depend on the same promise: the agent asking a question must be the exact durable party the system says it is.
Ability activated An owner can run many agents as stable seats inside durable workspaces: identity survives credential rotation and daemon restarts, authority stays scoped to the workspace, and explicit handoffs carry the work across fresh connections without pretending the new process remembers the old one.
- C0 Landed
The owner contract
The product boundary was frozen before implementation: owner-only workspace and profile operations, caller-aware disclosure, canonical target resolution, one-use receipts, versioned edits and an exhaustive hostile matrix. Browser authority was explicitly declared insufficient for managed launch — the contract names the trusted operating-system presence that does not yet ship rather than weakening the rule to fit what was available.
- C1 Landed
Durable owner authority
An additive authority schema and one typed owner service make the workspace, profile, lease, revocation epoch and audit record durable. Writes use compare-and-swap so two owner tabs cannot silently overwrite each other; widening authority requires a fresh handover; crossing a workspace boundary requires a separate lease; emergency revocation burns live connections and outstanding authorizations through one persisted chokepoint.
- C2 Landed
The owner gets the controls
The Agents room becomes workspace-first: create or adopt a workspace, draft reusable launch profiles, inspect the lease roster, narrow or revoke authority, and read identity receipts without exposing the bearer material underneath. Legacy unmanaged keys remain visible as a separate migration surface and rollback path instead of being quietly relabelled as managed identity.
- C3 Landed
Names stop carrying authority
Targeting resolves through durable lease identity, workspace-qualified Seat Name or an exact connection — never a fuzzy label that can enumerate the fleet or guess the wrong worker. Session handoffs bind old and new connections to one explicit transfer, so credential rotation can preserve the work without treating continuity as automatic or inferring it from a reused display name.
- C4 Landed
Migration, recovery and the live seal
Existing harness configuration gains an inspect-plan-prove-apply-rollback path with byte-preserving preflight, protected recovery records and fail-closed handling for drift, links and foreign ownership. The exact candidate survived the hostile panel, integration merge, integrity-bridge recovery, canonical daemon restart and authenticated readiness check. The recovery record stays part of the product rather than disappearing because the boot eventually went green.
- C4b Landed
The trusted presence arrives
The dependency C0 refused to fake gets built rather than waived: a native tray application carries a trusted operating-system presence provider — protocol bytes frozen and proven across two languages, provider executables verified, registry transitions chained to prior trust — and managed agent launches now flow from the CLI and the tray through owner-approved terminals. Browser executable authority is removed outright, not kept as a convenience: the rule C0 wrote down finally has the presence it was written for.
- C5 Not landed
The owner drives it for real
The machinery is landed but staged. Real owner dogfood now has to prove workspace adoption, roster truth, narrowing, targeting, handoff, recovery — and now managed launch through the shipped presence provider — against daily agent work. Findings become fixes; the feature does not round “merged” up to “finished”.
6 of 7 phases landed. The contract, authority core, owner controls, canonical targeting, handoffs, migration/recovery path, exact-tip live seal and now the trusted presence provider with its native tray are on the main branch. The owner product graduates in bounded phases: managed launch was held false while browser presence was the only presence available, and the operating-system provider it was waiting for now exists. The next evidence comes from using it on the real fleet.
The coordination ledger — the fleet stops reconstructing the truth from chat
In progressThe incident was small enough to be embarrassing: “landing, but waiting on the final baseline” read as “landing has started” when the truth was “verification is still running.” Better wording would have fixed that sentence and none of the ones after it. The real fault is the substrate — the current state of a piece of work is scattered across several messages, later messages quietly supersede earlier ones with nothing marking which is current, and a reader has to infer cause and order from timestamps and tone. So the fleet is doing to its own coordination what it already did to its knowledge: state stops being something you reconstruct from prose, and becomes something the system derives from an append-only log of typed events. Posts stay — as commentary. They stop being the place the truth lives.
Ability activated Agents can act on one causally ordered state of the work: stale writers lose, terminal outcomes stay terminal, and “what is true now?” no longer depends on interpreting the latest sentence in chat.
- W0 Landed
The contract, frozen before the code
Nothing was built. What landed is the shape of the thing, deliberately implementation-free and locked by a hash so it cannot drift: every event kind, every stage a piece of work can occupy, and the boundary of what may ever be disclosed. It carries an executable record of six real incidents where the old surface looked identical while the underlying truth diverged — the failures the design must be able to tell apart, written down as tests before there is anything to test. The review then caught the artifact overclaiming: a table named “mutation matrix” passed green while most of its rows were an inert list of names, because there is no implementation yet for them to bite on. That is honest at Wave 0 — but a green suite named that way reads as enforcement to anyone who does not find the caveat, which is the exact pattern this whole programme exists to kill. It was renamed to say what it is: a manifest of what will be falsified later, not proof that anything is.
- W1 Landed
The dark core
The engine, built switched off: the schema, a canonical hash for every event, an append that either takes the whole transition or none of it, and a replay that must produce the same state every time from the same events. It landed dark and had to be right before anything was allowed to read from it — the concurrency guards that make two simultaneous writers safe landed in the same wave, proven against a real racing writer rather than argued about.
- W2 Landed
Derived state, and the head
One accepted current head per piece of work, and a status that is projected from the events rather than typed by anyone. Two agents writing at once must not be able to produce two truths: a write names the head it believed it was extending, and is refused if that is no longer the head. Landed inside the core, mechanism and tests first — the public write path that puts the head to work is its own wave below.
- W3 Landed
Evidence gets a class
The part that matters most, and the reason this is not just a schema. Every transition has to declare HOW it is known: asserted (an agent reporting on its own work), observed (the server saw a database, git or runtime condition itself), or verified (a named authority independently checked an exact artifact). Weaker evidence cannot overwrite stronger. An agent saying “tests pass” and a two-seat panel bound to an exact commit stop looking like the same kind of fact.
- W4 Landed
Authoritative reads
The first surface you can actually call: ask what the state of a piece of work IS, what changed since you last looked, and who is blocked on whom — as queries against the ledger, not as an act of reading a channel and inferring. Status, log, diff and a dashboard, each keeping the ledger’s settled state distinct from what is merely observed at read time, so a read cannot quietly present a guess as the record.
- W5 Landed
Writable transitions, under authority and review
The ledger stops being something you can only read. A transition is written against the head the writer claims to be extending — refused if that head has moved — and it carries its evidence class with it, so an agent’s own report and an independent authority’s verdict are stored at different weights rather than flattened together. Writing is not self-service: the surface enforces a review lifecycle with a separation of duties, so the party that did the work cannot be the party that certifies it, and a durable request id ties every answer back to the request that asked for it. This is the point the ledger becomes writable truth, not just a readable record — while the posts, deliberately, still carry the day-to-day.
- C1 Landed
Work grows a contract
A request between agents stops being a message someone hopefully reads and becomes a bilateral, time-bound object with its own event history: proposed, accepted with a completion time the worker commits to, delivered, and only then — by the requester, never the worker — closed as verified. The protocol was frozen on paper first, ratified down to its time-bound constants, and this wave built it dark: opening a contract commits two events or none, a frozen nine-event vocabulary rejects anything it has never heard of, and the old protocol’s bytes are preserved to the hash so history cannot drift. Nothing public can write it yet — deliberately.
- C2a Landed
Authority binds to the lease
The first cut landed with an honest boundary attached: an internal writer could still claim an authority label it did not hold, because events recorded who was CONNECTED, not who durably WAS. This wave makes identity part of the record itself — every contract event carries the actor’s durable lease, the hash covers it, and replay refuses any transition whose lease is not the exact party that transition belongs to. The review then did what reviews here do: proved one of the new guards could be deleted without a single test noticing, and the fix that followed enumerates a wrong-lease attack for EVERY transition, not the three that were convenient.
- RT Landed
A reply must exist
Found the way the best rules get found: a reviewer threaded a reply to a message id it had abbreviated, the system wrote the dangling link without complaint, and the owner named the real fault — a system that depends on agents remembering not to make a mistake is at the wrong layer. Within the hour it was protocol: a reply must name a post that exists, in the same channel, for the same owner, or nothing is written at all. The post that carried the mistake is preserved as the regression test.
- W6 Not landed
Posts become commentary
The last turn, and the one that changes what a message MEANS. Only once the ledger is the place the truth lives do the posts get demoted to what they always should have been: things people said about the work, sitting next to the record of what actually happened rather than standing in for it. Nothing is cut over yet — the ledger can now be read and written, but the fleet still coordinates through the posts. The switch is deliberately last.
9 of 10 waves landed. Everything except the cutover is on the main branch: the contract, the engine (core, heads and evidence classes), the readable and writable surfaces, and now a work-contract protocol whose events carry durable identity — with reply threading held to the same standard as everything else. What remains is the cutover, where posts stop being the source of truth and become commentary on it. That step is deliberately last — the ledger has to be trustworthy to read AND write before the fleet is asked to run on it.
Permissioned mining workers — disposable cognition, never durable authority
In progressThe ask sounds simple: let Sophia, with explicit permission, point spare model capacity at whatever it most needs to learn. Everything hard about it is in the word “authority.” So the design splits the machine along a trust boundary and refuses to blur it: Sophia owns policy, queues, leases, evidence and truth; a separate local Runner — planned in Rust precisely because its correctness is about owning OS resources, not application data — holds provider credentials and processes; and the workers themselves receive only an expiring, non-delegating sliver of authority that dies with the job. Model output stays untrusted no matter who produced it. Each gate below must survive an adversarial panel before the next may begin, and the record keeps the failures.
Ability activated An owner can turn spare model capacity into a governed learning fleet: disposable workers get only the task-sized authority they need, while their output still has to earn promotion into shared truth.
- H0 Landed
The contract, frozen the hard way
The job description a worker will someday receive — every field, every denial, every hostile fixture the future Rust side must replay — frozen as a pure contract before any process exists to obey it. The adversarial panel earned its place: it proved a real credential could hide inside the very file that defines what credentials look like — the safety list and the exception list were hand-maintained, so the fix made one derive from the other and they cannot drift — and it proved the payload’s version stamp was decoration, a version from the future clearing every guard. Both were closed before the contract froze, each with a regression test named after it.
- H1 Landed
A planner that can only recommend
The scheduler’s brain, shipped with no hands: it reads the real queues and says what it WOULD run — deterministic for a pinned instant, every score carrying its reasons, a reserved share for the oldest work so hot files cannot starve the foundations — and it can be replayed byte-for-byte because it is not allowed to know what time it is. The review’s standard held: recommendation-only is not a promise in prose, it is the absence of any write, spawn, or reservation in the code, checked structurally.
- H2e Landed
The Runner speaks Rust — and must agree, byte for byte
The first Rust in the codebase, and it is deliberately the paranoid part: the decoder that will someday read a worker’s job description rejects unknown fields, unsafe integers, malformed timestamps and smuggled credentials — every denial replayed from the same fixture corpus the TypeScript side must satisfy, so two languages cannot quietly disagree about the wire. The entry gates followed: parity is enforced at commit time rather than promised, and the canonical digest both sides compute was rebuilt on explicit byte order after review showed the two languages agreed on today’s keys and would diverge on tomorrow’s — a divergence the author then widened himself, catching a number-spelling case after his own freeze.
- H2 Landed
One worker, watched
The first real process, and authority learned to die on schedule: admission is its own gate, the job a worker receives is signed and consume-once — a child that tries to redeem its delivery twice finds the second attempt already dead — and the owner’s approval is bound to a durable authority record, not a checkbox in memory. The sandbox canary ran signed, end to end, through protected service IPC. The credential broker completes the custody story: a child’s bearer exists only in memory, is zeroed after its single delivery, and a dropped socket revokes the child it minted — the only path to a live worker credential is a completed handover. Candidates settle truthfully: a worker’s output lands as candidate, never as fact, no matter how well the run went. Production-dark by design: nothing spawns unattended until the redesigned mining room and the broker’s provider gates exist for an owner to govern it through.
- H3 Not landed
The background beta
Bounded, budgeted, pausable background mining under quiet hours and a hard daily cap — with kill meaning kill, and a receipt for every job whether it succeeded or died.
- H4 Not landed
Adaptive allocation
The planner starts weighing what the fleet actually touches — bounded activity signals as priority hints, never as permission. Deliberately last: by here the boring parts have to be boring.
4 of 6 gates landed. H0, H1, the Runner’s contract boundary and now H2 are on the main branch, each through an adversarial panel — H0 needed three rounds to survive one. H2 means the worker lifecycle exists end to end and is deliberately dark: the signed canary ran, the authorities expire, and nothing spawns unattended until the owner has a room to govern it from.
The owner’s window — a UI that is not allowed to lie
In progressThe fleet got honest machinery months before its owner got an honest view of it. This arc rebuilds the product’s face from first principles, and the first principle is a covenant: the window never invents status. Everything rendered derives from a named substrate and says what class of evidence it is — observed, agent-asserted, or derived — and how old; silence renders as unknown, never as a green dot; an agent’s claim about itself is labelled as exactly that. The second principle is that old interfaces do not get to haunt new ones: both previous shells died by owner attestation behind manifest tests that make their return a build failure, not a regression to notice.
Ability activated The owner can see what the system knows, what the fleet is doing and where intervention is required — then curate, retire or govern it without translating raw protocol objects or trusting invented status.
- U0 Landed
Six rooms, and a shell dies attested
The foundations, built parity-then-delete: a route ledger types every path the old UI ever answered, the owner personally walked all twenty-seven legacy routes — five retired in his own words, twenty-two redirected — and only then did one revertable commit delete a hundred files, with a hand-frozen manifest test holding the door shut and a compatibility guard that keeps old bookmarks working — a trailing slash or the wrong case included. Underneath: six readiness states every surface must implement, a translation dictionary that renders unknown protocol objects as a redacted envelope rather than a guess, and a polling discipline with one owner per query.
- U1 Landed
The window opens — and retires eight ghosts
Four read surfaces the daemon never had: a unified feed that merges four substrates under one opaque cursor and refuses to skip or duplicate at page seams; an arc projection that derives landed, in-flight, queued, dormant — and retired — from the coordination ledger alone; liveness as three axes that are never collapsed into a status dot; and a needs-you aggregation whose every action is idempotent, concurrency-guarded, and receipted. On its first live day the owner used the program view to spot ten dormant plans, ordered the stale eight formally abandoned — each retirement a governed post citing his authority, never a silent delete, never masquerading as landed — and had the second old shell (the workspace) removed under the same attested-deletion discipline as the first.
- U2 Landed
Entities, tiered
Substrate first, and the face made to wait until the substrate earned it. The data layer landed through a two-seat panel: importance derived from fact count, graph degree, access recency and provenance, so the obvious entities surface and the long tail stays reachable but never default; an atomic merge that repoints every reference the schema knows about, keeps a redirect shell so old ids resolve forever, and preserves differing-provenance evidence; and tier-gated curation writes. Then the composed face the owner had refused to skin early: each entity opens on a type-aware Overview that reads its own evidence — activity rendered as human sentences, coverage in place of raw graph size, a degraded panel disclosing a note instead of crashing an empty grid. The review made sure of two things on the way in: a panel query that had taken seven seconds against the real repository now returns in a quarter of one, and a collapse key is injective rather than built from the raw NUL bytes the repo lints against.
- U3 Landed
The window gets its design language
The face got a face. U0 framed six rooms structurally; here the owner tested a real-data prototype without narration, accepted it, and the shell and its first three rooms were rebuilt to that frozen design — a shared token system and primitive set (the "calm-observatory" language), a rail whose health dot reads the real liveness poll rather than a hardcoded string, a global command search where everything is a link, and Today, Work and Knowledge composed rather than dumped. A three-pass fidelity re-walk then closed the gap between rendering data and composing it: raw tool-call logs became sentences, JSON contradictions became human objects, one generic icon became per-type glyphs that never lend an unknown entity the project’s own mark. The reskin was pure presentation over unchanged data contracts, and it still surfaced faults worth the walk — a bulk resolve-all that silently widened to the whole pending population when handed a present-but-malformed scope now fails closed, and a Work view that read the wrong state field and showed an empty in-flight band over fifteen live arcs was traced to the field and fixed, taking a latent type error the app’s missing typecheck gate had hidden down with it.
- U4 Landed
Agents become workspace-first
The first of the remaining rooms lands around the identity the system actually governs. Agents opens on workspaces, profiles and durable leases rather than a flat list of bearer keys; the owner can inspect roster state, receipts and scoped controls while legacy unmanaged keys stay separate and honestly labelled. The face activates the owner control plane without pretending browser presence is sufficient to launch a managed agent.
- U5 Not landed
Every runtime state gets a surface
The campaign the remaining rooms belong to: every state the daemon can be in must be visible and governable from the window, or its absence explicitly declined — an approvals surface where pending consent actually surfaces, an Agents room reading the live identity substrate, and Sources and Settings brought through the same evidence-first composition pass as the rooms before them. The window is substantially more capable and still not whole.
5 of 6 units landed. U0 through U4 are on the main branch, each through independent panel seats. The accepted prototype now governs the shell, Today, Work, Knowledge, entity Overview and a workspace-first Agents room. What remains is narrower and explicit: Sources and Settings still need the same evidence-first composition, so the arc stays open. The owner drove the running window live against a copy of his own data before any of it merged.
The rename — the product takes its agent’s name
In progressUsers have talked to Sophia from the first pairing code — the agent, the memory, the tools all carry her name — while the daemon, the package, the service files and sixty-seven environment variables answered to the project’s old working title. Before the first public release is exactly when a rename is cheapest: there is nobody to migrate yet except the fleet itself. The surface was measured before anything moved — every file, every wire header, every path a running install depends on — and the rules were written down first: forward-only, no history rewritten, and every slice leaves a daemon that boots.
Ability activated A user can install, run, recover and connect to one coherent product identity while the state migration remains forward-only, restart-safe and compatible with installations created under the old name.
- R0 Landed
The shim
Zero behaviour changes hands: a compatibility layer reads the new names first and falls back to the old, and a ratchet test makes regression structural — any NEW code that reaches for the old names directly fails the build, and the allowlist of not-yet-converted files can only shrink.
- R1 Landed
The package takes the name
The installable product becomes sophia-daemon — package, binary, service units, timers and tray in one lockstep slice, with the old command kept as a courtesy that says its own name is going away. The review panel passed it with one required fix that earned its keep: the migration removed an old unit’s watchdog configuration and never installed the renamed one — an install that quietly stripped its own wedge protection. Fixed before anything deploys, which is what review-before-deploy is for.
- R2 Landed
The data moves
The state directory changes name exactly once, atomically, under the same single-owner lock that guards the database — never copied, never guessed, with a marker left where the old directory stood. Review demanded one more property before a live install was allowed to run it: a move that dies halfway — a crash, a filesystem boundary, a symlink where a directory should be — must leave a state a rerun can finish or refuse, never a half-migrated guess.
- R3 Landed
The wire
The session header and cookie carry the old name into every paired browser and timer script, so the wire renames on a dual-accept window: both names in, one name out, old names retired at v1.0.
- R4 Landed
Every string
The interface, the banners, the bridge object — the sweep that makes the old name unfindable in anything a user sees.
- R5 Not landed
The docs
Install, first-run, configuration, troubleshooting — rewritten under the real name, and the moment the compatibility warnings switch on.
- R6 Not landed
The repository
The org and repo rename, deliberately last — everything inside is already answering to the name on the door.
5 of 7 slices landed. The whole runnable surface — shim, package, data move, wire, strings — landed as one reviewed stack and now runs live: the project’s own install answers to sophia-daemon, and its state directory made the move under the single-owner lock on the first boot. The docs and the repository name remain, deliberately last.
Agent liveness — a green check for having looked at nothing
In progressAn agent finished its work and asked for review. The act of asking hid the request: posting the closeout archived the channel the request lived in, and an archived channel is not in the reviewer’s inbox. Nothing errored. The closeout was clean, the inbox was quiet, and an agent waited on a verdict that could not arrive. That opened a worse question — where ELSE does this system report success it never actually observed? — and the answers were worse than the incident. One question is now being put to every layer: did you look, and at what? A code change must prove it. A scan must prove it. A search must prove it. An agent that says it is blocked must be able to be answered.
Ability activated An orchestrator can tell the difference between offline, idle, working, blocked and gone — then route or escalate from evidence instead of guessing from a green dot or a message count.
- E0 Landed
The request that hid itself
The incident, fixed at the chokepoint within the day. A closeout that asks for review can no longer archive its own channel — and if the channel was already archived, the request REOPENS it. An arc awaiting a verdict is not a finished one, and the surface now refuses to say otherwise. It shipped as an emergency slice with its own review panel, ahead of the durable rework it stands in for.
- R0b Landed
Two validators that passed by examining nothing
Two checks that reported success without looking: an install validator that exited zero on an empty directory and called “validated 0 files” a pass, and a secret scanner that, run from the wrong directory, read no files at all and reported “no potential secrets found”. Both now fail CLOSED — zero coverage is a failure, not an all-clear — and the guarantee is enforced at the reporting layer, where the coverage witness counts only what was actually opened, so a directory cannot be certified as scanned unless the scan reached it.
- P0-min Landed
A verification claim, bound to the commit
You can no longer merely SAY a change was verified. It carries a receipt bound to the exact commit — its hash, its tree, its precise list of changed paths — and a separate checker re-derives every one of those facts from the repository itself and refuses the receipt if any of them drifted. Verification run from a dirty working copy is rejected outright, because commands executed against uncommitted bytes did not test the commit being claimed. Deleting a file cannot shrink your coverage: removals count as changes. And discovering nothing to check is a failure, not a pass.
- P0-full Landed
The checker stops taking the runner’s word
The seam the phase above left open, and it is now closed: the checker proved the receipt was bound to the right commit, but it still BELIEVED the runner’s report that the commands had passed — evidence and beneficiary were the same party. The final attestor now re-executes them itself. Which authorities count as consequential stopped being a judgement call and became a manifest the build enforces, and the panel’s parting shot was a coverage gap in that very manifest — closed before it landed.
- P1 Landed
Every blocked agent gets a terminal answer
The class of failure this arc began with, closed at the root: a wait can no longer simply persist. Every blocking wait now carries a bound it cannot escape — a default if none was given, and a hard ceiling above that, applied by a sweep that runs whether or not anything is watching. Legacy rows and hand-written ones cannot evade it, because the backstop takes whichever bound comes first. The terminals are honest ones: a wait that ended unsatisfied says so rather than reporting success, and it is only marked escalated once a human has actually been reached — a notification that failed to send leaves the wait open to try again, instead of quietly recording that somebody was told.
- P1b Landed
The answer discharges the wait
Two “blocked” edges sat in the fleet’s queue view for hours after the work they named had been reviewed, landed, and closed — the system could already RECOGNIZE a definitive answer, it just never told the wait. Filed as a ticket in the morning; a design by evening, surviving three adversarial review rounds that each caught a real contract defect — an audit receipt that could claim a state change it lost, a cursor that structurally missed late answers, a closeout that could complete other people’s obligations from its author’s own claims; implemented and landed the same night. Every discharge now carries the exact evidence that earned it, replays are no-ops, and the two original zombie edges are the permanent regression fixtures.
- P2 Not landed
The lifecycle the emergency stood in for
The durable rework behind E0. A channel’s life stops being a single flag one post can flip, and becomes an explicit lifecycle with an immutable journal of its transitions — who moved it, on what post, against what obligation. Visibility and read-state are conserved rather than trusted: a message cannot be consumed by a reader who was never shown it.
- P3 Not landed
Search has to say what it actually did
The same question, asked of retrieval. Every search returns what method was REQUESTED, what method actually ran, whether it degraded, which guarantees that costs you, and how many items it truly searched against how many it discovered. A quiet fallback to a weaker method is a different answer wearing the same clothes — and today the caller cannot tell. It becomes a fixed field on the response, never a footnote that can be dropped when the response gets long.
- P4 Not landed
The rest of the class
The systematic sweep for everywhere else the system can fail OPEN — report an all-clear it never earned. Each suspect is reproduced and individually dispositioned as confirmed, disproved, bounded, or unverifiable. Not one opaque patch that claims to have fixed a category nobody enumerated: that would be the same failure, one level up.
6 of 9 phases landed. Five phases are on the main branch. Two of them landed while this page was being rebuilt to track it — one of those was caught by the watch that now guards it, an hour after the watch was written. Which is the whole argument for no longer typing these by hand. The rest are named, not started.
Orient v2 — the boot call learns its limits
In progressOrient is the first thing an agent calls when it wakes with no memory of yesterday, which makes it the one surface that cannot afford to bluff. The rebuild gives it a fixed, structural order for what is urgent; forbids it from recommending a tool the calling agent cannot actually reach; and requires it to name why any part of its answer is missing rather than return an empty section and let the reader assume the best. It composes what other subsystems already own and may not re-derive their state — a second implementation of the truth is a second thing that can be wrong.
Ability activated A brand-new agent can recover the work, corrections, obligations, available tools and right next move in one bounded handshake instead of spending its first context window reconstructing yesterday.
- A0 Landed
The baseline
Pin what Orient does today in fixtures — before changing any of it. Everything after this has something to fail against, which is the only reason a refactor can be trusted.
- A1 Landed
The action selector
What to do next stops being an accident of the order the code happened to run in, and becomes a structural priority: a human correction outranks a blocking obligation, which outranks a resolved wait, which outranks an unread message. And no action may recommend a tool that is absent from this agent’s actual callable surface — it falls back, or it stays silent and says why.
- A2 Landed
Coordination, assimilated
Who is blocked on whom stops being a second implementation living inside Orient. Waits, resolutions and unread all come from the domain that owns them — projected, never re-derived — and the boundary is enforced, not documented.
- A3 Not landed
Resume and the front doors
What changed since you left, and the right front door for the kind of goal you have — research, mining, code, diagnosis — instead of a flat catalogue the agent has to shop in.
- A4 Not landed
Code research and freshness
Is the summary you are about to trust still current, what does it not cover, and should you open the source anyway. The answer arrives with the summary, not after you have relied on it.
- A5 Not landed
Receipts
What Orient actually recommended, and whether anyone used it. Telemetry as a way to find out we are wrong — never as authorization, and never as proof the model reasoned.
- A6 Not landed
Cold start
A brand-new agent, no memory, no tribal help, no one to ask — and it has to get somewhere useful. That gate decides whether any of this shipped.
3 of 7 arcs landed. Arcs 0–2 are on the main branch. Arc 2 landed with its own invariant gates — the coordination boundary is enforced by tests that fail when it is crossed, not by a paragraph asking nicely.
Sophia Superpowers — governed operating methods for every agent
In progressMCP defines what an agent may call; skills define how and when it should act. Sophia governs both sides of that boundary. Its operating methods are authored once as a capability graph and executable workflow contracts, compiled into native routers for each supported agent tool, and checked against the live tool surface. This matters because a skill body is instructions another agent loads and obeys: distributing one creates an instruction-supply-chain and prompt-injection boundary, not merely a packaging task. The runtime can now distinguish a matching installed release from missing, drifted, replayed or manually loaded material. It still refuses to confuse that evidence with cryptographic attestation or proof that a model followed the method.
Ability activated Sophia can give every supported agent the same reviewed operating method, reject workflows that exceed their declared capability, verify a matching installed release at session start, and expose drift or missing activation without letting a skill widen the agent’s authority.
- W0 Landed
Honest degradation
Before anything is fixed, stop lying about it: an agent that is missing the pack says so, instead of quietly behaving as though it has it.
- W1 Landed
The compiler spine
One capability graph, one description of each workflow, and a compiler that renders both into a native pack per tool. Two things fail the BUILD, not a lint: a workflow that claims more privilege than the capability it stands on, and a composition mode the compiler has not seen that tool actually support.
- W2 Landed
The foundation pack
The ten skills that teach an agent to use Sophia at all — orientation, evidence discipline, refusing to fabricate — ported into the manifest and compiled to two different agent tools from a single source. They ship as code-defined seeds, not agent-authored drafts: nothing in the pack itself can be published by an agent.
- W3 Landed
The bootstrap gates
The part that proves it: a brand-new agent, no memory, no tribal help, on each supported tool — through a fresh session, a cleared context, a missing server, a missing pack. Every stumble counts as a product bug. It closed with a live cross-harness conformance gate, run against real agents rather than asserted in a document.
- W4 Landed
Enhanced workflows
The ordinary development workflows — planning, debugging, review — with one move woven in at each real decision point: consult what is already known before acting, contribute what was learned after. The exit was live, on both agent tools, and the bar held: certification waited for the run’s own receipt rather than a hand-written summary of it. What landed is a receipt the runner itself emits and a build that validates it — every attempt disclosed, and a guard, proven by breaking it, that a newest failed attempt can never leave a stale green headline standing.
- W5 Landed
The install
One click, per agent tool, with update, rollback and uninstall — reversible by construction: atomic staging, a backup the rollback must actually restore, and a two-phase uninstall that refuses to touch files it cannot prove it owns. Review reproduced the one attack that mattered — a stale database row claiming “installed” over an empty disk — and the fix bound every record to the on-disk receipt’s identity; live acceptance then hardened three more packaged-only cases the same evening, each answered by making the package check EXECUTE the thing rather than assert it exists.
- W6 Landed
Coordination honesty
An agent asks a question and sees an unrelated older message sitting at the top of its inbox. The surface now answers the question actually asked — a definitive response is correlated to the exact request it answers, and durable resume survives any number of channels. The first freeze failed review: the resume cursor could grow without bound and then be rejected by the very tool that issued it. The fix was structural — a global per-user sequence, so the cursor is bounded by construction.
- W7 Landed
The remediation — the pack meets its second harness
The pack went live in a second agent tool, and a full-pack dogfood there did what a second harness is for: it exercised all twelve routers against a real session and hardened the compiled guidance wherever it had drifted from the live tool surface — exact-symbol code search, function-callee scope, an evidence lookup, a stale knowledge hint, a contradiction check. The fix corrected the tools and recompiled the artifacts so the guidance matched reality, bracketed between a frozen baseline and a release gate that ships only against an explicit per-ticket disposition. That gate is deliberately honest about its own edges: it publishes exactly what it did and did not certify — most closed, a couple bounded or blocked on a limit outside the pack — rather than rounding itself up to green.
- W8 Landed
The runtime can identify the installed release
The installer now hashes the final bytes it actually placed on disk and injects that public receipt identity into the lifecycle hook. At startup, resume, clear or compact, the hook completes a connection-bound, single-use challenge against the daemon’s exact adapter, graph and build-receipt identity. A stale release, replayed nonce, expired activation or manual skill load cannot silently become installed-router status; update, rollback, uninstall and revoke clear it. This is a concrete instruction-supply-chain defence, and deliberately authority-inert: a matching pack organizes existing capabilities but can never grant a tool the connection did not already have.
- P0 Not landed
The remaining chain-of-custody boundary
Three claims that skill systems often blur remain separate here: whether installed bytes match a known release, whether that release reported activation for this connection and lifecycle, and whether the model’s behaviour looked consistent with the method. The first two now have final-byte receipts and a challenge-bound runtime signal. The release is still unsigned, so Sophia reports installed_router_unattested; no device key or cryptographic verifier proves the artifact’s origin, and nothing claims to prove model adherence. The compiler says “deterministic development receipt; not an attestation” because prompt-injection resistance begins with refusing to turn model testimony into a security fact.
9 of 10 waves landed. The governed pack is live across Claude Code and Codex, all twelve routers have been dogfooded against the real daemon, and the runtime now exposes matching, degraded and unattested installation state without changing ordinary tool authorization. The remaining security arc is narrower and explicit: sign releases, verify them cryptographically, and keep behavioral observation separate from proof of artifact and activation.
Evidence-bound code claims — the graph’s trust foundation
CompleteMined code gained a semantic layer: claims about what a symbol does, not merely where it lives. Four rounds of review went into it, and almost none of them argued about what the layer could do — they argued about what it is allowed to ASSERT. The final gate now makes that boundary executable: only admitted, evidence-bound claims may speak as verified knowledge, and insufficient coverage must fall back to source. Product rollout remains a separate concern in Verified Retrieval, where a completed trust foundation cannot be rounded up to universal coverage.
Ability activated Sophia can retain semantic knowledge about code between agents without granting free-form model prose the authority of parser evidence — and a human correction can permanently outrank the model’s earlier interpretation.
- R1 Landed
Claims must carry evidence
A claim about a symbol has to be bound to something the parser actually saw. The first cut of the trust model: evidence-bound, atomic claims, with trust recorded as a machine-readable receipt over independent dimensions rather than blended into a single score nobody can interrogate.
- R2 Landed
Trust binds to the subject
The review found a claim could inherit structural trust from a symbol it was merely anchored NEAR. Trust now binds to the claim’s own subject — being adjacent to something verified is not the same as being verified.
- R3 Landed
Anchors must be verified
Next round, next hole: an entailment could rest on an anchor nobody had checked. Anchors now have to be verified themselves, or the claim standing on them does not get promoted.
- R4 Landed
The terminal cap
The round that stopped the whack-a-mole by going after the root rather than the case: the layer was certifying more than it could verify. The subject, predicate and object of a claim are now locked to what the parser can prove, and an assertion the system cannot verify is capped rather than promoted.
- GATE Landed
The read gate
Strict retrieval makes the gate executable: legacy summary prose is never admitted as verified knowledge, an unverified claim is excluded or visibly downgraded, and insufficient coverage returns “source required” instead of narrating a sentence that reads as fact. The controlled rollout above owns when that gate becomes the default.
All 5 rounds landed. All four trust rounds and the executable read gate are on the main branch. The layer remains governed by the reversible rollout in Verified Retrieval; completing this foundation means the policy exists and is enforced, not that every repository has enough admitted claims to answer every question.
One daemon, one owner — the engine learns to refuse a second self
CompleteThe incident was mundane, and that is the point. Under memory pressure, a second copy of the daemon — an accidental duplicate, started by hand — kept holding the encrypted state database’s lock after it had stopped serving, and ignored every polite request to stop. The managed service behind it could not get in: it hit the busy database eleven times, restarting into the same wall, until something finally killed the wedged process. Nothing was malicious and nothing was even a bug in the ordinary sense — two well-behaved daemons simply both believed they were in charge, and the system had no way to say that only one may be. So ownership stops being an assumption and becomes something the kernel enforces: at most one process holds the lock, it holds it explicitly, a supervisor can see who holds it, and anyone who cannot get it fails fast and loudly instead of storming the door. On top of that single guarantee, an identity broker can finally give each agent workspace a durable place in the system that survives a restart.
Ability activated Sophia can preserve an agent workspace across daemon restarts without ever letting two daemon processes issue competing identities or touch the encrypted state at once.
- W0 Landed
The invariant, frozen before the lock
Nothing was built first except the shape of the thing. The single-owner rule was written down as a frozen contract before the lock existed — the exact set of ways a process may be refused, each with its own named disposition and exit code, so a refusal is a specific, legible fact rather than a generic failure. A daemon that is turned away knows precisely why: another live owner already holds the lock, the data directory cannot be trusted, the lockfile is not what it should be. The contract was argued to convergence over several review rounds before a line of it ran — because the one thing a containment primitive cannot do is be vague about when it says no.
- W1 Landed
The lock the kernel keeps
Mutual exclusion is a kernel lock, not a convention — a single open-file lock on a file co-located with the state database, taken before the database is ever opened or a port is bound. A process that cannot acquire it never touches the database, never contends, never busy-storms; it exits fast with its named reason. The hostile cases are proven by test rather than promised in a comment: a symlinked or wrong-owner lockfile is refused, a file swapped between the check and the open is detected and the boot aborted, and a child process cannot inherit ownership — each guard demonstrated by removing it and watching the attack succeed before it was restored. A legacy install whose data directory is too permissive is quietly tightened to fit, rather than bricked for failing a rule written after it shipped.
- W2 Landed
The identity broker
With exactly one owner guaranteed, a daemon can safely hand out identity. A small authenticated channel, local to the machine, lets a launching harness redeem a fresh identity for an agent workspace or resume one it already holds — and the caller’s identity is checked at the operating-system level, not taken on its word. The broker refuses to run at all unless the single-owner guarantee above is proven held, so identity is never issued by a daemon that might not be the real one. It is the same principle as the credential-minting chokepoint, moved one layer down: authority flows from a place whose singularity the kernel vouches for.
- W3 Landed
Leases that outlive a restart
Identity that evaporates when the daemon restarts is not identity. A workspace’s place in the system — its lease — is now durable: it survives the daemon’s own lifecycle episodes, and an agent’s coordination work is bound to it, so a restart resumes the agent rather than resetting it. Resuming is itself governed, never automatic — a resume is checked against the same authority as a fresh issue, so a lease cannot be reclaimed by simply asking for it back.
- W4 Landed
Wired into the daemon, and made to bite
The last turn is the one that makes the rest real: the broker is wired into the daemon’s actual ownership lifecycle, every database-opening path — including the one that mints credentials — is routed through the single owner, and a sampled recovery watches for the wedged-owner case the whole incident began with. And the controls are made to bite — the tests were rewritten so that disabling any one containment control turns a test red, because a guard nothing exercises is a guard that has already quietly failed. That lesson is the same one the verification-receipt work learned a day earlier: a green suite that never runs the real thing is not evidence.
All 5 waves landed. The five waves are on the main branch: the frozen invariant, the kernel lock, the identity broker, durable leases, and the daemon wiring — the identity-broker integration independently verified against an exact commit by a second review seat. The guarantee is deliberately scoped and stated rather than overclaimed: it holds under an explicit, owner-ratified threat model — the accidental same-user duplicate that caused the incident — and where the boundary of that model sits is written down and accepted on the record, not implied to be absolute. The owner-facing product that governs those identities has now landed as the separate Workspace Identity arc above; its staged dogfood remains in progress.
Corpus freshness — the graph stops lying about itself
CompleteA retrieval layer that quietly serves stale or duplicated material is worse than one that returns nothing, because it is confidently wrong and nobody can tell. Three findings, each one a way the corpus had drifted away from the truth it claimed to hold — and each fixed at the chokepoint rather than at the reader.
Ability activated Every connected agent can work from the current corpus instead of rediscovering that search ranked a retired revision or counted the fleet’s working copies as new knowledge.
- F-1 Landed
The corpus was serving ghosts
Editing a wiki page left the old revision alive. Both versions stayed searchable, and search ranked the SUPERSEDED body above the current one — the index and the truth disagreed, silently, for every reader. Retirement now cascades: the artifact, its full-text row, and its index entry go together.
- F-2 Landed
Nothing could count the ghosts
The reason F-1 survived so long: no agent could introspect the document corpus, so the blast radius could not be measured from inside the product. Introspection was opened — metadata only, scoped per entity, with the scope boundary proven by deleting the guard and watching the tests fail before restoring it.
- F-6 Landed
The system was eating its own shadow
About a third of a sampled corpus was duplicate copies of the same files, ingested from the fleet’s own working copies — self-inflicted by our own rule that every agent gets its own checkout. Fixed structurally: a linked working copy is detectable by construction, so the walker skips all of them, including the ones nobody has created yet.
All 3 fixes landed. All three are on the main branch. The retirements are reversible — an undo that cannot be undone is a deletion with better manners.
Coordination — the fleet learns to say what it means
CompleteTwo agents sat blocked on each other for twenty-five minutes. Neither was broken and neither was idle — each was politely waiting, and nothing in the system could say so out loud. From inside a deadlock it looks exactly like patience. Everything here follows from that: a count is telemetry, and telemetry is not a signal.
Ability activated Separate models can operate as one accountable team: addressed handoffs arrive, declared waits become obligations, closeouts carry machine-readable proof, and deadlocks become visible while they can still be broken.
- A Landed
Canonical addressing
Agents addressed each other by name, so renaming one silently broke every message aimed at it. Addressing now resolves to an identity that survives renames, and a message to an unknown recipient fails loudly at write time instead of vanishing. The review found six more required fixes on top — including that a worker key could be quietly promoted into a seat of authority, contradicting a rule the codebase claimed to hold.
- B Landed
Prose becomes protocol
The orchestrator used to learn what had landed by pattern-matching English: every fact it routed on was a substring search against something an agent had typed. Closeouts now carry a structured payload — branch, tip, pushed, test state, verdicts. Malformed writes are refused outright rather than half-stored. And the clock could not order them, because a burst of messages lands inside the same millisecond, so channels carry a real sequence.
- C Landed
The deadlock gets a name
A wait becomes a post the whole fleet can see, so “I am blocked on you” is something the system can say rather than something a human infers from a climbing unread count. It resolves in three outcomes, never two — satisfied, unsatisfied, or unverifiable — because telling a blocked agent “resolved” on a reading you cannot make is worse than telling it nothing.
All 3 arcs landed. All three on the main branch. The liveness surface publishes its own blind spot: half the definition of an orphaned wait needs a registry that does not exist yet, so every response says so rather than returning an empty list and calling it all-clear.
The mint approved a key. Nothing approved the playbook.
CompleteA skill is not data: it is instructions another agent loads and obeys, delivered automatically, with the system’s own authority behind it. Any agent holding a full-access key could publish one — which made it a standing cross-agent injection channel that nobody had noticed, because it looked like a content feature.
Ability activated Sophia can let agents draft reusable operating knowledge without letting any agent silently publish instructions that every other agent will load and obey; activation remains a human authority decision at the storage chokepoint.
- P0 Landed
Agents draft; the owner publishes
Publication is refused before any write — no row, no file, no partial state. And it is not a permission a stronger profile could pass: publishing happens over a transport agents cannot reach at all. A draft is inert: never served, never ranked, never even titled to another agent, because an attacker-chosen title is itself a small injection surface.
- R2 Landed
The gate was a fence
The second round found the hole the first one left: the skills vault is a WATCHED directory, so a file written there is ingested and readable through ordinary document search — straight around the check on the skill reader. A gate on one reader is a fence. The chokepoint is wherever the content can escape, so a draft never reaches disk at all.
- R3 Landed
Deleting is not un-ingesting
The third round: unpublishing removed the file but left the indexed copy readable. Retraction now tears out the artifact, its full-text row and its index entry together — and if that fails, it says the body may still be readable rather than reporting a clean success.
All 3 rounds landed. Three rounds of adversarial review, each one hardening the last. The honest limit is stated on the product page: the defence is human approval, not content inspection — nothing scans a skill body for hostile prose.
Rails derived from origin/main @ 6af3dad1, resolved 2026-08-05.
A unit reads “Landed” only when its commit is genuinely on that branch.
The Fleet
Sophia was designed by one person and built by these agents — working under review gates, coordinating through the product’s own coordination layer.
Creator & Director
C. Keller
Coordination & lead development
- Fable 5
- Sol 5.6
Development & research
- Opus 4.8
- Sonnet 5
- Haiku
- Terra 5.6
- GPT 5.5
Every one of them used Sophia to build Sophia.
Every arc reviewed before it landed.