86 lines
4.3 KiB
Markdown
86 lines
4.3 KiB
Markdown
# beta.093 — Recherche créative et infobulles des familiers
|
|
|
|
Branche `codex/async-tooltip-crash-beta093`, Minecraft 26.3.
|
|
|
|
## Diagnostic
|
|
|
|
Le rapport fourni concerne Windows, Sanctuary beta.089 et Minecraft 26.3-pre-2.
|
|
Pendant la saisie d'un `w`, la recherche créative attend son index asynchrone.
|
|
Cet index construit les infobulles sur un worker (`SessionSearchTrees`), puis
|
|
`CompanionTooltips` appelle `Font.getSplitter().splitLines`. La mesure d'un glyphe
|
|
non encore chargé peut déclencher une écriture de texture, en concurrence avec
|
|
une passe de rendu : `Close the existing render pass before performing additional
|
|
commands`. L'exception du worker remonte ensuite par la saisie de caractères.
|
|
|
|
La même mise en page était encore présente en beta.092 ; le correctif cible la
|
|
version actuelle 26.3 finale. Il ne nécessite aucun changement de pilote graphique.
|
|
|
|
## Correction
|
|
|
|
Les deux chemins de descriptions, catalogue actuel et pouvoirs historiques,
|
|
utilisent un même point de mise en page. Sur le fil client, il conserve la largeur
|
|
adaptée à la fenêtre et le découpage habituel. Sur un worker, il renvoie des
|
|
composants textuels complets avec leur couleur, sans accéder à la police ni à la
|
|
fenêtre. La recherche garde les noms et descriptions ; aucune ligne n'est cachée
|
|
pour contourner le problème. Aucun travail graphique n'est renvoyé au fil client
|
|
avec attente, ce qui éviterait mal le crash et risquerait de bloquer l'indexation.
|
|
|
|
Aucune modification de sauvegarde, génération, règles de jeu, images ou registres.
|
|
Aucun déploiement dans une instance personnelle et aucun monde existant ouvert.
|
|
|
|
## Vérifications
|
|
|
|
Le parcours `Tooltip093ClientChecks` utilise un monde plat de développement neuf,
|
|
graine 42, et une sonde uniquement dans les GameTests. Cette sonde interdit tout
|
|
accès de mesure à la police depuis un worker, même lorsque ses glyphes sont déjà
|
|
en cache ; elle n'est pas embarquée dans le mod distribué.
|
|
|
|
Avant le correctif, le test échoue dans `CompanionTooltips` avec
|
|
`TOOLTIP093_OFF_THREAD_FONT`, ce qui reproduit l'accès interdit identifié dans le
|
|
rapport sans dépendre d'une course aléatoire du pilote. Journal :
|
|
`build/tooltip093-before-client.log`.
|
|
|
|
Après correction, le même parcours passe en **1 min 13 s** sur le client natif
|
|
Minecraft 26.3/macOS :
|
|
|
|
- 88 œufs, français/anglais, descriptions cryptiques/détaillées : construction
|
|
sur worker sans aucune mesure de police.
|
|
- Comparaison du texte indexé avec le texte affiché : contenu complet conservé,
|
|
malgré les retours à la ligne réservés à l'affichage.
|
|
- `SessionSearchTrees.updateCreativeTooltips`, recherche native et reconstruction
|
|
de l'index après changement de langue.
|
|
- Rechargement effectif des ressources, puis saisie native de `w` et `olf` dans
|
|
la recherche créative. Capture anglaise inspectée : le champ contient `wolf`
|
|
et affiche l'œuf de loup et son armure. Captures conservées dans
|
|
`build/tooltip093-evidence/`.
|
|
|
|
```sh
|
|
./gradlew :sanctuary:runClientGameTest -x :sanctuary:runGameTest \
|
|
-PsanctuaryClientTests=true -PsanctuaryTooltip093ClientTests=true \
|
|
-PsanctuaryQuickTests=true -PsanctuaryClientNoVsync=true
|
|
```
|
|
|
|
Journal : `build/tooltip093-client.log`, marqueur `TOOLTIP093_PASS`.
|
|
|
|
## Livraison vérifiée
|
|
|
|
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
|
|
passe en **2 min 36 s**, 124 tâches (`build/tooltip093-check.log`).
|
|
Les exports, JAR et sources correspondent. Seule la classe de production
|
|
`CompanionTooltips` diffère de beta.092 ; aucune sonde GameTest n'est distribuée.
|
|
Images, données, JEI et anciennes archives restent identiques.
|
|
Reçu local : `build/tooltip093-artifact.json`.
|
|
|
|
- [Pack normal](../build/Sanctuary-beta.093.mrpack), SHA-256
|
|
`35a1582c044955579a7120997864ff2080e276e81180ab9982397241ff4c3a1d`.
|
|
- [Pack Test](../build/Sanctuary-Test-beta.093.mrpack), SHA-256
|
|
`48c9abe733c2993a752413a34852223d35ad33e99d4f7e1d4f284969824dc275`.
|
|
|
|
## Limites
|
|
|
|
Le rapport initial est Windows/pre-2 ; les essais du correctif sont macOS/26.3
|
|
finale, avec serveur intégré de développement. L'accès fautif est reproduit
|
|
avec une sonde déterministe, sans revendiquer la reproduction exacte de la
|
|
course du pilote AMD. Serveur dédié exclu et aucune EULA acceptée. Les archives
|
|
locales ne mettent pas à jour une installation personnelle ni le canal packwiz.
|