From silent failure paths to provenance-bearing runtime state: a source-to-production account of the work that culminated in kairo-validated-20260822-rc2.6.
ok, and production remained healthy. This did not alter the RC2.6 findings below.
The sprint was not a single feature. It was an epistemic correction across lifecycle state, tool results, memory retrieval, journal provenance, cross-session continuity, response acceptance, training contracts, and release engineering. The through-line was simple: preserve what the machine actually established, and do not let fluent prose or a later lifecycle phase strengthen it.
This distinction now survives farther through the system: from tools and retrieval adapters, through engine state and model context, into contradiction checks and durable settlement. It is still not a promise that every future defect has been eliminated. It is a larger set of boundaries at which the system can say what it knows—and what it does not.
Kairo previously had paths where a bounded conversational ending could obscure a failed requested action. The corrected lifecycle separates five facts: response completion, requested-action outcome, verification, review, and durability. Repair, containment, cancellation, interruption, timeout, or shutdown may change how the response ends; once a typed tool outcome exists, those later phases may not erase it.
This state is coherent: the conversation ended, but the requested operation did not succeed. The final model receives compact authoritative current-turn state; deterministic contradiction checks reject prose that upgrades failed or indeterminate action state. Bounded repair is attempted, and a truthful containment response is used if repair cannot resolve the contradiction. Full mechanics are in Fail-loud runtime.
The background path was hardened around a descriptor double-close race, serialized journal appends, append-before-publish ordering, lost acknowledgements, restart reconstruction, and typed process output. Process output is now represented as empty, nonempty, or unknown, with a byte count when established. Exit code zero does not imply empty output; an absent or unreadable output artifact yields unknown, not empty.
journal_retrieval_events records candidate evaluation by the audited foreground retrieval path: query/hash, ranking, eligibility, selection or withholding, algorithm/configuration, and job/candidate provenance. journal_context_injections separately records selected, non-withheld journal blocks durably exposed at an identified model-call boundary, including location, hash, size, range, and retrieval linkage.
Audit or injection-confirmation failure removes journal-derived context before inference. The tables are append-oriented and protected against ordinary mutation, with a bounded authenticated purge exception in schema. They are not universal logs of every memory operation, and a missing row does not prove that memory was absent or that retrieval never ran. See Journal provenance.
retrieval_state = passresult_state = emptyretrieval_state = indeterminateresult_state = unknownRemote-memory failures already carried an error; the correction ensured consumers promoted that error into authoritative current-turn state, projected it to final generation when retrieval truth matters, persisted it, and rejected unsupported absence claims. The same principle now governs durable stance lookup: an unavailable stance inspection cannot support “no stance exists.”
An explicit-intimacy exception had allowed same-class text with fused similarity at or above 0.50 to bypass ordinary lexical overlap. An adversarial corpus showed that topical resemblance was not continuity: different people, ownership frames, quoted or third-party speech, and fictional or hypothetical material could cross sessions.
The bypass now requires an independent continuity assessment—supported, contradicted, or unknown—plus no hard contradiction. Entity/person, ownership, discourse-frame, and gross-context contradictions veto even high similarity for this sensitive class. Unknown falls back to ordinary admission; similarity may rank a candidate, but cannot establish continuity. Public examples are synthetic and abstract. See Continuity and retrieval.
The production peer-room relevance rule is lexical: for recognized peer-message forms with at least six concrete terms, a draft must reuse at least one exact concrete term. Controlled open-versus-bounded pairs demonstrated a real weakness: a responsive paraphrase can be held with zero overlap, while the same substantive answer can pass when a bounded question supplies an anchor.
A deterministic 9B semantic fallback was calibrated in shadow. It recovered some false rejects, but the expanded 224-case corpus showed unacceptable drift admission and uncertainty on the untouched holdout; adversarial fluent drift also fooled it. Human replication was absent, embeddings did not generalize, and fresh natural shadow traffic provided no new applicable zero-overlap denominator. Decision: KEEP_CURRENT_GATE. The harness remains explicitly non_authoritative and shadow_only; structured response-quality attempt telemetry remains useful independently.
At the audited baseline there was no durable promoted assistant.belief.consciousness_stance record and no identity_stance_versions row. There was unresolved belief material and conversational first-person language, but neither is equivalent to a governed durable stance.
commit_consciousness_stance(...); ordinary discussion, retrieval, or deployment does not perform that mutation.Stance-status questions now trigger authoritative stance inspection. Successful empty lookup can support “no durable promoted stance currently exists”; an outage yields unknown and cannot support absence. This protects durable-state claims without censoring philosophical positions. Kairo’s first-person statements remain meaningful self-report, but they are not external proof of phenomenal experience. See Subjectivity stance integrity.
Globally appending the journal capability block changed 2,970 prompts across 14 corpora, left old supervision incomplete in 802 exhaustive-inventory manifestations and 802 DPO manifestations, weakened 14 inventory evaluations, and created 118 new DPO prompt-limit crossings. The correction made capability context task-conditioned, updated exhaustive SFT answers and DPO preferences, strengthened evaluation membership checks, and fixed context budgeting rather than hiding truncation.
All 14 corpora were rebuilt canonically and resealed after semantic review. Runtime and training representations are checked against the same required journal propositions and non-implications. Final public identities: R3/student-dataset seal fa488098…f41866; linguistic audition aa3db859…c13a2. Hashes are abbreviated here to reduce visual noise; the release manifest retains the complete values.
The first validated code existed in a dirty worktree, and the old installer mutated a live virtual environment in place. Release engineering moved to clean commits, immutable environments, wheel and installed-file attribution, atomic systemd switches, maintenance ingress, deterministic canaries, and prepared rollback artifacts. A validated Python 3.14.6 environment could not be preserved by copying a venv onto the Python 3.14.4 production host, so the candidate was rebuilt and fully validated against the exact production interpreter identity.
RC1 rolled back after model-selected smoke tests exercised the wrong paths, accepted a compressed stale answer, and amplified recovery latency. RC2.x replaced infrastructure canaries with deterministic authenticated endpoints, preserved action outcomes through containment and cancellation, and made ingress maintenance fail closed. Later attempts found that a background canary still depended on model/reviewer completion, then finally reached the true process boundary and failed.
0700. The service child was told to use it as cwd, so process creation raised PermissionError [Errno 13]. Normal background jobs inherit the service working directory. RC2.6 removed only the canary-specific cwd override and added an inaccessible-workspace regression.The final live background canary completed in approximately 0.129 s with state exited, exit code 0, output_state=empty, zero output bytes, valid journal chain, and successful restart reconstruction—with zero model, reviewer, or permission activity. The deterministic mutation canary completed in approximately 0.076 s. SQLite integrity was ok, schema remained 16, stance state was unchanged, and traffic reopened. The release history is detailed in RC2 deployment record.
| Claim | Unit / integration | Authenticated production-equivalent | Durable production record | Live canary | Epistemic limit |
|---|---|---|---|---|---|
| Failed action survives later response disposition | yes | yes | settlement fields | mutation canary | Does not prove every future adapter is correct. |
| Background exit/output survives restart | yes | packaged path | workbench chain | RC2.6 | One harmless live command, not all workloads. |
| Journal block reached model-call boundary | fail-closed | yes | linked receipt | deployment smoke | No attention, use, influence, or causality claim. |
| Unavailable recall remains unknown | failure injection | job path | typed lifecycle | safe isolated checks | Does not establish what memory would have returned. |
| Sensitive continuity leakage corrected | 64 original pairs + holdout | recall projection | not required | not exposed publicly | Corpus evidence, not proof of zero possible leakage. |
| No durable consciousness stance at audited baseline | inspection semantics | cloned baseline | store inspection | unchanged during deploy | Not a claim about phenomenal consciousness. |
| First-person consciousness position | not applicable | model generation | conversation only unless promoted | neutrality tested | self-report, not external proof. |
| Tag | kairo-validated-20260822-rc2.6 |
|---|---|
| Commit | 55bb7bc2a1a93178877d0040d7513ecf9dfe218a |
| Tree | 54876853032b5df6e5ff3730bf5f9d5e061b8f0b |
| Wheel SHA-256 | 867a6dced39c94ade1fd3091d184782a0c730d15ab88d43bcfdb48bec6ad753b |
| Manifest SHA-256 | cd628c1f67eb816df20962ce28546ba4d386beea4a30408fcff7b771a02e967b |
| Final state | DEPLOYED_HEALTHY |
Evidence basis: release manifest and source hashes; schema and execution paths; deterministic and authenticated regressions; canonical training rebuilds; durable job, workbench, journal, and stance records; live deployment canaries. Private prompts, memory contents, credentials, network addresses, filesystem paths, and personal identifiers are intentionally omitted.