Passer à l'anglais les derniers noms du gabarit, et deux défauts que ça met au jour - #48
Merged
Merged
Conversation
…ça met au jour Quatre-vingt-deux noms restaient en français dans le code de la page — des variables, des paramètres, des fonctions, et les membres du chargeur de blocs. Ils ne sont lus par personne d'autre que la page : rien n'obligeait à les garder. Les clés, elles, ne bougent pas — elles vont sur le disque et en reviennent. Le renommage est vérifié au rendu, comme l'inversion l'avait été : 7 734 chaînes affichées, dix-huit états de la vue, deux langues, avant et après. Zéro différence. Deux pièges ont coûté un défaut chacun, et ils sont notés dans CLAUDE.md. Le raccourci d'objet littéral n'est ni à renommer ni à sauter : le renommer renomme la propriété, le sauter laisse une référence vers une variable disparue — « noeuds is not defined », vu au rendu. Il faut le déplier : « noeuds: nodesByName » garde le nom gelé et pointe la nouvelle variable. Les deux-points d'un ternaire ne sont pas ceux d'une clé. « ? valeur : undefined » avait donc été épargné par la passe d'hier, et pointait vers un nom renommé depuis. Ça lève une erreur juste après une sauvegarde réussie par la page servie — le seul chemin que la recette pilote en curl et pas en navigateur. Et une clé gelée peut se cacher dans une chaîne : la traduction d'hier a changé annotationPatch(R, "nom", …) en "name", alors que tous les lecteurs, l'export et le corps de la requête demandent toujours « nom ». Un nom saisi dans la page partait dans un champ que personne ne lit, et la page l'affichait quand même puisqu'elle relit le champ qu'elle vient de remplir. ViewContractTest tient désormais cette ligne. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J956wjynbd7fkZx4HpjHzP
Beennnn
marked this pull request as ready for review
August 29, 2026 12:09
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ce que ça change
Quatre-vingt-deux noms restaient en français dans le code de la page — variables, paramètres, fonctions, et les membres du chargeur de blocs (
charger,ranger,toucher,evincer,attente,protege,_file…). Ils ne sont lus par personne d'autre que la page. Les clés ne bougent pas :nom,valeur,racine,chemin,elagage,coupes,ordrevont sur le disque et en reviennent.XR.blocnon plus — c'est le seul nom que lesvue/*.jsdéjà écrits connaissent.Vérification
Le renommage est vérifié au rendu, comme l'inversion du gabarit l'avait été : 7 734 chaînes affichées, dix-huit états de la vue, deux langues, avant et après. Zéro différence. 286 tests unitaires, 63 contrôles de recette locale.
Deux défauts trouvés en le faisant
Ils datent tous deux de la traduction des identifiants d'hier (#44), et aucun ne se voyait.
Un nom saisi dans la page partait dans le vide.
annotationPatch(R, "nom", …)était devenu"name"— une clé gelée cachée dans une chaîne — alors que tous les lecteurs, l'export et le corps de la requête de sauvegarde demandent toujoursnom. La page affichait pourtant le nouveau nom, puisqu'elle relit le champ qu'elle vient de remplir. Vérifié après correctif : la valeur est bien rangée sousnom.Une référence pendante dans le chemin de sauvegarde.
? valeur : undefined— les deux-points d'un ternaire lus comme ceux d'une clé, donc épargnés par la passe d'hier, pointant vers un nom renommé depuis. Ça lève une erreur juste après une sauvegarde réussie par la page servie : le seul chemin que la recette pilote encurlet pas en navigateur.Le piège du raccourci d'objet littéral, dans les deux sens
{...c, pkg, runs: [i]}nomme une propriété en nommant une variable. Le renommer renomme la propriété — c'est ce qui avait vidé la liste des classes en août. Le sauter laisse une référence vers une variable disparue :noeuds is not defined, obtenu ici au premier essai. Ni l'un ni l'autre : il faut le déplier —noeuds: nodesByNamegarde le nom gelé et pointe la nouvelle variable.Ce qui tient la ligne désormais
ViewContractTest: tout champ passé àannotationPatchdoit être l'un des quatre champs gelés, le nom doit être lu là où il est écrit, le corps d'une sauvegarde doit garder ses clés, etXR.blocdoit rester. Les trois pièges sont écrits dansCLAUDE.md, avec ce que chacun a coûté.🤖 Generated with Claude Code
https://claude.ai/code/session_01J956wjynbd7fkZx4HpjHzP
Generated by Claude Code