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

Problèmes et solutions de contournement liés à la compaction des sessions Claude AI
La compaction par défaut dans les sessions Claude AI peut dégrader la précision de la récupération d'environ 9,75/10 à environ 5/10, provoquant des hallucinations. L'utilisateur a testé avec 418 000 tokens et a constaté que la compaction manuelle utilisant Opus maintient la précision tandis que la compaction par défaut échoue.

Le moteur de RPG solo open-source utilise trois instances Claude pour l'analyse, la narration et la direction.
EdgeTales est un moteur de jeu de rôle solo open-source basé sur du texte où la mécanique des dés détermine les résultats et l'IA Claude génère une prose atmosphérique. Le système utilise trois instances Claude en pipeline : Cerveau (Haiku) pour analyser l'entrée en JSON, Narrateur (Sonnet) pour écrire la prose, et Directeur (Haiku) pour l'analyse asynchrone des scènes.

free-claude-code ajoute la prise en charge de GLM-5 via NVIDIA NIM, et s'étend à OpenRouter et Discord
free-claude-code prend désormais en charge GLM-5 via le niveau gratuit de NVIDIA NIM (40 requêtes/min) et ajoute l'intégration OpenRouter, la prise en charge des bots Discord et la compatibilité avec le fournisseur local LMStudio. L'outil convertit les requêtes API Anthropic de Claude Code pour fonctionner avec des backends de modèles alternatifs.

Agent-Desktop : Automatisation structurée du bureau via les arbres d'accessibilité du système d'exploitation
Agent-desktop est un CLI multiplateforme (binaire Rust, ~15 Mo) qui expose 53 commandes avec sortie JSON pour inspecter et piloter des applications natives via les API d'accessibilité du système d'exploitation — sans captures d'écran ni modèles de vision. Il utilise un parcours squelettique progressif pour réduire l'utilisation de tokens de 78 à 96 % sur des applications denses comme Slack ou VS Code.