Update 2.65
10.6.2026
v2.65.0BETA
Seymour
PC/Player-Wachstum im Spira Data Atlas (nur Lesen, `proved-candidate`, byte-fundiert, -unabhängig)
- Steckt die ECHTE Quelle des PC-Wachstums/der Stats in den Provider: neues
SpiraDataAtlasDetailKind.PlayerGrowthStat+ wertbewachter AccessorSpiraDataAtlasCatalog.TryGetPlayerGrowthStat(source, characterIndex, field, currentRawValue). Quelle =ply_save.bin(Basis/aktuelle Stats) +ply_rom.bin(Wachstums-ROM: AP-AnforderungskurveApReq A/B/C/Max+ pro-Stat-Auto-Wachstumskoeffizienten*CoefA/B), dieselben Tabellen, die derPlayerGrowthEditoreditiert (ParserPlayerKernel_File, RT0-proved durch--player-rt0). Die 20 Tombola (0–6 PC, 7 Gast=Seymor, 8–17 Aeonen, 18–19 nicht zugeordnet) stammen aus einer byte-fundierten kompilierten Tabelle (FfxLib/SpiraDataAtlas/PlayerGrowthData.cs, generiert vontools/ffxdataparser_bridge/build_player_growth_index.ps1 -EmitCSharpaus den.bin-Dateien), existieren also in JEDEM Build OHNEwork/(anders alsPcAeonFineStat, das vonwork/pc_save_stats_catalog.csvabhängt und nur eine Momentaufnahme ist). Labels lösen zur Laufzeit überCharacter_Enumauf (einzige Quelle der Wahrheit). Ehrlichkeit (nicht offensichtlich): die Stat-Wachstumskoeffizienten sind nur für Aeonen — PC/Gast-Slots tragen NULL Koeffizienten (PCs wachsen Stats über das Sphere Grid); der einzige PC-Wachstumsdrehknopf in diesem ROM ist die AP-Anforderungskurve. Dies ist eine ANDERE Achse als BRASKAssum_grow.bin(Auto-Level ≠ Rezept für Anpassung). REGIONSSPEZIFISCH:ply_save/ply_romsind NICHT locale-invariant (dernew_uspc-Datenabschnitt unterscheidet sich von jppc/inpc; kompilierte Tabelle =new_uspc, die Region, die der Editor lädt). Die In-Game-AP-pro-Level / pro-Koeffizienten-Formel istRT2-pending(Bytes/Felder bewiesen, Laufzeit-Arithmetik nicht zurückentwickelt). Value-guard = derselbe Werteraum, den der Editor editiert → Editieren des Felds (rohe Abweichung) oder unbekannter Slot/source/field → Accessorfalse→ Abzeichen ausgeblendet (Spiegel von Aeon/Shop/Basteln). Gate--spiraatlas-rt021296 → 21316(+20; alle eindeutig) + 18 neue Asserts (count 20/8/10/2; PC-Koeffizient null; Aeon-Koeffizient ungleich null; Region uspc; Lookup Tidus BaseHp 520 / AP max 22000 / Valfaris HpCoef 6; value-guard9999blendet aus; out-of-range slot/source/field-Miss; Domain-Suche; BIBLE-Domain player-growth). Nur Lesen: kein Writer/UI/runtime/SIN; berührt nichtWriteSave/WriteRom, diePlayerGrowthEditor-UI, dieCommon-Engine von ANIMA (nur konsumiert) oder BRASKA/AURON/JECHT/RIKKU/WAKKA/VALEFOR/AURORA/SIN. Build 0 Fehler / 361 Warnungen;--player-rt0+--spiraatlas-rt0+--aicmdmeta-rt0PASS. Docs:docs/ai/ATLAS_TIDUS_PC_GROWTH_PROVIDER_RESULT_2026-06-10.md+ Scoutdocs/ai/ATLAS_TIDUS_PC_GROWTH_SCOUT_RESULT_2026-06-10.md. [previous:v2.64.3]
v2.65.1BETAPATCH
Seymour
Atlas-Evidenz-Badge im PlayerGrowthEditor + ehrliche Sphere-None/Passive-Labels (read-only, wertbewacht, hide-on-edit)
- Atlas-UI-Sweep. (1) PlayerGrowthEditor: neues
<common:AtlasEvidenceBadgeStrip>in der Karte „Growth Curves" (.bin), das den bereits gebauten Accessor ply_rom.binSpiraDataAtlasCatalog.TryGetPlayerGrowthStat(source, characterIndex, field, currentRawValue)(v2.65.0, TIDUS). NeuesAtlasEvidenceInfo? SelectedCharacterEvidenceinPlayerGrowthEditor_DataModel, neu berechnet bei Slot-Wechsel und inCharacterRowChanged(edit) → hide-on-edit: das Badge verankert sich an 3 gate-bewiesenen Growth-Werten, die beide Dateien/Karten überspannen (ply_saveBase HP +ply_romAP max + HP-Koeffizient A — dieselben Lookups, die--spiraatlas-rt0beweist: 520 / 22000 / 6); weicht irgendein Anker vom byte-fundierten Korpus ab, blendet sich der Streifen selbst aus (gleiche Verankerungstiefe wie die Basteln-v2.64.1/Aeonv2.64.3-Badges). (2) Sphere-Labels (ehrlich,partial):sphere.bin ActionValue=0x0000liest jetzt „Nichts. / Passive" undRangeValue=0x00liest „Nichts." statt „Unbekannt" —0x00ist der dritte legitime Korpuswert (~40 % der Spheres haben keinen Touch-Effekt, Jarvis-AURON), nicht unbekannt; eine „Nichts."-Option wird in das Dropdown eingesät + das Fallback-Label korrigiert. (3)AiBibleWhereAppears.For: nur-Lese-player-growth- undmix-Fälle (ehrlicher „wo es erscheint"-Text, keine Runtime-Effekt-Werbung;sphere-grid-nodeexistierte bereits). (WIEDERVERWENDUNG bestehender Fähigkeit: UI konsumiert den bereits gebauten Accessor + ANIMAsCommon-Engine + Label-Politur; direkter Präzedenzfall: die Basteln-v2.64.1/Aeonv2.64.3/Shopv2.61.2-Badges waren PATCH; Zweifels-Tie-Breaker→PATCH). Kein neuer Writer: das SphereGridExplorer-Badge ist bereits ausgeliefert (v2.60.1); der Player-Growth-Writer/Save-Pfad und die Sphere-Topologie sind unberührt. Fasst den Provider/das Gate nicht an (--spiraatlas-rt0intakt), ANIMAsCommon-Engine (nur konsumiert), Runtime/Aurora/Native-Menu/SIN oder TIDUS/BRASKA/JECHT/RIKKU/WAKKA/VALEFOR/AURORA nicht. Build 0 Fehler / 361 Warnungen;--spiraatlas-rt0+--player-rt0+--spheregrid-layout-rt0+--aicmdmeta-rt0PASS. Doc:docs/ai/ATLAS_LULU_PLAYER_GROWTH_SPHERE_BADGE_UI_RESULT_2026-06-10.md. [previous:v2.65.0]
v2.65.2BETAPATCH
Seymour
Sphere Grid: leerer Nodes erhalten (RedundantContent, 0xFFFF) + Atlas-where-appears-Politur
- / Evidence-Housekeeping (Jarvis-BARTHELLO). Sphere-Grid-Härtung (Byte-Fidelity): in
SphereGrid_File.Builder.cs(der v2-LAYOUT-Writer, gated durch--spheregrid-layout-rt0) schrieben die AUTHORING/EDIT-PfadeAddNode/NodeWithRedundantContent = (ushort)(contentIndex & 0xFF)→ für einen leeren Node (Content0xFF) ergab das0x00FF, abweichend von den ausgelieferten Daten. Der Korpus (Jarvis-AURON, 3.444/3.444 Nodes: niederes Byte == ContentIndex, hohes Byte nur auf den 23 leeren Expert-Nodes gesetzt) beweist: ein leerer Node =0xFFFF, ein gefüllter Node =0x00<content>. Neuer privater HelperRedundantContentFor(contentIndex)spiegelt die ausgelieferte Konvention (leer→0xFFFF, gefüllt→0x00NN).FromExisting/ClonekopierenRedundantContentwortgetreu → der no-edit-Roundtrip bleibt byte-identisch (unberührt, vom Gate erneut bewiesen). Neues Assert in--spheregrid-edit-rt0(synthetisch + die 3 Korpus-Grids):SetNodeContent(idx, 0xFF)→ Layout schreibt0xFFFFbei node+0x06 + Content-Byte0xFF+ liest wieder leer. Gameplay-Risiko gering (redundantes Feld; das Spiel liest Content ausdat09/10/11+ reach-lists — von AURON auf beiden Binaries IDA-bewiesen), aber es ist eine Fidelity-Divergenz in einem bereits ausgelieferten Writer. (B)AiBibleWhereAppears.For-Politur (schreibgeschützt): deraeon-growth-Fall hinzugefügt (eine Atlas-Domäne, die inv2.64.0geschlossen wurde und in den leeren Fallback fiel) mit ehrlichem „wo es erscheint / Zuordnung"-Text;sphere-grid-nodeaktualisiert (war veraltet: „Unknown6 bleibt roh/unbekannt"), um AURONs Burn-down widerzuspiegeln —Node.Unknown6ist gameplay-inert (auf beiden Binaries IDA-bewiesen), das mögliche Residuum = Menü-Layout/Visuelles (nur Metadaten), ohne erfundene Gameplay-Semantik. (fixt einen latenten Fidelity-Bug in einem bereits ausgelieferten Writer — „ein Verbraucher würde profitieren" → ja, Byte-Fidelity — plus schreibgeschützte Textpolitur; Tie-Breaker Zweifel→PATCH). Kein neuer Writer, keine neue UI, keine Provider/Gate-Anzahl-Änderung (--spiraatlas-rt0intakt), keineCommon-Engine (ANIMA), runtime/AURORA/VALEFOR/native-menu/SIN, CHAPPU/save oder echte Grid-Topologie (create/move/relink node bleibt Frontier) berührt. Build 0 Fehler / 361 Warnungen;--spheregrid-edit-rt0+--spheregrid-layout-rt0+--spiraatlas-rt0+--aicmdmeta-rt0PASS. Doku:docs/ai/ATLAS_BARTHELLO_POLISH_RESULT_2026-06-10.md. [vorher:v2.65.1]
v2.65.3BETAPATCH
Seymour
SEYMOUR-Audit: die Atlas's 124 ATEL-`unknown-call-shape`-Zeilen des Atlas wurden in ehrliche Klassen aufgelöst (schreibgeschützt, byte-bewiesen)
- ATEL-Call-Shape-Audit (pre-SIN). Die
124Feld-Schreibzugriffe, die der v8-Semantikpass nicht klassifizieren konnte (field-write-unknown-call-shape), wurden auf Bytecode-Ebene über den gesamten Korpus (FFXDataParser-Ziel/Text, 346 Scripts) auditiert und zerfallen vollständig in ZWEI bewiesene Klassen, 0 verbleibend. (1)0x70A8 btlSetMotionData— 116 Zeilen (100%): einheitliche FormPUSHII actor · PUSHII field · (PUSHII|PUSHF) value · CALLPOPA=(actor, field, value)in den motionProperty-Namensraum (Felder0x00..0x09, alle benannt inAiMotionPropertyNames); der Actor ist eine ECHTE Referenz (113× Self0xFFF3+ Monster#01/#02/#030x15/16/17h), über 25 Monster → Klasseset-motion-data-actor-field-value(das explizit-actor-Geschwister von0x70B2 setMotionField; NICHTsetStatField). (2)0x7032 setActorFacingAngle— 8 Zeilen: KEIN Feld-Schreibzugriff — es ist(actor, angle), ein 2-Push-Call ohne Feld-ID; sie leckten als Regex-False-Positive in den Feldkatalog (nur FLOAT-Winkel rendern.facingAngle = 90.0 [42B40000h]und der v7-Regex matchte das.0 [hex]der Dezimalzahl; die 63 Integer-Winkel-Geschwisterstellen= 90 [5Ah]leckten nicht) → Klassenot-field-write. Änderungen: die Bridgetools/ffxdataparser_bridge/build_atel_semantic_catalog.ps1(Get-FieldWriteSemanticKind+ Risikonotizen) klassifiziert beide Call-IDs neu; v8 regeneriert mit0unknown (116+8 in den neuen Klassen); dieAtelFieldWriteShape-Zählung bleibt202(die Neubeschriftung erhält diecallId|fieldHex|fieldName|semanticKind|fieldCategory-Key-Kardinalität, vorher/nachher bewiesen); derunknown-health-Pass senkt199 → 75(die 124 ATEL verlassen den „blocked-until-audited"-Bucket); dieSpiraDataAtlasCatalog-Narrative (atlas:field-call-shapes+ Guardrail +atlas:unknown-health) sind aktualisiert; die--spiraatlas-rt0-Asserts verschieben (detail entries 21316→21192,Unknown health rows 199→75) + 2 neue Lock-Asserts (0verbleibende unknown call-shapes +0x70A8motion-data vorhanden). Ehrlichkeit: Klassifizieren ≠ Autorisieren eines Writers — jedeAtelFieldWriteShapebleibtread-only;not-writer-authority,70A8hat weiterhin keinen Button/kein Schreiben, nichts wird zu SIN befördert. Read-only-Fidelity-Befund: der EDITOR-Decoder (AiScript_File.cs) glosst70A8nicht (fehlt inFieldArgBack/FieldNameForFunc) undAiStackModelkennt seine Arität nicht → eine Anzeigelücke, die an die MAGIC-lane übergeben wurde (docs/ai/HANDOFF_SEYMOUR_ATEL_DECODER_GLOSS_GAP_2026-06-10.md), ohne Gameplay-Effekt. PATCH (verfeinert/klassifiziert einen bestehenden schreibgeschützten Katalog, löst einen SIN-Datenblocker auf; Präzedenzv2.61.3/v2.62.1; Tie-Breaker Zweifel→PATCH). Kein neuer Writer; berührt nicht runtime/AURORA/VALEFOR/native-menu/SIN-chain-builder/CHAPPU/save. Verifiziert durch einen adversarischen Workflow (3 Refuter + Vollständigkeits-Kritiker). Build 0 Fehler / 361 Warnungen;--spiraatlas-rt0+--aicmdmeta-rt0+AiScriptLab --ai2(346/346) PASS. Doku:docs/ai/ATLAS_SEYMOUR_ATEL_CALL_SHAPE_AUDIT_RESULT_2026-06-10.md. [vorher:v2.65.2]