Files
sanctuary-beta/docs/tooltip-crash-beta093.md
2026-09-17 03:10:39 +02:00

4.3 KiB

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/.
./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, SHA-256 35a1582c044955579a7120997864ff2080e276e81180ab9982397241ff4c3a1d.
  • Pack Test, 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.