2.2 KB · updated 2026-07-31 · md

v0.19.1.fr.md

docs/i18n/release-notes/v0.19.1.fr.md

Tesserae v0.19.1 — doctor cesse de douter des démons vivants

<!-- translations:start -->

English · 한국어 · 中文 · 日本語 · Русский · Español · Deutsch

<!-- translations:end -->

Publié 2026-07-11 · PyPI · GitHub release · pip install --upgrade tesserae==0.19.1

Une seule correction de bug, qui mérite un patch parce que doctor --fix pouvait agir dessus.

Le bug

Sur macOS, l'identité du pidfile du moteur repose sur ps -o lstart=, dont la sortie est dépendante de la locale. Un démon démarré dans un shell en locale coréenne enregistre 2026년 7월 11일… ; un vérificateur exécuté sous une locale anglaise lit Sat Jul 11… pour le même instant. Le décalage était interprété comme une réutilisation de PID : tesserae doctor signalait donc un démon de moteur vivant comme un pidfile obsolète — et --fix proposait de supprimer le pidfile sous les pieds du processus en cours, ouvrant la porte à un second démon.

La correction

L'invocation de ps est épinglée à LC_ALL=C, de sorte que l'écrivain et le lecteur rendent désormais toujours l'heure de démarrage à l'identique. Pour les pidfiles écrits par des builds antérieurs, owner_is_alive gagne un sauvetage à sens unique : quand les rendus de l'heure de démarrage divergent, une correspondance exacte de la ligne de commande complète rétablit le verdict « vivant ». Le sauvetage ne peut qu'élargir « vivant » — un PID réellement recyclé reste considéré comme obsolète, car les deux signaux d'identité diffèrent.

Découvert en conditions réelles sur une machine en locale coréenne, quelques minutes après le démarrage du démon de moteur 0.19.0 ; testé en régression dans les deux directions (décalage de locale → vivant, vraie réutilisation de PID → obsolète), plus une garde au niveau du source vérifiant que l'appel ps reste épinglé à la locale.