Files
Claude 774e62bffd Drop sqlite-utils 3.x support, require 4.0 or higher
The 3.x branch of sqlite_transaction() could never work: sqlite-utils
3.x table helpers commit as they go, and any COMMIT inside the shim's
savepoint block destroyed the savepoint out from under it - 23 tests
failed on 3.x with "no such savepoint". sqlite-utils 4's
Database.atomic() suspends per-call commits inside the block, which is
the behavior the message store's write paths actually need, so the
floor moves to 4.0 and the shim is deleted in favor of calling
db.atomic() directly.

Also retires the remaining placebo `with db.conn:` blocks - a no-op
under 3.x autocommit, and under 4 the sqlite3 exit commit could commit
a caller's open transaction. Embedding batch writes and
Collection.delete() now use db.atomic() and are genuinely atomic;
m007's wrapper around the rename is dropped rather than replaced since
a single statement gains nothing from a transaction.

CI loses the sqlite-utils version matrix axis and its install step -
every job now tests the 4.x floor - with the cog check re-homed to the
ubuntu/3.14 cell. The Justfile no longer needs --with to force a 4.x
cog run. Verified: 942 tests, black, mypy, ruff and cog --check all
pass on sqlite-utils 4.1.1, and the transaction-heavy suites pass on
4.0 exactly.

Refs https://github.com/simonw/llm/pull/1562

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01538ebAg81aDhe7Qb5qwZcU
2026-07-29 13:03:04 -07:00
..
2025-05-09 20:24:55 -07:00