Skip to content

Passer à l'anglais les derniers noms du gabarit, et deux défauts que ça met au jour - #48

Merged
Beennnn merged 1 commit into
mainfrom
claude/reprise-sans-binaires-fu4e2h
Aug 29, 2026
Merged

Passer à l'anglais les derniers noms du gabarit, et deux défauts que ça met au jour#48
Beennnn merged 1 commit into
mainfrom
claude/reprise-sans-binaires-fu4e2h

Conversation

@Beennnn

@Beennnn Beennnn commented Aug 29, 2026

Copy link
Copy Markdown
Owner

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, ordre vont sur le disque et en reviennent. XR.bloc non plus — c'est le seul nom que les vue/*.js dé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 toujours nom. 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 sous nom.

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 en curl et 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épliernoeuds: nodesByName garde le nom gelé et pointe la nouvelle variable.

Ce qui tient la ligne désormais

ViewContractTest : tout champ passé à annotationPatch doit ê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, et XR.bloc doit rester. Les trois pièges sont écrits dans CLAUDE.md, avec ce que chacun a coûté.

🤖 Generated with Claude Code

https://claude.ai/code/session_01J956wjynbd7fkZx4HpjHzP


Generated by Claude Code

…ç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
Beennnn marked this pull request as ready for review August 29, 2026 12:09
@Beennnn
Beennnn merged commit 7b74ea5 into main Aug 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants