sqlite-utils 4.0rc2: Claude Fable 작성, $149.25, 데이터 손실 버그 수정

Simon Willison이 SQLite용 Python 라이브러리인 sqlite-utils 4.0rc2를 출시했습니다. 이 라이브러리는 대부분 Claude Fable이 작성했습니다. 총 비용은 37개의 프롬프트와 34개의 커밋을 통해 약 $149.25의 API 비용이 들었으며, 30개 파일에서 +1,321 -190줄이 변경되었습니다.
변경 사항
이 릴리스 후보는 Table.delete_where()의 심각한 데이터 손실 버그를 수정합니다. 이전에는 커밋이 전혀 이루어지지 않아 연결이 트랜잭션 상태로 남아 이후의 모든 쓰기를 오염시켰습니다. 다음은 Fable의 분석에서 가져온 재현 코드입니다:
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은 이를 "정말 나쁜 버그"라고 부르며, 안정적인 4.0 출시 전에 Fable이 발견한 것을 기쁘게 생각한다고 말했습니다.
새로운 트랜잭션 모델
모든 쓰기 메서드(insert(), upsert(), update(), delete(), delete_where(), transform(), create_table(), enable_fts() 등)는 이제 자체 트랜잭션 내에서 실행되고 반환되기 전에 커밋됩니다. 수동 commit()이 필요 없습니다.
두 가지 예외:
db.atomic()을 사용하여 여러 작업을 원자적으로 그룹화db.begin()으로 트랜잭션을 열면 라이브러리가 절대 커밋하지 않음 — 사용자가 커밋을 제어
Python 3.12+ 자동 커밋 지원
Fable은 Python 3.12의 새로운 sqlite3.connect(..., autocommit=True|False) 모드와의 호환성도 보장했습니다. 라이브러리의 자동 메서드별 트랜잭션은 기본 연결 모드에 맞게 설계되었으며, Fable은 새로운 자동 커밋 설정에서 테스트 스위트가 통과하도록 패치했습니다.
검토 과정
Willison은 iPhone에서 Claude Code for web을 통해 작업을 시작한 후, GitHub PR을 통해 최종 검토를 위해 노트북으로 전환했습니다. 문서 편집을 먼저 검토하는 것이 변경 사항을 이해하는 훌륭한 방법이라고 말합니다. GPT-5.5의 최종 검토에서 추가적인 엣지 케이스가 발견되었으며 — 전체 PR 기록이 공유되었습니다.
대상 사용자
가벼운 데이터베이스 작업을 위해 sqlite-utils를 사용하며 적절한 트랜잭션 안전성을 갖춘 프로덕션 준비 4.0 릴리스를 원하는 Python 개발자.
📖 전체 출처 읽기: HN AI Agents
👀 See Also

Storybloq: Mac 앱, CLI, MCP를 갖춘 Claude Code용 프로젝트 트래커
Storybloq는 리포지토리 내 .story/ 디렉토리에 저장되는 무료 오픈소스 프로젝트 트래커입니다. Mac 앱(App Store), CLI, 그리고 Claude Code에 티켓, 이슈 및 세션 핸드오버를 노출하는 MCP 서버를 포함합니다.

Qure: 브라우저 흐름 기록에서 E2E 테스트를 생성하는 데스크톱 앱
Qure는 JetBrains에서 개발한 데스크톱 애플리케이션으로(현재 클로즈드 베타 중), 내장 브라우저에서 녹화한 내용을 바탕으로 엔드투엔드 웹 테스트 코드를 생성합니다. 개발자는 AI 에이전트를 위해 텍스트로 테스트 흐름을 설명하는 대신, 제품과 상호작용하며 수동 QA 시나리오를 녹화하면, AI가 기존 코드베이스와 일치하는 작동하는 테스트 코드를 생성합니다.

OpenClaw 예산 가드 플러그인은 동시 예산 초과 지출을 방지합니다
새로운 OpenClaw 플러그인인 @runcycles/openclaw-budget-guard는 원자적 잔액 확인, 실행 전 예약, 멱등성 재시도를 구현하여 동시 예산 초과 문제를 해결합니다. Redis가 포함된 Cycles 서버가 필요하며 bash 명령어를 통해 설치할 수 있습니다.

SoulPrint: Claude와 ChatGPT 기록을 함께 검색하는 로컬 도구
SoulPrint은 Claude(.json)와 ChatGPT(.zip)의 대화 내보내기 파일을 로컬 SQLite 아카이브로 가져오는 오픈소스 Python 도구로, BM25 순위 지정 및 강조 표시된 스니펫을 통해 두 제공자의 데이터를 동시에 전체 텍스트 검색할 수 있게 합니다.