Status: local release candidate accepted; live three-host smoke complete
Prepared: 2026-07-29
Target: v1.2.0
Publication: not authorized; no tag, push, GitHub Release, or PyPI upload
1.2.0.The reviewable candidate is on codex/v1.2.0-rc. Its three implementation
checkpoints are:
82519e6 — feat: harden Cairntir learning foundation977b180 — feat: connect Codex Cursor and Claude hosts4ea01de — ci: harden v1.2.0 release pipelineNo remote branch, tag, release, or package publication was created.
The rehearsal used SQLite’s online backup API so the live database and its WAL were copied consistently.
fastembed/text-embedding-v1/model=sentence-transformers/all-MiniLM-L6-v2.ok.0.0 / 0.drawers table SHA-256 before:
2292d830767a60fa59fcd550f52aa16c51797873f62bfbb5bd4a3fb513515591.drawers table SHA-256 after:
2292d830767a60fa59fcd550f52aa16c51797873f62bfbb5bd4a3fb513515591.The identical hash proves the reindex changed vectors and index metadata, not verbatim memory.
Patrick explicitly approved the live reindex after the rehearsal passed. One verified Cairntir MCP process held the SQLite file open; it was stopped by exact process ID after its command line was rechecked, and the first refused atomic replacement left the source untouched.
The successful retry produced:
cairntir.backup-20260729T034641Z.db;3f7b6b69-44d2-48e0-96ea-b56cb8f04115;ok, zero foreign-key errors, and zero started/failed
workflows;2292d830767a60fa59fcd550f52aa16c51797873f62bfbb5bd4a3fb513515591,
exactly matching the rehearsal before/after hash.The earlier schema-v6 backup remains present alongside the pre-reindex backup.
After the release candidate was accepted, Cairntir’s required Quality memory
loop appended essential audit drawer #124. A follow-up cairntir doctor
reported 124 drawers / 124 vectors, the same verified generation, SQLite
integrity ok, zero foreign-key errors, and zero started/failed workflows.
This normal append happened after the 123-drawer preservation proof; the hash
above intentionally describes the corpus at reindex time.
The automated shared-store fixture remains green. On 2026-07-29, real Codex,
Cursor, and Claude Code clients then completed chain
CAIRNTIR-LIVE-3HOST-20260729-A against the live canonical database:
raven-cobalt-731. Exact fetch records
host=codex, client_name=codex, session
2b8754b9-1888-4b45-afa6-cd1f0903f690, and MCP tool surface 17.violet-cedar-294. Exact fetch records host=cursor,
client_name=cursor, session
f945967d-2009-40e9-8f54-6fa73264764d, and source drawer #125.silver-ember-866. Exact fetch records host=claude,
client_name=claude, session
472fecb1-10b7-4b6b-ad83-aef116628b9a, source drawer #126, retry receipt
#129, and every expected metadata field.The smoke test also exposed useful non-passes, retained verbatim instead of deleted:
host=unknown; it is not counted as the Claude Code pass.host=claude, but their test prompt was truncated by a Windows command-line
pipe character before Claude received it. Switching the harness to standard
input preserved the complete prompt and produced passing drawer #130.All live launchers record a real host and unique server session. Their model
field is explicitly unknown because these clients do not disclose the
active runtime model to the MCP subprocess. Cairntir does not invent a model
name. This is an honest provenance limitation and a post-release integration
target, not a hidden pass.
The live-chain doctor check reported 130 drawers / 130 vectors, matching
embedding identity and dimension, SQLite integrity ok, zero foreign-key
errors, and zero started or failed durable workflows. Project-scope Claude,
Codex, and Cursor wiring all report ready. Standalone Cursor required the
documented user-scope MCP installation; its global User Rules remain a manual
Cursor Settings step.
The required final Quality loop then appended essential audit drawer #131:
96/100 — SHIP IT to the release candidate and remote CI, with publication
still human-gated. A post-audit doctor rerun reports 131 drawers / 131 vectors
with the same verified generation and clean integrity/workflow checks.
v*.*.* tag publishes automatically. Tagging is therefore a
separate human gate, never part of local completion.cairntir-1.2.0.tar.gz and cairntir-1.2.0-py3-none-any.whl build.1.2.0, redirected Windows help, and all three bundled recipes without a
source checkout.UnicodeEncodeError in Typer help rendering.