cairntir

v1.2.0 Release-Candidate Acceptance

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

Definition of Done

Local checkpoint

The reviewable candidate is on codex/v1.2.0-rc. Its three implementation checkpoints are:

No remote branch, tag, release, or package publication was created.

Database rehearsal evidence

The rehearsal used SQLite’s online backup API so the live database and its WAL were copied consistently.

The identical hash proves the reindex changed vectors and index metadata, not verbatim memory.

Live database evidence

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:

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.

Host acceptance evidence

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:

The smoke test also exposed useful non-passes, retained verbatim instead of deleted:

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.

Supply-chain posture

Local verification evidence

Explicitly deferred beyond v1.2.0