Mise à jour 2.78
10/06/2026
v2.78.0BETA
Seymour
SIN Chain Builder Gate 4 : aperçu de diff AEON du `SinApplyPlan` validé (lecture seule) — montre le diff, ne l'applique PAS ; SIN reste BLOQUÉ pour l'écriture
- Ouvre Gate 4 du SIN Chain Builder : il prend le
SinApplyPlan(Gate 2/SHINRYU) déjà validé parSinPlanValidator(Gate 3/NEMESIS) et produit le diff qu'AEON montrerait SI le plan était émis contre un script réel/contrôlé — toujours sans charger un monstre, sans diffuser un vrai worker, sansRebuild/Splice/AiScript_Diff, sans backup, sans disque et sans rien appliquer. Il répond à exactement une question : « si ce plan validé était émis, quel diff AEON montrerait-il ? ». Nouvelles classes dansFfxLib/Ai/Sin:SinAeonDiffPreview/SinAeonDiffPreviewStep/SinAeonDiffPreviewRow(miroir du vocabulaireAiScript_Diff:Added/Modified/Removed/Unchanged, +Contextpour les lignes de marqueur;du listing — affichées mais NON comptées),SinAeonDiffPlanner(Plan(SinApplyPlan, SinPlanValidationResult)→SinAeonDiffPreview; lit UNIQUEMENT le plan + le résultat de validation, tous deux en lecture seule ; une surcharge de convenancePlan(SinChainRecipe)exécute toute la chaîne) etSinAeonPreviewFormatter(texte déterministe). Modèle honnête : parce qu'AUCUN monstre n'est chargé, il n'y a pas de vraie image avant → chaque instruction planifiée est une rangée ADDED contre unsynthetic/control fixture(vanilla/current: <none at planned insertion point>) ; MODIFIED == 0 et REMOVED == 0 par construction (les résoudre nécessite le vrai worker = Gate 5 apply/backup). Gate 4 RESPECTE Gate 3 :StructurallyValidest reporté du validateur,ApplyAllowedest câblé en dur à false, aucun candidat n'est promu à authoring-ready, et le résultat DIV/MUL (0x16/0x17) est reporté, PAS corrigé — la recette HP% (SIN-010) imprime VERBATIM le blocBlocked/warning: unresolved 0x16 DIV vs intended HP% multiply semantics. / No public apply. / No RT2 proof.et Gate 3 porte toujours le bloqueurdivmul-integrity. 3 pilotes : SIN-006 (Linear, 12 ADDED) et SIN-009 (Linear, 3 ADDED) = structurellement valides, apply-bloqués ; SIN-010 (GuardedAction, 16 ADDED) = même + le bloc HP% obligatoire. Nouvelle porte en lecture seule--sin-aeon-preview-rt0: construit les 3 pilotes, rend l'aperçu et affirmeApplyAllowed=false, cible de diff synthétique, ADDED≥1/MODIFIED=0/REMOVED=0, aucun candidat→authoring-ready, aperçu déterministe, le bloc DIV/MUL présent pour SIN-010 + une garde de fichiers (instantané du dossier de sortie avant/après → aucun nouveau fichier, pas de.prev.bak, pas demonster_*.bin). MINOR (NOUVELLE capacité exécutable : aperçu de diff AEON + porte). Périmètre/honnêteté : SIN reste BLOQUÉ pour l'écriture — Gate 4 montre un aperçu de diff, il n'applique pas un diff ; "Clean for DESIGN is not unlocked for WRITING" — et un aperçu de diff propre ne déverrouille pas l'écriture non plus. Il ne fait PAS écrivain/save/Rebuild/Splice/real-AEON/backup/RT2/button/UI ; il ne touche PASmonster_*.bin/runtime/Aurora/native-menu/Blitzball/Shop/Mix/Sphere/Common(ANIMA) ou leMonsterAiEditor; lecture seule deFfxLib/Ai/Sin/*. Build 0 erreur ;--sin-aeon-preview-rt0+--sin-validate-rt0(Gate 3) +--sin-dryrun-rt0(Gate 2) +--aicmdmeta-rt0+--spiraatlas-rt0+--aiasm-rt0(AiScriptLab) tous PASS. Docs :docs/ai/SIN_OMEGA_AEON_DIFF_PREVIEW_RESULT_2026-06-10.md+docs/ai/HANDOFF_OMEGA_SIN_BACKUP_APPLY_GATE_NEXT_2026-06-10.md
v2.77.0
v2.78.1BETAPATCH
Seymour
Polish UI : passe de cohérence de couleur du studio (tue le « marron » Fluent) + Monster Editor / nav / Prize Table affinés
- Couleur : retinte le chrome Fluent (
Expander/ListBox/ListBoxItem/TabItem) + les 4 ControlTemplates de champ partagés (Property/PropertyBool/GameIndex/Loot) + les jetons d'auto-save vers la palette froide du studio — tue les défauts gris-chaud/« marron » app-wide et les bordures de champAliceBlue(un Style global bat le ThemeDictionary Fluent qui ignorait les remplacements de ressources). Monster Editor : styleLabel/Separatorscopé, en-têtescardTitle(Status+Loot), la grille irrégulière de stat-box aplatie en tuiles uniformes, en-têtes Loot bold-20 →cardTitle. Nav : nouveau hub Encounters & Formation (Encounter Table en lecture seule + Formation Editor écrivain, sous-onglets) ; "Spira Forge" → "Mapas & Cenas" (Field Hub retiré de la nav, conservé dans le code) ; Texto/Referência + Blitzball déplacés dans Core Authoring et la carte "Next Wave" supprimée (échappé le&brut dans le titre "Mapas & Cenas" qui avait cassé le build Release pour toutes les voies). Prize Table : l'arbre 3-Expanderaplati (Draw inline ; "Sorteio N" seulement quand >1 draw viaShowLabel), rangées de prix sans bordure avec une bande de famille + survol, Competitions développées par défaut sans filtre, cotes dans leur propreScrollViewer(MaxHeight 400) + un chippillWriterambre « pas de % par prix »,Detailraccourci, hero réduit avec le texte de chaîne/honnêteté déplacé vers unExpander"About" replié. Prize Atlas réconcilié : ses mentions de cotes portent le qualificatif « famille séparée / pas 1:1 / pas de % par prix ». (polish visuel de capacité livrée ; doute→PATCH). Présentation uniquement : ne touche PAS écrivain/parser/binding (ValueTwoWay,IsPrize,EditSession.*etc. verbatim) ; l'arbre est une vue sur les mêmes instancesPrizeStructRow(pas de DTO). Build 0 erreur ;--blitzball-prizestruct-rt0+--spiraatlas-rt0PASS
v2.78.0