Atualização 2.64
10/06/2026
v2.64.0BETA
Seymour
crescimento/customização Aeon no Spira Data Atlas (read-only, `proved-candidate`, Aeon-only, compilado)
- Plug
sum_grow.bin(a tabela de customização Aeon do FFX) no provider como um kind de detalhe read-only: novoSpiraDataAtlasDetailKind.AeonGrowthRecipe+ accessor value-guardedSpiraDataAtlasCatalog.TryGetAeonGrowthRecipe(entryIndex, currentResultRaw, currentItemRaw). Aeon-ONLY:sum_grow.bintem 636 bytes (header0x14+ 77 × entradas de 8B,Targetsempre0x007F=Aeon,jppc==inpcbyte-identical) → 67 receitas de habilidade (Result cat 3 → Commands) + 10 receitas de stat (Result cat 0 → StatOptions, Secondary=1). Sem linhas PC e sem linhas Sphere-Grid (PcAeonFineStaté um corpus separado; a topologia do grid vive emsphere.bin/panel.bin). Fonte não-work/: as 77 linhas vêm de uma tabela compilada byte-grounded (FfxLib/SpiraDataAtlas/SumGrowAeonRecipeData.cs, gerada porbuild_sum_grow_aeon_fine_index.ps1 -EmitCSharpdesum_grow.bin), então existem no build ANY semwork/(diferente de Mix/Sphere/Shop). Nomes/labels resolvem em runtime pelos própriosAeonCustomizationEntry+dicionários do editor (fonte única de verdade, RT0-proved por--customization-rt0), nunca re-invented. Custo Stat-recipe =partial(o editor renderizaPrimary× item; o custo in-game é 1 item/aplicação ePrimaryé o incremento) — exposto na colunaevidence(;cost-semantics-partial), não só em prosa. Gate--spiraatlas-rt021219 → 21296detalhes (+77 Aeon; todos únicos) + 13 novos asserts (count 77/67/10; Aeon-only; sem PC; sem Sphere; lookup de habilidade 66→Ultima/Supreme Gem; lookup de stat 67→HP+100/Power Sphere/cost-partial; value-guard0x9999esconde; miss de índice out-of-range; busca de domínio; BIBLE domínio aeon-growth). Read-only: sem writer/UI/runtime/SIN; não toca RIKKU/WAKKA/JECHT/BAHAMUT/AURORA, o engine de badgeCommonde ANIMA, nem caminhosWriteAeon/save. Desbloqueia o backlog YUNA Q1 (erablocked). Verificado por um workflow adversarial de 4 lentes no scout. Build 0 erros / 361 avisos;--customization-rt0+--spiraatlas-rt0+--aicmdmeta-rt0PASS. Docs:docs/ai/ATLAS_BRASKA_SUM_GROW_FINE_SCOUT_RESULT_2026-06-10.md+docs/ai/HANDOFF_BRASKA_SUM_GROW_FINE_INDEXER_NEXT_2026-06-10.md
v2.63.0
v2.64.1BETAPATCH
Seymour
Badge de evidência do Atlas no Mix Table Editor (read-only, value-guarded, hide-on-edit)
- Read-only UI plugando o accessor
SpiraDataAtlasCatalog.TryGetMixCombination(shipado emv2.63.0) noMixTableEditor: o card "Combination Editor" (painel de detalhe) agora mostra a<common:AtlasEvidenceBadgeStrip>da combinação de mix selecionada — uma faixa por combinação (não por linha; evita 6.328 lookups e poluição), um espelho exato de Treasure/Shop.MixTableEditor_DataModelganhou[ObservableProperty] AtlasEvidenceInfo? SelectedMixEvidence+RefreshSelectedMixEvidence()(TryGetMixCombination(origin.Index, result.PartnerIndex, result.RawResult) → AtlasEvidenceInfo.ForDetail), chamado emOnSelectedResultChanged(cobre a origem de combinação AND via cascata) e emResultChangedquandoRawResultmuda (cobre editar o resultado viaResultRef→SyncBack→NotifyComputedChangede "Set Empty"). Hide-on-edit: re-pointing o resultado para outro item, "Set Empty" (0 cru), uma célula espelho vazia/upper-triangle ou um par fora do corpus → accessorfalse/null→ a faixa self-hides (IsVisible=false); ordem(origin,partner)irrelevante (canonicalização max/min no accessor). REUSE da capacidadev2.63.0+ a infraCommonde ANIMA (só consumida) → (precedente: as UIs de badge do Shopv2.61.2/v2.61.5foram PATCH). Sem writer novo:--mixtable-rt0fica byte-identical (25108/25108). Não toca o engineCommonde ANIMA, o provider, Treasure/Shop (RIKKU), nem BRASKA/WAKKA/AURORA/BAHAMUT/SIN. Revisado por um workflow adversarial de 5 lentes (hide-on-edit, writer/read-only, ANIMA-boundary, XAML-binding, honestidade) + síntese →ship, 0 defeitos. Build 0 erros / 361 avisos;--spiraatlas-rt0(Mix 6328) +--mixtable-rt0(byte-identical) +--aicmdmeta-rt0PASS. Doc:docs/ai/ATLAS_JECHT_MIX_BADGE_UI_RESULT_2026-06-10.md
v2.64.0
v2.64.2BETA
Seymour
writer de save Blitzball LAB + offsets de prêmio SAVE-PROVED contra um save real (sem torneio)
- Os offsets de prêmio Blitzball foram de RE para save-proved: I localizou os saves reais (
Documents\SQUARE ENIX\...\FINAL FANTASY X\ffx_000..006, 7 slots de0x6900=0x40 header + 0x68C0 SaveData) effx_000decodificou corretamente (league = Megalixir/Mega-Potion/Speed Sphere, tournament = Elixir/Super Goalie/Potion, etc.) — o save é plaintext, sem criptografia/compressão (gil/story/battle_count sãos),--base 0x40confirmado. O header0x40tem uma assinatura"cxs"+ play-time/localização; nenhum campo casa com checksum SaveData (provavelmente sem checksum bloqueante, mas um load in-game ainda é necessário). Novo writer LABTools/BlitzballSaveWrite.cs(--blitz-save-write <in> <field> <value> <out>): escreve um u16 prize-index num arquivo NEW (NEVER sobrescreve a fonte; recusa sobrescrever in-place), com antes/depois resolvidos via o catálogo do Atlas. Validado num COPY deffx_006:tournament0 25 (Elixir) -> 50 (Saturn Crest), diff = exatamente 2 bytes, o resto byte-identical.BlitzballSaveRead.Resolvevirouinternal ResolvePrize(reutilizado pelo writer). save (ffx_NNN) ≠ arquivo do jogo: editar o save muda a THIS da jogatina; mudar o pool (takara.bin220..320) é Treasure/RIKKU. Sem mudanças de Atlas UI/Shop/Treasure/Mix/Common/Aurora/Bahamut/SIN. Build 0 erros / 361 avisos. Doc:docs/ai/BLITZBALL_SAVE_RUNTIME_WRITER_SCOUT_2026-06-09.md
v2.64.1
v2.64.3BETA
Seymour
Badge de evidência de Aeon Growth no Customization Editor (read-only, value-guarded, hide-on-edit)
- Plug
<common:AtlasEvidenceBadgeStrip>na aba "Aeon Grow / Teach" deCustomizationEditor(card "Recipe Editor"), consumindo o accessor already-builtSpiraDataAtlasCatalog.TryGetAeonGrowthRecipe(entryIndex, currentResultRaw, currentItemRaw)(v2.64.0). NovoAtlasEvidenceInfo? SelectedAeonEvidenceemCustomizationEditor_DataModel, recomputado na mudança de seleção e quando a linha selecionada levantaRawResult(AeonRecipeChanged) → hide-on-edit: editar a habilidade/stat ensinada OR o item de custo (mismatch cru) ou um índice out-of-range faz o accessor retornarnulle a faixa esconde (sem badge obsoleto), um espelho exato de Mix (v2.64.1). As 10 receitas de stat mostram um badgepartial(cost-semantics: o editor renderizaPrimary× item, mas o custo in-game é 1 item/aplicação). Sem writer ou fix cost-display (fora do escopo). Reutiliza o engineCommonde ANIMA (só consumido). PC ficablocked(sem linhas PC) e Spheremetadata-only(sem join) — nada a mostrar. Sem mudança de provider/gate (--spiraatlas-rt0intacto,21296detalhes / 77 Aeon). Build 0 erros / 361 avisos;--customization-rt0+--spiraatlas-rt0+--aicmdmeta-rt0PASS. Não toca JECHT/Mix, TIDUS/PC, AURON/Sphere, RIKKU/WAKKA/VALEFOR/AURORA/SIN. Doc:docs/ai/ATLAS_BRASKA_AEON_GROWTH_BADGE_UI_RESULT_2026-06-10.md
v2.64.2