Infdev Rescue — audit du 8 octobre 2026 COMPLÉMENT : quatre passes consécutives sans nouveau défaut confirmé terminées le 8 octobre 2026 sur le code corrigé. Rapport détaillé : https://retrominecraft.gpxkiller.com/Infdevrescue/QUATRE-PASSES.txt Empreinte commune du code HTML/CSS/JS : 00cde0da691c16d2463b1ed83fc05878032287c353495f9119122909a90c5e2a Quatre régressions corrigées : noms ambigus Windows, conflits fichier/dossier, listes Entities/TileEntities mal typées, métadonnées de version incompatibles avec les chunks. Types NBT de métadonnées et snapshots également vérifiés. Suite finale : 25 tests Node, tests de navigateur étendus et lecteur indépendant ; 4 tests Debian du déploiement atomique et du retour arrière. Le détail ci-dessous décrit l'audit initial (16 tests), conservé pour historique. Version auditée : conversion locale Alpha/Beta 1.2 vers McRegion. Destination de publication : https://retrominecraft.gpxkiller.com/Infdevrescue/ Passe 1 — entrée et diagnostic Correction : un choix de version ne peut plus masquer Zone 20100624. Les formats mélangés, métadonnées incohérentes, archives illisibles, plusieurs mondes et sources inconnues suspendent le parcours. level.dat est effectivement décompressé et lu (NBT), et non seulement repéré. La lecture du numéro moderne est utilisée ; un numéro non couvert est bloqué. Les sources anciennes non datées utilisent une borne conservatrice. Les destinations sont des numéros explicites, une version représentative par série de versions finales (et non toutes les snapshots/patches). Passe 2 — archives et conversion Contrôles ZIP : en-têtes, tailles, nombres, volumes, méthodes, chiffrement, chemins, doublons, liens et CRC des fichiers effectivement lus. ZIP64 refusé. Limites : 256 Mio, 32 Mio par fichier, 20 000 fichiers. NBT : limites de profondeur/nombre/taille, types, doublons et troncatures. Conversion : 4 096 chunks maximum, coordonnées NBT/nom/dossiers croisées, tableaux de blocs/data/lumière/heightmap et listes d'entités présents. Les chunks gzip originaux sont encapsulés byte pour byte dans des .mcr. level.dat reçoit la balise entière version=19132. level.dat_old est la même copie mise à jour, afin de ne pas restaurer un marqueur Alpha obsolète. session.lock est retiré. Fichiers annexes conservés ; anciens chunks remplacés uniquement dans l'archive de sortie. L'original reste sur le disque du joueur. Un échec ou l'annulation ne fournit pas de résultat partiel. Passe 3 — intégration 16 tests Node réussis : cas de corruption/refus, Zone, métadonnées, rétrogradation, tous les endpoints, coordonnées négatives, données conservées. Lecture indépendante Python : ZIP CRC, secteurs, taille, Nether, gzip exact, fichiers annexes, sorties Node et navigateur validés. Navigateur Edge headless réel : dossier Alpha, ZIP deflate, worker module, téléchargement, annulation, changement de cible, reset, ZIP cassé, Zone impossible à masquer, absence d'erreurs JavaScript ; absence de débordement à 375, 768 et 1440 pixels. Capture relue visuellement. Limites de la preuve Les données utilisées sont des fixtures synthétiques contenant blocs, entités, coffre, inventaire et seed, pas un monde personnel du joueur. Aucune ouverture du résultat dans un client Minecraft Beta 1.3_01 n'a été effectuée : la compatibilité vérifiée est celle des fichiers McRegion/NBT. Aucune conversion complète vers Anvil ou vers 26.2 n'est exécutée. Les étapes modernes restent indicatives et doivent être ouvertes dans les moteurs Minecraft correspondants. Aucun audit ne garantit zéro bug. Les mondes moddés et les builds Infdev atypiques ne sont pas certifiés. Toutes les données de monde restent dans le navigateur ; le VPS sert uniquement les fichiers statiques et ne reçoit aucun monde. Installation Route /Infdevrescue/ dédiée, MIME .mjs explicite et worker-src 'self'. Configuration Nginx sauvegardée, syntaxe validée avant rechargement. Publication isolée et retour arrière ; ni service Minecraft, ni proxy, ni lobby, ni monde serveur modifié. Contrôles HTTPS après publication et essai navigateur final documentés dans le journal local de reprise.