Aggiornamento 2.60
09/06/2026
v2.60.0BETA
Seymour
badge evidenza Atlas riutilizzabili read-only, applicati al Monster AI Editor
- Primo layer di
HANDOFF_ATLAS_READONLY_MODULE_BADGES: un componente badge evidenza riutilizzabile che mostra, per voce, da dove vengono i dati e quanto ci si può fidare — senza writer, senza apply, senza SIN. Nuovo (letterale tecnico: evidence-badge)Modules/Common/AtlasEvidenceBadgeStrip.axaml(.cs)(UserControl drop-in con una proprietàEvidence) +Modules/Common/AtlasEvidenceBadge.cs(AtlasEvidenceBadgecolorato per severità +AtlasEvidenceInfoche porta badge/origin/"where it appears", factoryForBibleEntry/ForDetail). Decisione chiave (dopo la review avversaria): UN motore — (letterale tecnico: ONE)AiBibleEvidenceè stato parametrizzato inDerive(...)e la strip riusa i badge canonici dell'entry viaentry.EvidenceBadges, così la strip inline del Monster AI e la finestra BIBLE completa non possono mai discordare;IDAresta un badge strutturale separato e non collassa mai in un verdeproved(un bug che la review ha catturato e corretto). Aggiunto il tokenpartialdella mission. Il testo "where it appears in game" è diventatoAiBibleWhereAppears(una fonte DRY condivisa da BIBLE e dai moduli). Applicato al pannello BIBLE inline delMonster AI Editor: badge + origin + un expander "where it appears" per l'entry selezionata; il pulsante esistente 📖 Abrir guia completo apre la BIBLE focalizzata. Nessun runtime, SIN, save-path, o cambio providerSpiraDataAtlasCatalog. Build 0 errori / 361 warning;--spiraatlas-rt0e--aicmdmeta-rt0PASS;AiScriptLab --ai2PASS (validator pulito 346/346)
v2.59.0
v2.60.1BETA
Seymour
Atlas evidence badges in the Sphere Grid Explorer (second read-only application)
- The
v2.60.0badge infra got its second home: selecting a node in theSphere Grid Explorernow shows the node's evidence badges (parser-corpus+RT0+read-only), origin, and "where it appears", viaAtlasEvidenceInfo.ForDetail+<common:AtlasEvidenceBadgeStrip>. A tiny read-only accessorSpiraDataAtlasCatalog.TryGetSphereGridNode(layout, nodeIndex)(mirrorsTryGetMonsterDetail) mapsSourceKind(Original/Standard/Expert →OSG/SSG/ESG) + node index toatlas:sphere-grid-node:{layout}:{index}— the exact id the catalog builds, so the node resolves; on any miss the strip hides itself (no false badge). Crosslink honesty (guardrail re-stressed by Halyson): of the 4 requested modules, only Sphere Grid has a stable crosslink.Treasure(opaquesourceKey, not reverse-derivable from the buki_get index),Shop(the atlas key is bank+slot anditem_operand_hexis empty for items; mapping by operand would be a category error), andMix(no Mix detail kind exists in the atlas) were intentionally left out — forcing a badge there would break the "no stable crosslink → hide" guardrail. No writer, SIN, runtime, or badge-engine changes. Build 0 errors / 361 warnings;--spiraatlas-rt0PASS (2493 sphere-grid nodes) and--aicmdmeta-rt0PASS. Adversarially verified: 0 defects
v2.60.0
v2.60.2BETA
Seymour
badge evidenza Atlas nel Treasure Editor (bauli gear) + correzione onesta del collegamento incrociato Treasure
- Lo scout
HANDOFF_ATLAS_RIKKU_TREASURE_SHOP_MIX_CROSSLINK_SCOUTha riaperto la claimv2.60.1"Treasure non ha una chiave stabile" e ha provato il contrario per i baulitreasure-buki-getgear: ilsource_keydel collegamento incrociato NON è opaco — è (letterale tecnico: NOT)treasure:0x{index:X4}, ricostruibile direttamente dall'indice di riga dell'editor. Check byte-grounded: il (letterale tecnico: Byte-grounded)(treasure_index, buki_get_id)≡takara.bincollegamento incrociato(logical_index, type)su tutte le 82 righe Kind=0x05, 0 mismatch. Nuovo accessor lettura-soloSpiraDataAtlasCatalog.TryGetTreasureGear(treasureIndex, expectedBukiGetRow)risolveatlas:gear:treasure-0x{index}con un guardia sul valore (letterale tecnico: value-guard): poiché Treasure è un modulo modificabile, il badge si mostra solo mentre ilbuki_getcorrente del baule corrisponde ancora al corpus — ri-puntarlo o cambiare il Kind nasconde la strip (nessun badge stantio). Collegato nella card "Gear Pickup / buki_get" delTreasureEditorviaAtlasEvidenceInfo.ForDetail+<common:AtlasEvidenceBadgeStrip>(badgeparser-corpus+RT0+read-only, maiproved). Shop restapartial(la chiave posizionale0x{bank}:slot:{n}È stabile e ricostruibile, ma l'item-shop porta solo (letterale tecnico: IS)display_texte il gear-shop non porta un indice per-slot, quindi non c'è un guardia sul valore pulito su un modulo modificabile → UI rinviata per evitare un falso positivo). (letterale tecnico: value-guard)Cocktail restablocked(nessun detail kind Cocktail esiste nell'atlas; aggiungerne uno inventerebbe un'ancora). BukiGet = ridondante/1:many (si auto-riferisce già a takara). Il gate (letterale tecnico: self-references)--spiraatlas-rt0ha guadagnato 3 assert durevoli (lookup positivo + guardia sul valore + miss non-gear), tutti PASS. Nessun writer, SIN, runtime, o cambio motore badge (letterale tecnico: value-guard)Common. Build 0 errori / 361 warning; (letterale tecnico: badge-engine)--spiraatlas-rt0,--aicmdmeta-rt0, e--treasure-rt0PASS. Doc:docs/ai/ATLAS_RIKKU_TREASURE_SHOP_MIX_CROSSLINK_SCOUT_RESULT_2026-06-09.md
v2.60.1