v2.5.2a1 — alpha: refactor seams under mutation proof + agent-facing API polish
Pre-release
Pre-release
Pre-release (opens the 2.5.2 stabilization-patch ladder; latest final release remains v2.5.1, which pip installs by default — pre-releases require explicit opt-in).
First alpha of the 2.5.2 line ("stabilization / bug-fix patch, no new features" — the ladder runs a1 → beta → final). This cut carries the merged alpha-stage work (#59) plus the pre-release review follow-up (#60). DB schema unchanged; tool-contract changes are deliberate, additive, and documented in the tool descriptions (2.5.x charter).
Highlights
- Refactor seams under mutation proof (#59):
admin_handlersper-record decomposition (_ImportTally/_MergeTally),vector._search_vectorsplit (_search_vector_remote/ local scans),_calibrate_fused_gateextraction — all pinned equivalent to v2.5.1 by a machine-generated golden behaviour harness (tests/behaviour_252.py, 43 equivalence tests) and a mutation-proof script. - Source contract normalization at the write seam (Task #282): known legacy
sourceshapes (lowercase type words, Rust serde externally-tagged dicts, bare'user'/'assistant'strings) are normalized to the canonical{type, id, name}on store; unknown shapes stay verbatim and keep surfacing viacheck_health(invalid_source_type). The fixer is now mapping-based (preserves id/name) instead of the pre-2.5.2 blanket-User overwrite. - Agent-facing API polish:
storeresponses exposeembedded; recall rows exposematch_reason;check_healthgains a 3-tier status surface. - Pre-release review follow-up (#60, bug-139..141 in
qa/issue-registry.json):check_invalid_source_type(fix=True)reports an additivelockedcounter somapped + unmapped + lockedreconciles withcount; the deliberate null-source →{}write-seam convergence is documented in the store tool description; the no-persist branch ofstorecarriesembedded:false(branch onpersisted).
Verification
- Full suite: 523 passed, 5 skipped; lint + issue-registry verification green (CI on the tagged commit).
- Independent read-only code review of the full
v2.5.1..masterdiff: APPROVE-WITH-NITS, no release blockers; all three nits fixed in #60. - PyPI artifacts (wheel + sdist) published via OIDC Trusted Publishing with provenance.