22dcbdece6
Salvaged from PR #90734 by @Kyzcreig onto current main: - hermes_state_search.py: post-commit FTS incremental merge failures (including the bare SystemError CPython's sqlite3 layer raises under cross-thread errmsg scrambling) are contained and logged instead of escaping and making the caller replay an ambiguous, possibly-durable write (exactly-once refinement by @yuzilongleif-collab). - tests/state/test_writer_conn_thread_safety.py: live reader/writer race hammer + AST sweep freezing the no-unlocked-writer-conn invariant. On top: the sweep now also flags self._conn PASSED to helpers, which caught one more live site on main — get_session_delete_targets handed the shared writer connection to _collect_delegate_child_ids inside a _read_ctx block, executing on it without self._lock. Routed to the borrowed read connection. Co-authored-by: Kyzcreig <9063726+Kyzcreig@users.noreply.github.com> Co-authored-by: yuzilongleif-collab <235949691+yuzilongleif-collab@users.noreply.github.com>