Skip to content

v2.5.0b1 — beta: comprehensive audit fix bundle

Pre-release
Pre-release

Choose a tag to compare

@Cloto-dev Cloto-dev released this 16 Jul 03:42

Pre-release (2.5 Experimental line — the 2.4 series remains the Stable line, latest v2.4.40).

Beta graduation of the 2.5.0 internal-stabilization line. A comprehensive pre-release audit (hybrid: 10 Gemini finders + 3 Anthropic deep finders, every finding adversarially verified; then a differential a2-vs-b1 demonstration and a cross-provider regression hunt over the fix delta itself) landed 28 fixes (bug-086..113) — full details in qa/issue-registry.json.

Highlights

  • Read/write connection separation (bug-086/087): the read seam owns a dedicated connection, so WAL snapshot isolation actually applies — dirty reads on the shared connection could acknowledge a store as a duplicate of a row that was later rolled back (silent loss).
  • Atomic merge mode='move' (bug-088): the source wipe runs inside the merge transaction — a writer queued on the FIFO lock could previously lose an acknowledged row deterministically.
  • Durable export/import (bug-091/092/110): exports write via temp + rename (a mid-export fault no longer destroys the previous backup), imports validate the file body against its header across all three record types (truncated backups roll back), and recall_count/last_recalled_at/created_at survive round-trips.
  • Locked-row contract (bug-098): all fixers carry the locked = 0 guard — check_health(fix=true) can no longer rewrite a locked memory's fields.
  • γ-visible write dedup + scope-local temporal scoring (bug-106/107): write dedup matches read semantics; a scoped recall's confidence curve is no longer scaled by unrelated buckets.
  • Queue drain hardening (bug-089/090/093/109): single-transaction archive with a claim-token delete, failure dicts route into retry, agent wipes purge queue rows and cannot be resurrected.
  • Packaging/CI: skills/ ships in the wheel (cpersona/skills/), ruff joins CI as a gate, 30 new regression tests (test_audit_2500b1.py).

Verification before this cut: 335 passed / 5 skipped, ruff clean, verify-issues.sh 113 issues / 0 stale / 0 error; a differential harness reproduced 5 representative bugs live on v2.5.0a2 and confirmed all 5 resolved here.

Graduation line: 2.5.0a2 → 2.5.0b1 → (rc) → 2.5.0 final — the line then enters Current; Stable requires a later production-soak certification event (see SUPPORT.md).

🤖 Generated with Claude Code