Files
sanctuary-beta/docs/recipe-storage-beta040.md
2026-09-15 09:29:11 +02:00

2.5 KiB
Raw Permalink Blame History

beta.040 — contrat de reprise du catalogue volumineux

Le test de tous les advancements produit un catalogue de recettes d'environ 85 Ko. Jusqu'à beta.039, l'attachement sanctuary:recipe_knowledge était une unique chaîne NBT, limitée à 65 535 octets UTF modifié. La sauvegarde native remplaçait une chaîne trop longue par une chaîne vide après journalisation de l'erreur. L'ouverture suivante pouvait donc perdre ce catalogue.

Contrat de migration

  • L'identifiant d'attachement reste sanctuary:recipe_knowledge, le contenu JSON reste en schéma 1, les paquets réseau restent identiques.
  • Les anciennes chaînes NBT sont toujours lues. Une chaîne qui tient dans la limite native reste écrite sous la même forme, sans migration anticipée.
  • Au-delà de cette limite, le même texte est écrit en liste NBT de chaînes de 16 000 caractères au maximum, puis concaténé exactement à la lecture. Chaque élément reste sous la limite UTF même avec des caractères non ASCII.
  • Le catalogue conserve sa limite existante d'un million de caractères. Les listes mal formées, trop longues ou trop nombreuses sont refusées.
  • La conversion se produit seulement à la prochaine sauvegarde normale d'un joueur chargé ; aucun fichier de joueur hors ligne n'est parcouru ou réécrit. Aucun monde personnel n'est ouvert par l'outil de développement.
  • Le retour vers une version antérieure ne sait pas lire une liste volumineuse. Conserver une sauvegarde antérieure à une rétrogradation. Les catalogues qui restent sous 65 535 octets conservent leur format historique.
  • Un catalogue déjà remplacé par une chaîne vide par une ancienne sauvegarde ne peut pas être restauré à partir de cette chaîne. Le correctif prévient les nouvelles pertes ; il n'invente pas les découvertes disparues.

La copie à la mort et la conservation au prestige restent celles de l'attachement existant. Aucun coût, déblocage ou filtre de recettes n'est changé.

Vérification

Test serveur réussi : écriture et relecture NBT comprimé de petits catalogues historiques, d'un catalogue complet supérieur à 64 Ko et d'une chaîne Unicode ; refus des fragments invalides. Le parcours client ferme puis rouvre un monde de test ayant tous les advancements et compare son catalogue entier, en plus du ciel.

Les contrôles passent, y compris la comparaison du catalogue entier après fermeture et réouverture du monde de test. Le journal client final ne contient plus lerreur NBT. Reçu : build/operator040-artifact.json.