AI News HubLIVE
站内改写2 分钟阅读

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 编写,比他手动编写的更好——因为发布说明需要的是“枯燥、可预测和准确”。