sqlite-utils 4.0rc2:由Claude Fable編寫(花費約149.25美元)
Simon Willison發佈了sqlite-utils 4.0rc2,這次發佈主要藉助Claude Fable模型完成。文章詳細介紹了從4.0rc1到rc2的改進過程,包括髮現並修復的關鍵bug,如delete_where()未提交導致數據丟失的問題。此外,還通過GPT-5.5進行了最終審查,發現了兩個值得關注的問題。整個開發過程花費了約149.25美元(未補貼成本)。
Simon Willison 發佈了 sqlite-utils 4.0rc2,這是 SQLite 工具庫的一個重要候選版本。此次發佈的大部分代碼由 Anthropic 的 Claude Fable 模型編寫,成本約為 149.25 美元(按未補貼 API 價格估算)。
在 4.0rc1 發佈後不久,Willison 決定利用 Claude Fable 幫助完成 4.0 穩定版的最終工作。他通過 Claude Code for web 發起了審查,結果發現了多個嚴重問題,其中包括 5 個被分類為“發佈阻塞”的 bug。最嚴重的問題是 delete_where() 方法未正確提交事務,導致後續所有數據庫寫入操作丟失。這個 bug 如果隨正式版發佈,將需要在 4.0.1 中修復,但幸好被及時發現了。
在 37 次提示、34 次提交和 30 個文件的修改過程中,Willison 和 Fable 逐一解決了所有反饋,並改進了多個設計。有趣的是,在 Fable 處理複雜任務(每次可能需要 10-15 分鐘)時,作者甚至有時間外出參加國慶遊行,通過手機遠程檢查進度並給出下一步指令。
最顯著的變化涉及事務處理,這是 rc1 中的標誌性新特性。rc2 增加了 comprehensive 文檔,詳細説明新的事務模型。所有寫入方法(insert、upsert、update、delete、delete_where、transform 等)現在都在自己的事務中運行並在返回前提交。用户無需調用 commit(),也無需關閉數據庫來持久化更改。只有兩種特殊情況需要手動處理事務:使用 db.atomic() 進行批量操作,或使用 db.begin() 自行管理事務。
此外,Willison 還進行了交叉審查:讓 GPT-5.5 審查 Fable 的代碼。這種做法曾讓他覺得有些荒謬,但事實證明非常有效。GPT-5.5 發現了兩個優先級為 P1 的問題:db.query() 在檢查 SQL 語句類型之前就執行並提交了寫操作,以及 INSERT ... RETURNING 語句的提交僅發生在生成器被完全迭代之後,這違反了文檔的承諾。這些問題隨後在 Fable 的幫助下得到了修復。
整個開發過程的成本估算令人驚訝:主要會話花費 141.02 美元,加上多個子代理(API 掃描、事務審查、提交審查、遷移審查等)的總成本為 149.25 美元。Willison 使用 Claude Max 訂閲(200 美元/月)進行工作,他表示很高興訂閲提供了這些能力,但也承認本應更多使用更便宜的模型作為子代理。
最終,sqlite-utils 4.0rc2 包含了重要的破壞性變更和改進,包括自動提交、改進的驗證錯誤處理、upsert 的主鍵要求、WAL 模式的事務安全等。完整的發佈説明已記錄在 changelog 中,Willison 指出這些發佈説明由 Fable 編寫,比他手動編寫的更好——因為發佈説明需要的是“枯燥、可預測和準確”。