- `append_turn` 의 doc 은 "wrap in one transaction" 보장하지만 실제
코드는 auto-commit `conn.execute` 두 번이라 두번째 실패 시 first
row 가 commit 된 채 inconsistent 됨. 진짜 transaction 으로 교체:
`conn.transaction()` → `tx.execute(insert)` → `tx.execute(update)`
→ `tx.commit()`. SQLite BEGIN 으로 감싸 두 statement atomic.
`lock_conn()` 이 `MutexGuard<Connection>` 반환하므로 `let mut conn =
self.lock_conn(); let tx = conn.transaction()` 패턴 가능 (MutexGuard
의 DerefMut 활용).
9 chat_sessions 테스트 + clippy 통과.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>