Aggiornamento 2.64
10/06/2026
v2.64.0BETA
Seymour
Aeon growth/customization in the Spira Data Atlas (read-only, `proved-candidate`, Aeon-only, compiled)
- Plugs
sum_grow.bin(FFX's Aeon customization table) into the provider as a read-only detail kind: newSpiraDataAtlasDetailKind.AeonGrowthRecipe+ value-guarded accessorSpiraDataAtlasCatalog.TryGetAeonGrowthRecipe(entryIndex, currentResultRaw, currentItemRaw). Aeon-ONLY:sum_grow.binis 636 bytes (0x14header + 77 × 8B entries,Targetalways0x007F=Aeon,jppc==inpcbyte-identical) → 67 ability recipes (Result cat 3 → Commands) + 10 stat recipes (Result cat 0 → StatOptions, Secondary=1). No PC rows and no Sphere-Grid rows (PcAeonFineStatis a separate corpus; grid topology lives insphere.bin/panel.bin). Non-work/source: the 77 rows come from a byte-grounded compiled table (FfxLib/SpiraDataAtlas/SumGrowAeonRecipeData.cs, generated bybuild_sum_grow_aeon_fine_index.ps1 -EmitCSharpfromsum_grow.bin), so they exist in ANY build withoutwork/(unlike Mix/Sphere/Shop). Names/labels are resolved at runtime by the editor's ownAeonCustomizationEntry+dictionaries (single source of truth, RT0-proved by--customization-rt0), never re-invented. Stat-recipe cost =partial(the editor rendersPrimary× item; in-game cost is 1 item/application andPrimaryis the increment) — surfaced in theevidencecolumn (;cost-semantics-partial), not just prose. Gate--spiraatlas-rt021219 → 21296details (+77 Aeon; all unique) + 13 new asserts (count 77/67/10; Aeon-only; no PC; no Sphere; ability lookup 66→Ultima/Supreme Gem; stat lookup 67→HP+100/Power Sphere/cost-partial; value-guard0x9999hides; out-of-range index miss; domain search; BIBLE domain aeon-growth). Read-only: no writer/UI/runtime/SIN; does not touch RIKKU/WAKKA/JECHT/BAHAMUT/AURORA, ANIMA'sCommonbadge engine, orWriteAeon/save paths. Unblocks YUNA backlog Q1 (wasblocked). Verified by a 4-lens adversarial workflow in the scout. Build 0 errors / 361 warnings;--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. — Jarvis-BRASKA (nome ufficiale: Cocktail) (nome ufficiale: Examagilite) (nome ufficiale: Energosfera)
v2.63.0
v2.64.1BETAPATCH
Seymour
badge evidenza Atlas nel Cocktail Table Editor (read-only, value-guarded, hide-on-edit)
- UI read-only che collega l'accessor (letterale tecnico: Read-only)
SpiraDataAtlasCatalog.TryGetMixCombination(distribuito inv2.63.0) nelMixTableEditor: la card "Combination Editor" (pannello dettaglio) ora mostra il<common:AtlasEvidenceBadgeStrip>della combinazione mix selezionata — una strip per combinazione (non per riga; evita 6,328 lookup e clutter), un mirror esatto di Treasure/Shop.MixTableEditor_DataModelha guadagnato[ObservableProperty] AtlasEvidenceInfo? SelectedMixEvidence+RefreshSelectedMixEvidence()(TryGetMixCombination(origin.Index, result.PartnerIndex, result.RawResult) → AtlasEvidenceInfo.ForDetail), chiamato inOnSelectedResultChanged(copre il cambio combinazione E origine via cascade) e in (letterale tecnico: AND)ResultChangedquandoRawResultcambia (copre la modifica dell'esito viaResultRef→SyncBack→NotifyComputedChangede "Set Empty"). Hide-on-edit: ri-puntare il risultato a un altro item, "Set Empty" (raw 0), una cella mirror vuota/upper-triangle, o una coppia fuori corpus → accessor (letterale tecnico: re-pointing)false/null→ la strip self-hides (IsVisible=false); l'ordine(origin,partner)è irrilevante (canonicalizzazione max/min nell'accessor). RIUSO (letterale tecnico: REUSE) della capabilityv2.63.0+ l'infraCommondi ANIMA (solo consumata) → (precedente: i badge Shopv2.61.2/v2.61.5erano PATCH). Nessun nuovo writer:--mixtable-rt0resta byte-identical (25108/25108). Non tocca il motoreCommondi ANIMA, il provider, Treasure/Shop (RIKKU), o BRASKA/WAKKA/AURORA/BAHAMUT/SIN. Rivisto da un workflow avversario 5-lens (hide-on-edit, writer/read-only, ANIMA-boundary, XAML-binding, honesty) + sintesi →ship, 0 difetti. Build 0 errori / 361 warning;--spiraatlas-rt0(Cocktail 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 save Blitzball LAB + offset premio SAVE-PROVED contro un save reale (nessun torneo)
- Gli offset premio Blitzball sono passati da RE a save-proved: ho localizzato i save reali (
Documents\SQUARE ENIX\...\FINAL FANTASY X\ffx_000..006, 7 slot di0x6900=0x40 header + 0x68C0 SaveData) effx_000ha decodificato correttamente (league = Megaelisir/Mega-Potion/Velocisfera, tournament = Elisir/Super Goalie/Pozione, ecc.) — il save è plaintext, nessuna encryption/compression (gil/story/battle_count sani),--base 0x40confermato. L'header0x40ha una firma"cxs"+ play-time/location; nessun campo corrisponde a un checksum SaveData (probabilmente nessun checksum bloccante, ma serve ancora un load in-game). Nuovo writer LABTools/BlitzballSaveWrite.cs(--blitz-save-write <in> <field> <value> <out>): scrive un u16 prize-index in un NUOVO file (letterale tecnico: NEW) (MAI sovrascrive la sorgente; rifiuta l'overwrite in-place), con before/after risolti via il catalogo Atlas. Validato su una COPIA di (letterale tecnico: NEVER) (letterale tecnico: COPY)ffx_006:tournament0 25 (Elixir) -> 50 (Saturn Crest), diff = esattamente 2 byte, il resto byte-identical.BlitzballSaveRead.Resolveè diventatointernal ResolvePrize(riusato dal writer). save (ffx_NNN) ≠ file di gioco: modificare il save cambia QUESTA partita; cambiare il pool ( (letterale tecnico: THIS)takara.bin220..320) è Treasure/RIKKU. Nessun cambio Atlas UI/Shop/Treasure/Cocktail/Common/Aurora/Bahamut/SIN. Build 0 errori / 361 warning. Doc:docs/ai/BLITZBALL_SAVE_RUNTIME_WRITER_SCOUT_2026-06-09.md
v2.64.1
v2.64.3BETA
Seymour
badge evidenza Aeon Growth nel Customization Editor (read-only, value-guarded, hide-on-edit)
- Collega
<common:AtlasEvidenceBadgeStrip>nella tab "Aeon Grow / Teach" diCustomizationEditor(card "Recipe Editor"), consumando l'accessor già costruito (letterale tecnico: already-built)SpiraDataAtlasCatalog.TryGetAeonGrowthRecipe(entryIndex, currentResultRaw, currentItemRaw)(v2.64.0). NuovoAtlasEvidenceInfo? SelectedAeonEvidenceinCustomizationEditor_DataModel, ricalcolato al cambio selezione e quando la riga selezionata alzaRawResult(AeonRecipeChanged) → hide-on-edit: modificare l'abilità/stat insegnata O l'item costo (raw mismatch) o un indice out-of-range fa sì che l'accessor restituiscanulle la strip si nasconda (nessun badge stantio), un mirror esatto di Cocktail (v2.64.1). Le 10 ricette stat mostrano un badgepartial(semantica costo: l'editor renderizza (letterale tecnico: cost-semantics)Primary× item, ma in-game il costo è 1 item/applicazione). Nessun writer o fix di display costo (letterale tecnico: cost-display) (fuori scope). Riusa il motoreCommondi ANIMA (solo consumato). PC restablocked(nessuna riga PC) e Spheremetadata-only(nessun join) — niente da mostrare. Nessun provider/gate change (--spiraatlas-rt0intatto,21296dettagli / 77 Aeon). Build 0 errori / 361 warning;--customization-rt0+--spiraatlas-rt0+--aicmdmeta-rt0PASS. Non tocca JECHT/Cocktail, 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