sqlite-utils 4.0rc2 shipped after Claude Fable caught 5 release blockers in the release candidate, including a silent data-loss bug in Table.delete_where() at db.py:2948. The method ran DELETE via a bare self.db.execute() with no atomic() wrapper, leaving the connection in_transaction=True and causing every subsequent write to silently vanish on close. None of it would have survived a reopen.
The fix cost $149.25 and 37 prompts across 34 commits, touching 30 files with +1,321 and -190 lines of changes. Author Simon Willison ran Claude Code on his iPhone during the Half Moon Bay Fourth of July parade, checking in between prompts while the agent churned for 10 to 15 minutes per task. The most consequential output was not the code but the documentation: a clear, explicit transaction model stating that every write method commits before returning, and that db.atomic() is the only tool you need for grouped operations.
The full PR, shared Claude transcript, and a secondary review by GPT-4.5 are all public. Read the original for the autocommit=True edge case introduced in Python 3.12, which broke nearly the entire test suite and required a dedicated fix, and for Willison's evolving take on why cross-model review, once dismissed as superstition, has become part of his standard workflow.
[READ ORIGINAL →]