Skip to content

v2.5.0b3 — beta: post-b2 CI-incident fix bundle (bug-123, bug-124)

Pre-release
Pre-release

Choose a tag to compare

@Cloto-dev Cloto-dev released this 17 Jul 05:17

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

Fix-only beta carrying the two defects uncovered by the post-b2 CI-incident investigation — bug-123, bug-124 in qa/issue-registry.json — plus the upstream doc-drift corrections surfaced by the Zenn book fact-check audit (PRs #48, #50). No new features; DB schema and MCP tool contract unchanged.

Highlights

  • Same-boot FTS recovery rebuild (bug-123, MEDIUM): the bug-118 recovery path recreated stale FTS triggers and flagged an index rebuild, but the rebuild condition never checked that flag — the actual rebuild was silently deferred to the next boot, leaving FTS search on a stale index for the whole recovered session. The rebuild now fires in the same boot that performs the recovery.
  • Orphaned-connection interpreter hang (bug-124, HIGH, test-infra): every aiosqlite connection owns a non-daemon worker thread, so a test that re-pointed database._db = None without close() left a thread that blocked interpreter exit forever — the suite passed in seconds, then the process hung until GitHub's 6-hour job limit. This is how b2 was merged with its test jobs still pending. Fixes: the offending test now goes through the existing close_db() helper, the helper's docstring carries the doctrine, and ci.yml gained a timeout-minutes: 15 backstop so any future hang fails fast instead of burning 6 runner-hours.
  • Doc drift (PR #48): LMEB expanded to its correct name (Long-horizon Memory Embedding Benchmark), archive_episode's history description now states what the field is actually used for (start/end timestamp extraction; the episode embedding comes from summary), and calibrate_threshold's description reflects the separation-based default. README Quick Start now leads with the bundled cpersona-memory skill install path.

Deliberate non-change: version stays a fix-only beta — the structural gate for the _db = None orphan pattern (class prevention for bug-124) is tracked separately and will ride a later cut.

Verification before this cut: 352 passed / 5 skipped with clean interpreter exit, ruff clean, verify-issues.sh 124 issues / 0 stale / 0 errors; CI green on the bump commit (all four jobs individually confirmed).

Graduation line: 2.5.0b1 → 2.5.0b2 → 2.5.0b3 → (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