sqlite-utils 4.0rc2 Released With Claude Fable Assistance
- •Simon Willison released sqlite-utils 4.0rc2 on July 5, 2026, featuring significant transaction handling improvements.
- •Development involved Claude Fable, completing 34 commits and 1,321 additions for an estimated cost of $149.25.
- •The update introduces automatic per-method transactions, replacing implicit behavior with immediate commits for all write operations.
Simon Willison released version 4.0rc2 of the Python library sqlite-utils on July 5, 2026, primarily developed with the assistance of Claude Fable. The update was driven by an effort to ensure a stable 4.0 release while adhering to semantic versioning standards, resulting in +1,321 and -190 code changes across 30 files. The project utilized 37 prompts to address feedback, including five critical issues identified as release blockers. One notable bug corrected in this version involved delete_where(), which previously failed to commit and left connections in a transaction-heavy state, posing a risk of data loss.
The most significant architectural change in this release centers on transaction handling. All write operations—including methods like insert(), upsert(), update(), and delete()—now execute within their own atomic transactions and commit before returning, ensuring data is saved to disk immediately. The library now explicitly rejects connections created with Python 3.12+ autocommit settings, as they cause conflicts with commit and rollback behavior. Additionally, the update addresses edge cases in db.query(), where non-row statements now raise ValueError rather than committing changes implicitly. Documentation was expanded to detail these transaction behaviors and the new manual control methods, db.begin(), db.commit(), and db.rollback().
To ensure reliability, Willison employed a cross-model review process, utilizing GPT-5.5 to audit changes generated by Claude Fable. This verification identified issues such as unintended auto-commits in db.query() and transaction inconsistencies with INSERT ... RETURNING statements, both of which were subsequently resolved. The total estimated cost for the development work using the Claude Max subscription was $149.25, calculated via the agentsview tool. The release introduces several breaking changes, including the shift to ValueError for API validation errors and the removal of the detect-types flag. Furthermore, sqlite-utils 4.0rc2 adds support for inserting rows with default values and improves the migrations system to ensure that migration records are kept within transactional bounds.