A conversation is not a Task database
Provider sessions are useful cognition transports, but they do not safely own Goal identity, the current Task frontier, the exact candidate set shown to a model, completed Effects, unresolved Dispatches, verification receipts, or TaskOutcome. Transcripts are also expensive and ambiguous continuation artifacts: they mix instructions, observations, rejected ideas, hidden provider state, and presentation.
Host therefore compiles one bounded immutable Context from durable objects, invokes a replaceable provider outside the Task lease, and deterministically admits or rejects the returned decision against the current world.
Runtime truth and Task truth are different
Runtime owns Workspaces, Jobs, Attempts, systemd units, process trees, output, Artifacts, cancellation, and physical recovery. Host owns Goals, Tasks, semantic Effects, current Tool bindings, candidate decisions, Dispatch correlation, independent verification, and outcomes.
A successful Runtime Job is evidence about execution. It is not proof that the Task is semantically complete.
This separation allows Runtime to remain thin and universal while Host can interpret the result without teaching the execution layer about repository goals, model choices, or product meaning.
The durable Host has two mechanisms
Typed immutable JSON objects are written and fsynced before an event references them. One SQLite transaction then compares the expected stream revision and commits the object references, event, stream head, graph indexes, and resulting Task projection together.
The projection is a checked materialized view, not a second source of truth. A fresh Host validates referenced objects and rebuilds every Task from its event head before accepting work. Stream gaps, object corruption, projection drift, or identity conflict fail startup rather than being guessed away.
A minimal kernel coordinates transitions, not workflows
Read, cognition, and mutation workloads repeated the same mechanical sequence: read the current projection and event head, acquire a short Task lease, recheck revision and frontier, build one next semantic transition, append at most one event with revision CAS, and release the lease.
HostKernel owns only lease lifetime, monotonic timestamps, one-transition admission, and atomic event/projection commit. It never invokes a provider or Runtime Tool and does not become a scheduler, workflow DSL, policy engine, or generic Effect framework.
Cognition is split by a durable boundary
Context compilation commits before provider invocation. The Task lease is released while the external model runs. On return, Host reacquires the lease, rereads current state, checks that the decision targets the exact Context and one admitted candidate, rejects invented identities, rechecks world drift and completed Effects, and marks a stale decision superseded if another process already advanced the Task.
Codex/GPT and Hermes/DeepSeek can evaluate the same durable Context. Agreement is evidence about replaceability, not authority to bypass deterministic admission.
UNKNOWN is a first-class recovery state
Before a changing Runtime call, Host persists the Effect, Tool contract, Binding, stable client request identity, and Dispatch intent. A lost response after delivery becomes UNKNOWN. A fresh Host process searches for the original Runtime Job by the committed request identity and observes that Job to terminal state.
Failure to find the Job does not authorize redispatch. Conflicting Jobs fail closed. Runtime success still does not finish the Task: Host independently reads and verifies the changed world before recording a completed outcome.
Live faults changed the architecture
Production history contained thousands of Jobs, making full Registry scans semantically correct but operationally slow. Runtime gained exact clientRequestId filtering; Host discovers the capability from the Tool schema and still rejects conflicting identities. Runtime restart recovery also learned that systemd “active” is not readiness—MCP initialization must succeed before reconciliation.
These changes reduced the measured local guarded-mutation recovery path to subsecond without weakening ambiguity handling.
Why Host became an independent repository
Once read, cognition, mutation, and restart recovery crossed their gates, continued incubation would blur state ownership. Host now versions implementation, Host storage, provider adapters, Runtime coordination, tests, and evidence independently. Computing remains authoritative for shared protocol definitions and conformance. Runtime remains authoritative for physical execution.
What is still missing
The current mutation is a narrow proof workload. Host has no formal CLI, service, state-root contract, inspect or doctor surface, backup and restore, deploy and rollback, or general user Workbench. Whole-machine restart, abrupt power loss, long-history performance, remote partition, multi-Agent scheduling, and general repository engineering remain unproven.
The next step is not another abstract Task object. It is a real repository Goal that must survive model replacement, Runtime interruption, verification, review, and eventual publication.