sqlite-utils 4.0rc2: Written by Claude Fable, $149.25, Fixes Data Loss Bug

Simon Willison shipped sqlite-utils 4.0rc2, a Python library for SQLite, written mostly by Claude Fable. The total cost: about $149.25 in API fees over 37 prompts and 34 commits, changing +1,321 -190 lines across 30 files.
What Changed
The release candidate fixes a critical data loss bug in Table.delete_where() — previously, it never committed, leaving the connection in-transaction and poisoning all subsequent writes. Here's the reproduction from Fable's analysis:
db = sqlite_utils.Database("dw.db")
db["t"].insert_all([{"id": i} for i in range(3)], pk="id")
db["t"].delete_where("id = ?", [0])
# conn.in_transaction is now True
db["t"].insert({"id": 50})
db["u"].insert({"a": 1})
db.close()
# Reopen: rows are [0, 1, 2] — the delete, row 50, AND table u are all gone.
Willison calls this a “really bad bug” — one he’s glad Fable caught before the stable 4.0 release.
New Transaction Model
Every write method (insert(), upsert(), update(), delete(), delete_where(), transform(), create_table(), enable_fts(), etc.) now runs inside its own transaction and commits before returning. No manual commit() needed.
Two exceptions:
- Use
db.atomic()to group multiple operations atomically - If you open a transaction with
db.begin(), the library will never commit it — you control the commit
Python 3.12+ autocompat Support
Fable also ensured compatibility with Python 3.12's new sqlite3.connect(..., autocommit=True|False) mode. The library's automatic per-method transactions are designed for default connection mode, and Fable patched the test suite to pass under the new autocommit settings.
Review Process
Willison started the work on his iPhone via Claude Code for web, then switched to a laptop for final review via GitHub PRs. He says reviewing documentation edits first is an excellent way to understand what changed. A final review by GPT-5.5 caught additional edge cases — the full PR transcript is shared.
Who It's For
Python developers who use sqlite-utils for lightweight database ops and want a production-ready 4.0 release with proper transaction safety.
📖 Read the full source: HN AI Agents
👀 See Also

Introducing Xrouter: A Smart Hybrid LLM Router to Optimize Cost and Performance
Discover Xrouter, an open-source creation that dynamically integrates local with cloud inference, designed to slash AI costs while boosting efficiency.

CostClaw: Free Local Cost Tracking Dashboard for OpenClaw Agents
CostClaw is a free, local plugin that captures every LLM call via OpenClaw's native hooks and provides a dashboard showing model breakdowns, per-session costs, and hourly spend charts. The developer discovered their heartbeat agent was running Claude Sonnet every 3 minutes 24/7, costing $60/month, and switching to Haiku cut their bill by ~65%.

One-Command Docker Setup for OpenClaw with Full-Disk Encryption and Monitoring
A Docker setup for OpenClaw that provides full-disk encryption guides, Tini as PID 1, built-in monitoring tools, and data stored as plain files on the host. Deployment requires just two commands: git clone and ./shell.

Tycono: Open-Source AI Agent Harness with Org Chart and Autonomous Improvement Loops
Tycono is an open-source harness where you define AI agent roles in YAML (CTO, engineer, QA, etc.) and they work together following an org chart with autonomous improvement loops. The system ran 17 rounds overnight on a pixel running game task, generating 6,796 lines of code across 43 commits.