sqlite-utils 4.0rc2 : Écrit par Claude Fable, 149,25 $, corrige un bug de perte de données

Simon Willison a publié sqlite-utils 4.0rc2, une bibliothèque Python pour SQLite, écrite principalement par Claude Fable. Le coût total : environ 149,25 $ en frais d'API pour 37 prompts et 34 commits, modifiant +1 321 -190 lignes dans 30 fichiers.
Ce qui a changé
Le candidat à la publication corrige un bug critique de perte de données dans Table.delete_where() — auparavant, il ne validait jamais, laissant la connexion en transaction et empoisonnant toutes les écritures ultérieures. Voici la reproduction de l'analyse de 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 est maintenant True
db["t"].insert({"id": 50})
db["u"].insert({"a": 1})
db.close()
# Réouverture : les lignes sont [0, 1, 2] — la suppression, la ligne 50 ET la table u ont toutes disparu.
Willison qualifie cela de « très mauvais bug » — un bug qu'il est content que Fable ait attrapé avant la version stable 4.0.
Nouveau modèle de transaction
Chaque méthode d'écriture (insert(), upsert(), update(), delete(), delete_where(), transform(), create_table(), enable_fts(), etc.) s'exécute maintenant dans sa propre transaction et la valide avant de retourner. Plus besoin de commit() manuel.
Deux exceptions :
- Utilisez
db.atomic()pour grouper plusieurs opérations de manière atomique - Si vous ouvrez une transaction avec
db.begin(), la bibliothèque ne la validera jamais — vous contrôlez la validation
Prise en charge de autocompat Python 3.12+
Fable a également assuré la compatibilité avec le nouveau mode sqlite3.connect(..., autocommit=True|False) de Python 3.12. Les transactions automatiques par méthode de la bibliothèque sont conçues pour le mode de connexion par défaut, et Fable a corrigé la suite de tests pour passer sous les nouveaux réglages autocommit.
Processus de révision
Willison a commencé le travail sur son iPhone via Claude Code pour le web, puis est passé à un ordinateur portable pour la révision finale via des PR GitHub. Il dit que réviser d'abord les modifications de documentation est un excellent moyen de comprendre ce qui a changé. Une révision finale par GPT-5.5 a attrapé des cas supplémentaires — le transcript complet de la PR est partagé.
À qui s'adresse-t-il ?
Développeurs Python qui utilisent sqlite-utils pour des opérations légères sur base de données et qui veulent une version 4.0 prête pour la production avec une sécurité transactionnelle appropriée.
📖 Lire la source complète : HN AI Agents
👀 See Also

OpenTidy : Assistant d'arrière-plan Open Source utilisant Claude Code pour les tâches administratives
OpenTidy est un service open-source pour macOS qui lance des sessions persistantes de Claude Code pour gérer des tâches administratives telles que les factures, les formulaires et le tri des communications. Il exécute jusqu'à 10 tâches parallèles avec des notifications Telegram pour les actions sensibles.

TailClaude : Interface Web Open Source pour Accéder aux Sessions de Code Claude depuis Mobile et Navigateur
TailClaude est une interface web open source qui vous permet d'accéder et de poursuivre des sessions Claude Code depuis votre téléphone ou n'importe quel navigateur en moins d'une minute grâce à Tailscale. Le projet a été développé avec l'assistance de Claude Code pour la structure, le backend de streaming SSE, l'interface de chat adaptée aux mobiles et l'intégration de codes QR.

harshal-mcp-proxy désormais sur npm : un seul démon remplace 12 configurations de serveur MCP
harshal-mcp-proxy est désormais disponible en tant que package npm de 54 kB. Installez-le globalement, exécutez-le en tant que démon, et remplacez 12 configurations de serveur MCP distinctes par 6 outils, économisant environ 2,7 Go de RAM et 50 000 tokens par session.

Open-Sourcé le-vibe-stack : Règles Markdown pour Maintenir la Cohérence du Code Claude
Un développeur a rendu open-source 'the-vibe-stack' — un ensemble de règles Markdown conçues pour maintenir Claude Code sur la bonne voie lors de longues sessions en imposant un schéma rigide. Cette approche vise à réduire la dérive logique et le gaspillage de tokens tout en garantissant une sortie prévisible.