更新 2.197
2026/7/31
v2.197.0.0BETAMINOR
Seymour2026年7月31日
P2 L2: AtelPhaseRotationAdapter (離線 byte-local 寫入器) + OperationPreview (可消耗的三層差異) + source/IDA 驗證
Core/Writers/AtelPhaseRotationAdapter.cs(atel-recipe-phase-rotation, 已註冊到目錄, 10 項測試): 將AiPhaseRotationRecipe.Apply(真實 API, in-memory) 應用至從怪物 bin 切片而來的 AiFile; 通過 WHOLE-bin 進行ValidateMonsterBinHash哈希前置條件 (不匹配 → 在接觸暫存區之前拋出); pre-validationCodeWalkClosedExactly; 三重 post-validation (CodeWalkClosedExactly+UnknownOpcodes == 0+RoundTripsByteIdentical); 通過 re-insertion (真實編解碼器SpliceAiFileIntoMonsterGrow) 進行 API, 搭配 re-slice 驗證; 允許列表鏡像真實配方形狀 (BattleStart/AfterAnyValidTurn 觸發已封鎖 — 誠實的 Class B/grow);ComputeDryRunDiff(在已切片 AiFiles 上的三層)。已在真實固件上驗證: m001 (5 個變數 + 2 個入口點) 應用成功; m000 (0 個變數) 誠實拒絕。Core/OperationPreview.cs(5 項測試):OperationPreview/FilePreviewSummary— 三層差異 (位元組/反組譯/語義) 公開了 PER FILE, null-safe 提供者 (單一檔案失敗絕不會殺死預覽);BuildFromPlan使用與執行器相同的暫存區慣例 (post-stage 預覽 = 完全等同於將被推廣的內容)。完整的端到端測試: EditSession → OperationPlan → OperationExecutorV2 → ReceiptBuilder → 攜帶編輯的輸出 (CostMp=7) — 模擬→審查→應用→收據在真實 Core 上正常運作 end-to-end。docs/ai/P2_VALIDACAO_SOURCE_2026-07-31.md(source/IDA 驗證): 遊戲載入 WHOLE 怪物 bin,並透過固定標頭偏移解析分割區 (FFX_Battle_LoadMonsterFilesIntoMemoryChr@0x783730,InstallMonsterFileSectionPointers@0x783BB0 — pointer-trust, 無執行時期哈希) → whole-bin 哈希前置條件確認為正確; ATEL 在 IDA 中的派發 (FFX_Atel_InterpretWorkerOpcodes@0x864180,DispatchNativeCall@0x877720, 戰鬥表 @0xC42618); 操作碼 0xAE/0x9F/0xA0/0xB5/0xD8 corpus-proven; RT0 閘門驗證結構性 round-trip (非 in-game 行為 — RT2 仍按設計暫掛);ffx-reconstructed戰鬥為 stub-level (執行時期真相存在於 IDA 文件中)。- 基線: 223/223 PASS (207 → 223). ### MINOR
v2.196.0.0
v2.197.1.0BETAPATCH
Seymour2026年7月31日
`--phase-rotation-rt0` 閘門修正(過時形狀檢查)+ 整合至 `offline_ci.ps1`
RuntimeTools/AiScriptLab/Program.cs(PhaseRotationRt0): 形狀檢查預期D8 0x700B(PerformCommand) 位於附加區塊中,但AiPhaseRotationWriter在當前配方中發出D8 0x705A(ForcePerformCommand —CommandCallFor) → 在 319/319 個語料庫條目上queued=False(上次記錄執行是切換之前的 v2.85.x)。已修正為0x705A並重新命名為hasForcedPerform。系統性診斷:應用/驗證器/拼接已通過 319/319;唯一的虛假標誌是queued(透過--json在所有 319 次失敗中一致)。RuntimeTools/offline_ci.ps1:--phase-rotation-rt0閘門新增至 AiScriptLab 區段 — 關閉了 Goal-4「家族 RT0 閘門在構建之前」需求,該需求存在於 AiScriptLab 但尚未接入官方 CI。- 結果:
--phase-rotation-rt0PASS(配方應用 319/319,驗證器 319/319,拼接 319/319,形狀檢查 319/319,var1 儲存 300/300)。offline_ci:1 個剩餘 pre-existing 無關 FAIL —BattleCompanionActivationLab(mcyt00_21漂移哨兵:FFX Extracted語料庫已回到原始狀態 — slot0=m213, formation 213/37/37 — 而哨兵記錄了 Arena+ 工作線 Dark 召喚獸 334/335/336 變體;待定決策:恢復 Arena+ 構件、更新哨兵,或接受記錄中的漂移)。 - 基準線:223/223 PASS(套件未變;修正僅為 tooling-gate)。 ### MINOR ### MINOR
v2.197.0.0
v2.197.1.1BETAREVISION
Seymour2026年7月31日
P3-L1:執行時期/整合/發行合約基礎
docs/ai/P3_RUNTIME_CONTRACTS_2026-07-31.md(治理文件,read-only — 無位元組變更):per-resource 執行時期合約 —FfxDinput8Probe(主 main-thread 金鑰,MMFLocal\FFXProbeBlock_v1,STANDBY 預設,RT2 PROVEN 2026-06-03,診斷模式mon/read/arena-flags),FfxHooksDll(23 個掛勾,F7 旗標,per-layer 份合約),11 個 read-only RT2 探測器 (每個探測器的診斷模式);Force Battle 矛盾已透過證據解決 (當機 = 脫離主執行緒 →CreateRemoteThread已退役;main-thread 橋接 PROVEN on-screen 作為機制 / LAB 作為產品 — 產品化已設閘);用於外部工具的安裝/設定/備援/actionable-error 合約 (探測器、掛勾、控制、語料庫);相容性矩陣 (FFX.exe = 單一目標;ffxoficial = IDA 參考;PS2 = 離線語料庫);P3 批次 L2–L6 具備可衡量目標 (GameEnvironmentProbe、12 項操作套件、發行資訊清單與雜湊、Gemini 合約、per-family RT2)。- 無行為變更 — 基準 223/223 個 PASS 未改動。 ### PATCH
v2.197.1.0