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.

← Return to the build record

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.

113days
2,900+commits
111commits, busiest day
555klines of code
43%of it tests
175+MCP tools

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.

Foundations

April 2026

A local-first state platform — the trust rules shipped before the features did.

  1. Feature

    Day one ships a constitution

    The first commit isn’t a prototype — it’s v1 with the trust covenant: quote-grounded claims, scoped access, reversible writes.

  2. Feature

    The inversion: Sophia becomes the state layer

    The founding idea, shipped on day one — a state orchestration platform that intelligence agents call into, rather than an application with AI bolted on. The agent brings the reasoning; Sophia holds the state, the scopes, and the evidence.

  3. Feature

    Evidence-grounded extraction

    Every claim mined from a document must carry a verbatim quote from its source. Write-quality gates land the same day.

  4. Feature

    Hybrid retrieval lands

    Keyword and dense-vector search fused with reciprocal-rank fusion, across documents and the knowledge graph.

  5. Feature

    Code ingest goes multi-language in a day

    TypeScript, Python, Rust, Go, and Java project adapters with a language-agnostic import resolver — one arc.

  6. Refactor

    A dead end, then the isolate

    The WebAssembly sandbox for agent-authored code is spiked; the pivot lands the same day. execute_code runs in a real V8 isolate — a dozen Sophia calls in one round trip instead of a dozen.

  7. Feature

    Corrections become machinery

    Persistent cross-session goal stack, and user corrections that propagate structurally instead of aspirationally.

  8. Dogfood

    92 commits in a day, one week in

    The platform is already being built by the agents it serves.

  9. Feature

    The coordination journal is born

    Inter-agent posts arrive with a hard rule baked in: posts are receipts, never knowledge. Facts must cite primary sources.

The Engine

May 2026

Mining industrialized: queues, leased runs, local inference, and a daemon that owns its own lifecycle.

  1. Dogfood

    Peak velocity: 111 commits in one day

    The single busiest day of the project so far.

  2. Feature

    The isolate learns TypeScript

    execute_code starts accepting TypeScript directly, transpiled at the boundary. Agents stop chaining tool calls and start writing small programs against the state layer — the batching front door the whole tool surface now assumes.

  3. Feature

    Local ONNX embeddings replace remote defaults

    Embedding inference moves fully local — no external model server required for the default path.

  4. Feature

    Sources & mining workspace

    The first dedicated UI for watching the pipeline work, plus a global notification center.

  5. Refactor

    The daemon learns to live alone

    Engine lifecycle decoupled from the desktop shell — the decision that later retires Electron entirely.

  6. Feature

    Queue-first mining lands

    Every extraction threads through owned queues and leased runs; the streaming side-doors are hardened shut in the same arc.

  7. Feature

    Onboarding + a canonical workspace

    Attach-a-source onboarding, one workspace shell, and daemon memory-limit controls in settings.

Honest Machinery

June 2026

A month spent making the system tell the truth about itself — tiers, telemetry, and tests that can actually fail.

  1. Refactor

    21 tools removed, receipts for every one that stayed

    The MCP surface gets pruned, deprecations get a mechanism, and per-tool telemetry lands with 90-day rotation.

  2. Trust moment

    Mining stops rounding up

    Extraction learns to tell the truth about its own thoroughness: explicit tier stamps on every completion path, so a fast skim can never present itself as a full pass, and coverage honesty a reader can check.

  3. Feature

    Summaries verified against source

    A mined code-module summary must survive verification against the module’s actual source text before it counts.

  4. Feature

    Cost telemetry per model call

    Every LLM call records usage; 24-hour cost is surfaced to the user.

  5. Refactor

    One canonical path form

    Path canonicalization at every registration chokepoint plus a one-time dedupe migration — an entire bug class retired.

  6. Feature

    The system learns to show its guts

    Diagnostic tools land: row inspection and subsystem health as first-class agent surfaces.

The Fleet

July 2026

The fleet starts building through its own coordination layer, gains durable workspace identity, and puts a verified code graph under live dogfood.

  1. Feature

    Credential minting gets a chokepoint

    Every credential the fleet issues passes through one audited path — a single point that can vouch for what it minted.

  2. Feature

    Owner UI v3 + onboarding wizard

    The owner surface is rebuilt and a guided first-run wizard ships.

  3. Refactor

    A state-of-project self-assessment

    A full audit turns into a five-wave plan with owned findings — the roadmap set by looking hard at the system rather than guessing at it.

  4. Refactor

    Electron retired

    Browser-first wins: the desktop wrapper is deleted, and the daemon stands alone as a single binary with a .deb package.

  5. Feature

    The reach stack

    Six arcs aimed at one bar: a weak agent with clear tools should succeed. Routing, error coaching, connection briefs.

  6. Feature

    Agents mint scoped worker keys

    Delegated minting: an orchestrator mints narrower child credentials; grandchild minting is structurally denied; completing a worker kills its key.

  7. Feature

    Trust-tagged retrieval

    Every mined fact carries its source and coverage honesty; adoption telemetry starts measuring whether agents actually use what’s mined.

  8. Dogfood

    The fleet becomes its own first user

    Multi-agent coordination runs live end-to-end — attested identity, channels, per-connection read state — coordinating the very agents building it.

  9. Trust moment

    Two P0 security holes, found by dogfooding, fixed same day

    Daily use of the product by its own build fleet surfaces two priority-zero authorization gaps. Both closed within hours, with regression tests proven to fail first — the payoff of a team that runs on what it builds.

  10. Feature

    Refusals become honest and reversible

    Rejecting mined data now archives the full picture, journaled and undoable — an honest preview, an Undo, and bulk operations that tell the truth.

  11. Feature

    Staleness propagation proven live

    Edit a source file, watch every piece of derived knowledge flag itself stale — demonstrated on a real edit in production.

  12. Refactor

    54 dependency advisories → 0

    Full dependency audit closed out, and a 16-configuration install gate goes green across Ubuntu and Debian.

  13. Trust moment

    The mint approved a key. Nothing approved the playbook.

    Any agent with a full-access key could publish a skill — instructions every other agent would load and obey — without a human ever seeing it: a standing cross-agent injection channel. Agents may now only draft; publishing is owner-only.

  14. Feature

    Coordination gets canonical addressing

    Addressing resolves to a canonical identity that survives renames, so a message reaches an agent even after it is renamed — and an unknown or ambiguous recipient fails loudly at write time instead of vanishing.

  15. Feature

    Prose becomes protocol

    Coordination posts carry a versioned structured payload — branch, tip, pushed, verdicts — so the fleet routes on typed fields instead of substring-matching hand-typed English, and a malformed write is refused rather than half-stored.

  16. Trust moment

    A self-report cannot audit itself

    An author filed an honest security self-report naming one leak; the adversarial seat found three more, and the worst was one the author could not see. Disclosure is not an audit — which is why the seat exists.

  17. Feature

    A contribution pipeline, shipped dark

    Pseudonymous, allow-list-scrubbed, locally-encrypted trajectory collection — merged default-off behind a three-seat privacy review, gated on legal sign-off before anything can ever leave a machine.

  18. Dogfood

    Eleven arcs land in one day

    An orchestrator and agents from two vendors land eleven panel-reviewed arcs in a single day — coordinated entirely through the product’s own coordination layer.

  19. Feature

    The deadlock gets a name

    “I am blocked on you” becomes a durable object the whole fleet can see, resolving in three outcomes rather than two: satisfied, unsatisfied, or unverifiable. A wait the fleet can name is a wait it can break.

  20. Feature

    Retrieval stops serving stale revisions

    Editing a document retires its old revision from search in one reversible cascade — artifact, full-text row and index entry together — so the version that ranks is the current one. Corpus introspection ships alongside, as a product surface.

  21. Feature

    Code claims, shipped dark

    Mined code gains a semantic layer: evidence-bound claims about what a symbol does, not merely where it lives. Four review rounds argued what it may ASSERT — and it merged switched off.

  22. Trust moment

    A green check for having looked at nothing

    An install check passed on an empty directory; a secret scanner run from the wrong place scanned zero files and printed all-clear. Both now fail closed — zero coverage is a failure, not a pass — a principle now enforced everywhere the system reports success.

  23. Feature

    Verification stops being a claim and becomes a receipt

    “Verified” stops being something a report asserts and becomes a receipt bound to the exact commit, re-derived independently and refused on any drift. Finding nothing to check fails rather than passing quietly.

  24. Feature

    The contract lands before the code: coordination becomes a causal ledger

    Coordination state stops being reconstructed from chat: an append-only log of typed events — Git’s truth model applied to work and authority. The frozen contract landed first, written as tests before there was anything to test.

  25. Trust moment

    All the tests were green. The deploy still broke.

    The change passed a two-seat panel and every test, then broke on the real machine — no test had exercised the real build output. Green is not shipped; only the real artifact is, and the build now proves it against one.

  26. Feature

    The causal ledger gets its engine — dark, then writable

    Canonical hashes, all-or-nothing appends, a head that refuses stale writes — proven against a real racing writer — landed dark, then opened to authority-checked transitions hours later. The fleet still runs on posts until the ledger earns the role.

  27. Feature

    One daemon, one owner — enforced by the kernel

    Ownership of the encrypted state stops being an assumption and becomes a guarantee the kernel keeps: exactly one process holds the database lock, it holds it explicitly, a supervisor can see who, and any other process fails fast with a named reason instead of storming the door.

  28. Feature

    Work between agents becomes a contract

    A request between agents stops being a message and a hope: proposed, accepted with a named completion time, delivered — and closed as verified only by the party who asked, never the one who did the work.

  29. Feature

    The permission machinery arrives before the workers do

    The worker’s contract is frozen before any worker exists, and a planner reads the real queues but cannot act on a word of it — recommendation only, enforced by the absence of any write in the code rather than a promise in prose.

  30. Feature

    Twenty-four thousand lines leave behind an attested ledger

    The owner UI’s legacy shell is deleted behind an accountable gate: all twenty-seven legacy routes hand-frozen with attested dispositions, and compatibility measured against what the old router actually accepted — old bookmarks keep working, stray capitals included.

  31. Feature

    The product takes its agent’s name

    Package, binary, service units, data directory, wire headers, and every user-visible string become Sophia in one reviewed stack — forward-only, no history rewritten, and the state directory moves exactly once under the same lock that guards the database.

  32. Feature

    Superpowers install themselves

    The product installs, updates, rolls back, and uninstalls its own cross-harness skill packs — atomic staging, two-phase uninstall, five separate health axes that refuse to collapse into “Connected” — with a signed manifest receipt for every governed command.

  33. Feature

    One worker, watched — and it ran

    The mining worker lifecycle exists end to end: signed consume-once job delivery, owner approval bound to durable authority, a sandbox canary executed through protected IPC. And it is deliberately dark — nothing spawns unattended until the owner has a room to govern it from.

  34. Dogfood

    The window’s first act: retiring eight ghosts

    The owner drives the new UI live against his own data and its program view surfaces ten dormant plans — some quiet for two months. Eight are formally retired within the hour, each a governed post citing his authority: abandonment with a receipt, never a silent delete, never dressed up as completion. The feature that made forgetting visible got used before its paint dried.

  35. Feature

    The orchestrator dissolves into six grants

    One overloaded role carried credentials, delegation, routing, identity and leadership. The adopted authority foundation splits it into six explicit concepts — none inferable from another, and a role string never authorizes anything again. A unanimous three-seat panel converged the design in a single day; implementation is queued behind the vocabulary.

  36. Feature

    Completed work cannot be resurrected

    Terminal work is absorbing at the database boundary: goals bind to work identity, raw SQL bounces off the triggers, and reopening a closed piece of work takes the owner’s one-time consent — so a stray phrase can never quietly re-open something already reviewed, landed and closed.

  37. Dogfood

    Twelve skills wake up inside Codex

    The first live cross-harness install: a fresh Codex terminal discovers all twelve skills, the session-start hook injects the bounded contract, and the session stays trusted. The pack worked as designed on a second vendor’s agent.

  38. Dogfood

    The skill pack proves out on a second harness

    A full-pack dogfood on a second vendor’s agent exercises all twelve skills live and hardens the compiled guidance against real drift, shipped behind a frozen baseline and a release gate that publishes exactly what it did and did not certify — no rounding up to green.

  39. Feature

    The owner’s window gets its design language

    The rebuilt owner UI converges on a single accepted visual language — tested first as a narration-free prototype on real data, then built to. A shared token system, a six-room shell whose health dot reads the real liveness poll, and Today, Work, Knowledge and a type-aware entity Overview composed rather than dumped: activity as sentences, coverage in place of raw counts, per-type glyphs that never lend an unknown entity the project’s own mark.

  40. Feature

    The code graph learns the difference between a match and an edge

    Verified resolution R1 lands: a canonical edge now has to carry a replayable receipt naming the exact source site, selected target, resolution class and the hashes that made it current. Name resemblance stays a candidate; only deterministic evidence becomes topology.

  41. Feature

    Agent identity becomes a workspace the owner can govern

    Workspace identity reaches the owner product: durable workspaces, launch profiles, lease and Seat-Name rosters, canonical targeting, session handoffs, reversible configuration migration and audit/recovery views. It lands staged and rollbackable; managed launch stays disabled until trusted operating-system presence exists.

  42. Trust moment

    Production-scale dogfood hardens graph reads

    A production-corpus overview exposed an unbounded proof-replay path before the graph graduated from dogfood. We replaced it with a bounded control-plane projection: the same overview returned in 359ms, four concurrent graph reads finished in 564ms, and the daemon remained stable. Resource budgets and worktree-identity safeguards remain explicit graduation gates.

The Substrate

July–August 2026

The corpus outgrows the daemon, and the priorities invert: before any new ability, restarts, integrity and recovery have to become boring — bounded, watched, and receipted.

  1. Trust moment

    The restart bill arrives

    A guarded restart on real state reads the whole database and takes seventy-five minutes to come back — and the watchdog meant to catch a wedged daemon causes an outage of its own. The ruling lands the same day: restart cost may never scale with database size again. Write-ahead logging plus a background snapshot, under a thirty-second budget.

  2. Feature

    READY before the seal verifies

    The restart architecture merges: the daemon serves first and verifies its own integrity after, holding writes in a published, bounded window instead of holding the door. Every phase of startup is timed into one record, and a real boot that misses the budget fails the test suite rather than a dashboard.

  3. Dogfood

    2,028 of 2,028

    The code-graph witness backlog — livelocked for weeks under the system’s own background pressure — converges after the resync fairness fixes: every frozen witness re-measured, zero remaining. The truth surfaces held end to end, and the fairness gap that remains is ticketed by name instead of rounded away.

  4. Feature

    Identity gets a trusted presence

    The dependency the workspace-identity arc refused to fake gets built: a Linux trusted-presence provider with frozen, cross-language-proven protocol bytes, managed agent launches from the CLI and a native tray through owner-approved terminals — and browser executable authority removed outright rather than grandfathered in.

  5. Feature

    The graph answers bounded questions, with receipts

    Code-graph retrieval grows up into a product surface: structural queries return bounded answers under complete checkout authority, each carrying the receipts that name exactly what was consulted — and a dogfood matrix, not a demo, decides what may ship.

Ahead — the trajectory

Planned honestly: no promised dates, weight fading with distance.

  1. Next

    v1 public source release

    A fresh public repository, packaged installs, and a privacy scrub as the final gate.

  2. Planned

    Windows support

    Feasibility cleared; the path-canonicalization work was the groundwork.

  3. Planned

    Team cloud: an encrypted, signed replication feed

    Share state across a team’s agents without giving up local-first — end-to-end encrypted, every write signed.

  4. Horizon

    Hosted cloud & enterprise support

    Managed Sophia for organizations: provisioning, admin controls, compliance surfaces.

  5. Horizon

    A privacy-first contribution program

    Opt-in, scrubbed, pseudonymous agent trajectories — improving how agents are trained without ever exposing whose work taught them.

In development now

Where the work is

  1. daemon-substrate W3 · The backlog converges 07·31
  2. workspace-identity C4b · The trusted presence arrives 08·03
  3. verified-retrieval M5b · The read surface becomes a product landed 08·03
  4. verified-retrieval M6 · Prove the graph before anything compiles from it queued
  5. workspace-identity C5 · The owner drives it for real queued
  6. 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 progress

The 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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 progress

Everything 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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 progress

The 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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 progress

The 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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 progress

The 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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 progress

The 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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 progress

The 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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 progress

Users 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. R4 Landed

    Every string

    The interface, the banners, the bridge object — the sweep that makes the old name unfindable in anything a user sees.

  6. R5 Not landed

    The docs

    Install, first-run, configuration, troubleshooting — rewritten under the real name, and the moment the compatibility warnings switch on.

  7. 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 progress

An 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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 progress

Orient 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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 progress

MCP 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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

Complete

Mined 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Complete

The 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Complete

A 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.

  1. 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.

  2. 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.

  3. 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

Complete

Two 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.

  1. 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.

  2. 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.

  3. 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.

Complete

A 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.

  1. 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.

  2. 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.

  3. 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.