Montées mineures (2) : dix paquets, le SDK d'agent, et ce que la montée a mis au jour - #41
Merged
Conversation
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Le binaire embarqué suit : CLI 2.1.252. Relevé du harness sur la plage 231 → 252 — aucune espèce de message ni aucun mot du vocabulaire traduit n'apparaît ou ne disparaît ; l'Atelier voit la même chose qu'avant. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
`DefineLocaleMessage` est l'interface que vue-i18n laisse vide exprès : tant que personne ne l'étend, `t()` accepte n'importe quelle chaîne et l'éditeur n'a rien à proposer. L'étendre du catalogue français — la source de vérité, celle dont `MessageSchema` est déjà dérivé — fait connaître les clés de TypeScript, dans les `.ts` comme dans les templates.
Les tranches se contrôlaient chacune de leur côté — `const layout: MessageSchema['layout']` — mais rien ne vérifiait l'assemblage : les deux `index.ts` anglais ne faisaient que composer, sans être typés. Une tranche ajoutée au français et oubliée en anglais passait donc en silence jusqu'à l'écran, là où une clé, elle, était vue. Les annoter ferme le dernier trou de la parité.
Le typecheck ne peut pas la voir : vue-i18n type sa clé en `Key | (string & {})`,
une union qui garde l'autocomplétion mais accepte n'importe quelle chaîne. Une
faute de frappe ne se lisait donc qu'à l'écran, sous la forme de la clé rendue
telle quelle.
Rendre `t` strict aurait demandé de toucher les quatre-vingt-dix composants qui
passent par `useI18n()`, et aurait rejeté les clés construites. Le test, lui,
vérifie les clés écrites en toutes lettres, et la racine fixe des autres — un
renommage de branche est vu même là.
PreModelSwitch et PostModelSwitch arrivent avec le CLI 2.1.251 ; le premier peut refuser un changement de modèle, ce qu'aucun autre hook ne sait faire. DirectoryAdded, lui, manquait depuis plus longtemps. Le catalogue de l'écran est en dur et ne se déduit pas du SDK : il fixe l'ordre d'affichage, que HOOK_EVENTS ne donne pas. Il se compare donc à la main à chaque montée. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sept réglages entrent dans le formulaire : les deux durées de cache de
prompt et keybindingFlavor en Général, desktopSessionCleanupPeriodDays,
spellcheck.enabled et trois interrupteurs en Interface. modelSettings
s'affiche en lecture seule, comme la status line : c'est une table indexée
par nom de modèle, pas un champ — mais le taire laisserait croire que le
seul effort en vigueur est le global.
Deux formes nouvelles pour les porter. `choiceField` donne à un choix fermé
la même troisième position qu'un booléen : « Hérité » supprime la clé, au
lieu d'écrire une valeur que personne n'a demandée. `triNested` fait de même
sur une clé imbriquée, et retire le bloc parent s'il ne reste rien dedans —
un `"spellcheck": {}` résiduel se lirait comme un réglage posé.
Restent dehors, et le restent volontairement : modelPicker, modelPricing et
managedSourcesBehavior, que leur documentation destine aux réglages managés
d'une organisation. AURA est mono-utilisateur et locale.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Le deuxième lot de montées mineures, plus les deux chantiers qu'il a ouverts.
Montées
Dix paquets, un commit chacun, chaque fois vérifié seul :
markdown-it15.0.1,mermaid11.17.2,quasar2.28.0,vue3.5.42,vue-i18n11.4.10,vue-router5.3.0,zod4.5.4,@quasar/app-vite3.8.1,tsx4.23.13,eslint10.9.1.Puis
@anthropic-ai/claude-agent-sdk0.3.233 → 0.3.252, qui embarque le CLI2.1.252. Cette montée-là ne se juge pas à la compilation : la surface de types
bouge à peine, mais le binaire est ce qui émet les transcripts que l'Atelier
relit. Le harness a donc fait produire les deux versions et comparé — aucune
espèce de message ni aucun mot du vocabulaire traduit n'apparaît ou ne disparaît
sur la plage. Le témoin même-version donne le même zéro, les comptes bruts
variant de ±14 % : l'écart mesuré est bien nul, pas simplement petit.
Une seule rupture dans les seize versions du CLI traversées :
ExitReasonperdbypass_permissions_disabled. AURA ne s'en sert nulle part.Ce que la montée a mis au jour
Le catalogue de hooks avait trois événements de retard.
PreModelSwitchetPostModelSwitcharrivent avec le CLI 2.1.251 — le premier peut refuser unchangement de modèle, ce qu'aucun autre hook ne sait faire.
DirectoryAddedmanquait depuis plus longtemps. Le catalogue de l'écran est en dur parce qu'il
fixe l'ordre d'affichage, que
HOOK_EVENTSne donne pas : il se compare à lamain à chaque montée.
Les réglages gagnent sept clés ouvertes par la même plage : les deux durées
de cache de prompt,
keybindingFlavor,desktopSessionCleanupPeriodDays,spellcheck.enabledet trois interrupteurs.modelSettingss'affiche en lectureseule, comme la status line.
Deux formes nouvelles les portent, et prolongent le principe déjà posé par la
page — une clé absente n'est pas une valeur, c'est Claude Code qui décide.
choiceFielddonne à un choix fermé la même troisième position qu'un booléen ;triNestedfait de même sur une clé imbriquée et retire le bloc parent s'il nereste rien dedans, pour qu'un
"spellcheck": {}résiduel ne se lise pas comme unréglage posé.
Restent dehors volontairement :
modelPicker,modelPricingetmanagedSourcesBehavior, que leur documentation destine aux réglages managésd'une organisation, et
headersHelper, qui relève de MCP — AURA ne gère aucunen-tête de serveur MCP.
L'autocomplétion des clés de traduction
Trois commits venus du même chantier :
DefineLocaleMessageest étendue ducatalogue français, si bien qu'une clé mal orthographiée casse désormais
vue-tscau lieu de se découvrir à l'écran. Un test couvre ce que le typecheckne voit pas : une clé citée dans un
t()mais absente du catalogue.Vérification
pnpm lint,pnpm typechecketpnpm testpassent, à l'exception de trois àquatre invariants de
test/corpus.test.tsqui dépassent letestTimeoutde 5 ssur le corpus réel de la machine — ils repassent tous à 120 s. C'est une lenteur,
pas une régression, et elle est antérieure à ce lot.