Mise à jour 2.60
09/06/2026
v2.60.0BETA
Seymour
badges de preuve Atlas réutilisables en lecture seule, appliqués au Monster AI Editor
- Première couche de
HANDOFF_ATLAS_READONLY_MODULE_BADGES: un composant de badge de preuve réutilisable qui montre, par entrée, d'où viennent les données et jusqu'où on peut leur faire confiance — sans écrivain, sans apply, sans SIN. NouveauModules/Common/AtlasEvidenceBadgeStrip.axaml(.cs)(UserControl drop-in avec une propriétéEvidence) +Modules/Common/AtlasEvidenceBadge.cs(AtlasEvidenceBadgecoloré par sévérité +AtlasEvidenceInfoportant badges/origine/« où il apparaît », factoriesForBibleEntry/ForDetail). Décision clé (après la revue adversariale) : UN moteur —AiBibleEvidencea été paramétré enDerive(...)et la bande réutilise les badges canoniques de l'entrée viaentry.EvidenceBadges, donc la bande inline Monster AI et la fenêtre BIBLE complète ne peuvent jamais diverger ;IDAreste un badge structurel séparé et ne s'effondre jamais dans unprovedvert (un bug que la revue a attrapé et corrigé). Ajouté le tokenpartialde la mission. Le texte « où il apparaît en jeu » est devenuAiBibleWhereAppears(une source DRY partagée par BIBLE et les modules). Appliqué au panneau BIBLE inline duMonster AI Editor: badges + origine + un expander « où il apparaît » pour l'entrée sélectionnée ; le bouton existant 📖 Abrir guia completo ouvre la BIBLE focalisée. Pas de runtime, SIN, save-path, ni changement de providerSpiraDataAtlasCatalog. Build 0 erreur / 361 warning ;--spiraatlas-rt0et--aicmdmeta-rt0PASS ;AiScriptLab --ai2PASS (validateur propre 346/346)
v2.59.0
v2.60.1BETA
Seymour
badges de preuve Atlas dans le Sphere Grid Explorer (deuxième application en lecture seule)
- L'infra de badges
v2.60.0a eu sa deuxième maison : sélectionner un nœud dans leSphere Grid Explorermontre désormais les badges de preuve du nœud (parser-corpus+RT0+read-only), l'origine et « où il apparaît », viaAtlasEvidenceInfo.ForDetail+<common:AtlasEvidenceBadgeStrip>. Un petit accesseur en lecture seuleSpiraDataAtlasCatalog.TryGetSphereGridNode(layout, nodeIndex)(miroir deTryGetMonsterDetail) mappeSourceKind(Original/Standard/Expert →OSG/SSG/ESG) + index de nœud àatlas:sphere-grid-node:{layout}:{index}— l'id exact que le catalogue construit, donc le nœud se résout ; sur tout miss la bande se cache (pas de faux badge). Honnêteté du crosslink (garde-fou re-souligné par Halyson) : des 4 modules demandés, seul Sphere Grid a un crosslink stable.Treasure(clésourceKeyopaque, non dérivable inversement depuis l'index buki_get),Shop(la clé atlas est bank+slot etitem_operand_hexest vide pour les items ; mapper par opérande serait une erreur de catégorie) etMix(aucun kind de détail Alchimie dans l'atlas) ont été intentionnellement laissés de côté — forcer un badge là-bas casserait le garde-fou « pas de crosslink stable → masquer ». Pas d'écrivain, SIN, runtime, ni changement de moteur de badge. Build 0 erreur / 361 warning ;--spiraatlas-rt0PASS (2493 nœuds sphere-grid) et--aicmdmeta-rt0PASS. Vérifié adversarially : 0 défauts
v2.60.0
v2.60.2BETA
Seymour
badge de preuve Atlas dans le Treasure Editor (coffres gear) + correction honnête du crosslink Treasure
- Le scout
HANDOFF_ATLAS_RIKKU_TREASURE_SHOP_MIX_CROSSLINK_SCOUTa rouvert la revendicationv2.60.1« Treasure n'a pas de clé stable » et prouvé le contraire pour les coffres gear : le crosslinktreasure-buki-getsource_keyn'est PAS opaque — c'esttreasure:0x{index:X4}, reconstructible directement depuis l'index de rangée de l'éditeur. Vérification byte-grounded : le(treasure_index, buki_get_id)du crosslink ≡ letakara.binde(logical_index, type)sur toutes les 82 rangées Kind=0x05, 0 mismatch. Nouvel accesseur en lecture seuleSpiraDataAtlasCatalog.TryGetTreasureGear(treasureIndex, expectedBukiGetRow)résoutatlas:gear:treasure-0x{index}avec un value-guard : puisque Treasure est un module éditable, le badge ne s'affiche que tant que lebuki_getactuel du coffre correspond encore au corpus — le re-pointer ou changer le Kind cache la bande (pas de badge obsolète). Câblé dans la carte « Gear Pickup / buki_get » duTreasureEditorviaAtlasEvidenceInfo.ForDetail+<common:AtlasEvidenceBadgeStrip>(badgesparser-corpus+RT0+read-only, jamaisproved). Shop restepartial(la clé positionnelle0x{bank}:slot:{n}EST stable et reconstructible, mais item-shop ne porte quedisplay_textet gear-shop ne porte pas d'index par slot, donc il n'y a pas de value-guard propre sur un module éditable → UI différée pour éviter un faux positif). Alchimie resteblocked(aucun kind de détail Alchimie n'existe dans l'atlas ; en ajouter un inventerait une ancre). BukiGet = redondant/1:many (s'auto-référence déjà takara). La porte--spiraatlas-rt0a gagné 3 assertions durables (lookup positif + value-guard + non-gear manqué), toutes PASS. Pas d'écrivain, SIN, runtime, ni changement de moteur de badgeCommon. Build 0 erreur / 361 warning ;--spiraatlas-rt0,--aicmdmeta-rt0et--treasure-rt0PASS. Doc :docs/ai/ATLAS_RIKKU_TREASURE_SHOP_MIX_CROSSLINK_SCOUT_RESULT_2026-06-09.md
v2.60.1