Update 2.197
31.7.2026
v2.197.0.0BETAMINOR
Seymour31. Juli 2026
P2 L2: AtelPhaseRotationAdapter (Offline-Byte-lokaler Writer) + OperationPreview (konsumierbarer Drei-Schichten-Diff) + Quell-/IDA-Validierung
Core/Writers/AtelPhaseRotationAdapter.cs(atel-recipe-phase-rotation, im Katalog registriert, 10 Tests): wendetAiPhaseRotationRecipe.Apply(echte API, im Speicher) auf das aus dem Monster-Bin geschnittene AiFile an; WHOLE-Bin-Hash-Präzedenz viaValidateMonsterBinHash(Mismatch → Throw vor dem Staging); Pre-ValidierungCodeWalkClosedExactly; dreifache Post-Validierung (CodeWalkClosedExactly+UnknownOpcodes == 0+RoundTripsByteIdentical); Wiedereinfügung viaSpliceAiFileIntoMonsterGrow(echte Codec-API) mit Re-Slice-Verifikation; Allowlist, die die echte Rezeptform spiegelt (BattleStart/AfterAnyValidTurn-Trigger blockiert — ehrliche Klasse B/grow);ComputeDryRunDiff(3 Schichten auf geschnittenen AiFiles). Auf echten Fixtures validiert: m001 (5 Vars + 2 Entrypoints) wendet an; m000 (0 Vars) lehnt ehrlich ab.Core/OperationPreview.cs(5 Tests):OperationPreview/FilePreviewSummary— 3-Schicht-Diff (Bytes/Disassembly/Semantik) PRO DATEI exponiert, null-sicherer Provider (ein Fehler in einer Datei tötet nie die Vorschau);BuildFromPlanverwendet dieselbe Staging-Konvention wie der Executor (Post-Stage-Vorschau = exakt das, was promotet würde). Voller E2E-Test: EditSession → OperationPlan → OperationExecutorV2 → ReceiptBuilder → Ausgabe mit dem Edit (CostMp=7) — simulieren→reviewen→anwenden→Receipt funktioniert Ende-zu-Ende auf dem echten Core.docs/ai/P2_VALIDACAO_SOURCE_2026-07-31.md(Quell-/IDA-Validierung): das Spiel lädt das GESAMTE Monster-Bin und löst Partitionen über feste Header-Offsets auf (FFX_Battle_LoadMonsterFilesIntoMemoryChr@0x783730,InstallMonsterFileSectionPointers@0x783BB0 — Pointer-Trust, kein Runtime-Hash) → WHOLE-Bin-Hash-Präzedenz bestätigt korrekt; ATEL-Dispatch in IDA (FFX_Atel_InterpretWorkerOpcodes@0x864180,DispatchNativeCall@0x877720, Battle-Tabelle @0xC42618); Opcodes 0xAE/0x9F/0xA0/0xB5/0xD8 korpus-bewiesen; RT0-Gate validiert strukturellen Roundtrip (nicht In-Game-Verhalten — RT2 noch per Design ausstehend);ffx-reconstructed-Battle ist Stub-Level (Runtime-Wahrheit lebt in den IDA-Docs).- Baseline: 223/223 PASS (207 → 223). ### MINOR
v2.196.0.0
v2.197.1.0BETAPATCH
Seymour31. Juli 2026
`--phase-rotation-rt0`-Gate-Fix (veraltete Shape-Prüfung) + Integration in `offline_ci.ps1`
RuntimeTools/AiScriptLab/Program.cs(PhaseRotationRt0): der Shape-Check erwarteteD8 0x700B(PerformCommand) im angehängten Block, aberAiPhaseRotationWriteremittiertD8 0x705A(ForcePerformCommand —CommandCallFor) im aktuellen Rezept →queued=Falsebei 319/319 Corpus-Einträgen (letzter dokumentierter Lauf war v2.85.x, vor dem Wechsel). Auf0x705Agefixt und inhasForcedPerformumbenannt. Methodische Diagnose: apply/validator/splice bestanden bereits 319/319; das einzige falsche Flag warqueued(identisch über alle 319 Fehler via--json).RuntimeTools/offline_ci.ps1:--phase-rotation-rt0-Gate zur AiScriptLab-Sektion hinzugefügt — schließt die Goal-4-Anforderung „family RT0 gate before Build", die in AiScriptLab existierte, aber nicht in die offizielle CI verdrahtet war.- Ergebnis:
--phase-rotation-rt0PASS (recipe apply 319/319, validator 319/319, splice 319/319, shape check 319/319, var1 store 300/300). offline_ci: 1 verbleibender vorbestehender, unabhängiger FAIL —BattleCompanionActivationLab(mcyt00_21-Drift-Sentinel: dasFFX Extracted-Corpus ist wieder Vanilla — slot0=m213, formation 213/37/37 — während der Schutzwall die Arena+-Lane Dark Aeons 334/335/336-Variante dokumentiert; Entscheidung ausstehend: Arena+-Artefakt wiederherstellen, Schutzwall aktualisieren oder die dokumentierte Drift akzeptieren). - Baseline: 223/223 PASS (Suite unverändert; Fix nur Tooling-Gate). ### MINOR ### MINOR
v2.197.0.0
v2.197.1.1BETAREVISION
Seymour31. Juli 2026
P3-L1: Grundlage für Laufzeit-, Integrations- und Release-Verträge
docs/ai/P3_RUNTIME_CONTRACTS_2026-07-31.md(Governance-Doc, read-only — keine Bytes geändert): Pro-Ressource-Laufzeitvertrag —FfxDinput8Probe(Master-Main-Thread-Key, MMFLocal\FFXProbeBlock_v1, STANDBY-Default, RT2 PROVEN 2026-06-03, Diagnosemodimon/read/arena-flags),FfxHooksDll(23 Hooks, F7-Flags, Pro-Layer-Verträge), 11 Read-only-RT2-Probes (Diagnosemodus pro Probe); Force-Battle-Widerspruch durch Evidenz aufgelöst (Crash = off main thread →CreateRemoteThreadretired; Main-Thread-Bridge PROVEN on-screen als Mechanismus / LAB als Produkt — Produktisierung gated); Install-, Config-, Fallback- und Actionable-Error-Vertrag für externe Tools (Probe, Hooks, ctl, Korpus); Kompatibilitätsmatrix (FFX.exe = Einzelziel; ffxoficial = IDA-Referenz; PS2 = Offline-Korpus); P3-Batches L2–L6 mit messbaren Zielen (GameEnvironmentProbe, 12-Punkte-Operationssuite, Release-Manifest+Hashes, Gemini-Vertrag, Pro-Familie-RT2).- Kein Verhaltensänderung — Baseline 223/223 PASS unberührt. ### PATCH
v2.197.1.0