Atualização 2.60
09/06/2026
v2.60.0BETA
Seymour
Badges reutilizáveis read-only de evidência do Atlas, aplicados ao Monster AI Editor
- Primeira camada de
HANDOFF_ATLAS_READONLY_MODULE_BADGES: um componente reutilizável evidence-badge que mostra, por entrada, de onde os dados vieram e até onde podem ser confiáveis — sem writer, sem apply, sem SIN. NovoModules/Common/AtlasEvidenceBadgeStrip.axaml(.cs)(drop-in UserControl com propriedadeEvidence) +Modules/Common/AtlasEvidenceBadge.cs(AtlasEvidenceBadgecolorido por severidade +AtlasEvidenceInfocarregando badges/origem/"onde aparece", factoriesForBibleEntry/ForDetail). Decisão-chave (após a revisão adversarial): engine ONE —AiBibleEvidencefoi parametrizado emDerive(...)e a faixa reutiliza os badges canônicos da entrada viaentry.EvidenceBadges, então a faixa inline do Monster AI e a janela BIBLE completa nunca podem discordar;IDAcontinua um badge estrutural separado e nunca colapsa numprovedverde (um bug que a revisão pegou e corrigiu). Adicionado o tokenpartialda missão. O texto "onde aparece no jogo" virouAiBibleWhereAppears(uma fonte DRY compartilhada por BIBLE e os módulos). Aplicado ao painel inlineMonster AI EditorBIBLE: badges + origem + um expander "onde aparece" para a entrada selecionada; o botão existente 📖 Abrir guia completo abre o BIBLE focado. Sem mudanças de runtime, SIN, save-path ou providerSpiraDataAtlasCatalog. Build 0 erros / 361 avisos;--spiraatlas-rt0e--aicmdmeta-rt0PASS;AiScriptLab --ai2PASS (validator limpo 346/346)
v2.59.0
v2.60.1BETA
Seymour
Badges de evidência do Atlas no Sphere Grid Explorer (segunda aplicação read-only)
- A infra de badges
v2.60.0ganhou sua segunda casa: selecionar um node noSphere Grid Exploreragora exibe os badges de evidência do node (parser-corpus+RT0+read-only), a origem e "onde ele aparece", viaAtlasEvidenceInfo.ForDetail+<common:AtlasEvidenceBadgeStrip>. Um accessor read-onlySpiraDataAtlasCatalog.TryGetSphereGridNode(layout, nodeIndex)(espelhaTryGetMonsterDetail) mapeiaSourceKind(Original/Standard/Expert →OSG/SSG/ESG) + índice do node paraatlas:sphere-grid-node:{layout}:{index}— o id exato que o catálogo constrói, então o node é resolvido; se houver qualquer ausência, a faixa se oculta (sem badge falso). Honestidade do crosslink (guardrail reforçado por Halyson): dos 4 módulos solicitados, somente Sphere Grid tem um crosslink estável.Treasure(comsourceKeyopaco, não derivável inversamente a partir do índice buki_get),Shop(a chave do atlas é bank+slot eitem_operand_hexfica vazia para itens; mapear pelo operando seria um erro de categoria), eMix(não existe um tipo de detalhe de Mix no atlas) foram deliberadamente deixados de fora — forçar um badge ali quebraria o guardrail "sem crosslink estável → ocultar". Sem mudanças de writer, SIN, runtime ou Common badge-engine. Build 0 erros / 361 warnings;--spiraatlas-rt0PASS (2493 sphere-grid nodes) e--aicmdmeta-rt0PASS. Verificado de forma adversarial: 0 defeitos
v2.60.0
v2.60.2BETA
Seymour
Badge de evidência do Atlas no Treasure Editor (baús de gear) + correção honesta do crosslink do Treasure
- O scout
HANDOFF_ATLAS_RIKKU_TREASURE_SHOP_MIX_CROSSLINK_SCOUTreabriu o claimv2.60.1"Treasure não tem chave estável" e provou o oposto para baús de gear: o crosslinktreasure-buki-getsource_keyé NOT opaco — étreasure:0x{index:X4}, reconstruível direto do índice da linha do editor. Check Byte-grounded: o(treasure_index, buki_get_id)do crosslink ≡ otakara.binde(logical_index, type)em todas as 82 linhas Kind=0x05, 0 mismatches. Novo accessor read-onlySpiraDataAtlasCatalog.TryGetTreasureGear(treasureIndex, expectedBukiGetRow)resolveatlas:gear:treasure-0x{index}com uma value-guard: como Treasure é um módulo editável, o badge só mostra enquanto obuki_getatual do baú ainda casa com o corpus — repointar ou mudar o Kind esconde a faixa (sem badge obsoleto). Ligado no cardTreasureEditor"Gear Pickup / buki_get" viaAtlasEvidenceInfo.ForDetail+<common:AtlasEvidenceBadgeStrip>(badgesparser-corpus+RT0+read-only, nuncaproved). Shop ficapartial(a chave posicional0x{bank}:slot:{n}IS estável e reconstruível, mas item-shop só carregadisplay_texte gear-shop não carrega índice per-slot, então não há value-guard limpo num módulo editável → UI adiado para evitar falso positivo). Mix ficablocked(nenhum kind de detalhe Mix existe no atlas; adicionar um inventaria uma âncora). BukiGet = redundante/1:many (já self-references takara). O gate--spiraatlas-rt0ganhou 3 asserts duráveis (lookup positivo + value-guard + miss non-gear), todos PASS. Sem writer, SIN, runtime ou mudançasCommonbadge-engine. Build 0 erros / 361 avisos;--spiraatlas-rt0,--aicmdmeta-rt0e--treasure-rt0PASS. Doc:docs/ai/ATLAS_RIKKU_TREASURE_SHOP_MIX_CROSSLINK_SCOUT_RESULT_2026-06-09.md
v2.60.1