mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-29 04:26:20 +00:00
Two review findings on #807/#812: - retrieve() and trace_lineage() were routed through transaction()'s BEGIN IMMEDIATE, so plain reads took SQLite's writer lock and serialized behind every other read/write, defeating the WAL concurrency this PR was meant to add. They now use a dedicated _read_connection() (configured, no explicit BEGIN). - track_entity()/track_chunk() swallowed all internal storage exceptions unconditionally, so a single item's failure inside track_entities_batch()/track_chunks_batch()'s shared transaction never reached the batch loop's per-item except, inflating tracked_count for entries that were never persisted. Both now re-raise when called with a shared _conn (batch context) while still degrading gracefully on standalone calls. Added regression tests for both, corrected the CHANGELOG entry and docs that described the prior (overly broad) behavior.