アップデート 2.197
2026/7/31
v2.197.0.0BETAMINOR
Seymour2026年7月31日
P2 L2: AtelPhaseRotationAdapter (技術情報 byte-local — : (技術情報 OperationPreview ((オフラインバイトローカルライター) (+ (消費可能3層差分)IDA + ソース/検証
- 前版:
v2.196.0.0] Core/Writers/AtelPhaseRotationAdapter.cs(atel-recipe-phase-rotation, カタログ登録、10テスト): モンスターからスライスしたにAiPhaseRotationRecipe.Apply((実際の、 API, in-memory) 技術情報 AiFile , ) 技術情報 インメモリ) WHOLE-bin を適用;ValidateMonsterBinHash(経由の全体ハッシュ前提条件(不一致 → ステージングに触れる前にスロー); 事前 pre-validationCodeWalkClosedExactly; 三重事後検証 post-validation (CodeWalkClosedExactly+UnknownOpcodes == 0+RoundTripsByteIdentical); re-insertion 技術情報SpliceAiFileIntoMonsterGrow((実際のコーデック) API) 技術情報 re-slice ) 経由の再挿入と再スライス検証; 実際のレシピ形状をミラーする許可リスト(/トリガーはブロック/ (BattleStart/AfterAnyValidTurn — 正直なClass ) 技 B術情報ComputeDryRunDiff((スライスされた上の3層)。 ) AiFiles). 実際のフィクスチャで検証: m001(5 vars + 2エントリポイント)が適用; m000(0 vars)が正直に拒否。Core/OperationPreview.cs((5テスト):OperationPreview/FilePreviewSummary公開、安全プロバイダー(1ファイルの失敗がプレビューを決して殺さない) PER FILE, null-safe , 技術情報BuildFromPlanがエグゼキューターと同じステージング規則を使用(ステージ後プレビュー (post-stage = プロモートされるものと正確に同じ)。 完全e2eテスト: EditSession → OperationPlan → OperationExecutorV2 → ReceiptBuilder → → → 編集を運ぶ出力(=7)— 技術 (CostMp情報→review→適用→receiptが実際のCoreでエンドツーエンドで機能。 end-to-end 技術情報docs/ai/P2_VALIDACAO_SOURCE_2026-07-31.md((ソース/検証)IDA 技術情報 ゲームがモンスター全体をロードし、 WHOLE 固定ヘッダーオフセットでパーティションを解決する (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/2 PASS (207 → 223). ### MINOR
v2.197.1.0BETA
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に改名。方法論的な診断: apply/validator/spliceはすでに319/319を通過しており、唯一の誤フラグはqueuedだった(--json経由で319件すべての失敗が同一)。RuntimeTools/offline_ci.ps1:--phase-rotation-rt0ゲートを AiScriptLab セクションに追加 — Goal-4 の「Build前にfamily RT0 ゲート」という要件を満たす。これは AiScriptLab には存在したが、公式の CI には接続されていなかった。- 結果:
--phase-rotation-rt0PASS(recipe apply 319/319、validator 319/319、splice 319/319、shape check 319/319、var1 store 300/300)。offline_ci: 無関係な FAIL に関する pre-existing が1件残存 —BattleCompanionActivationLab(mcyt00_21ドリフトセンチネル:FFX Extractedコーパスはvanillaに戻り、slot0=m213、formation 213/37/37 — 一方、センチネルはArena+レーンの Dark Aeons 334/335/336バリアントを記録;保留中の判断: Arena+アーティファクトを復元、センチネルを更新、または記録済みのドリフトを受け入れる)。 - ベースライン: 223/223 PASS(スイートは変更なし;修正は tooling-gate のみ)。 ### MINOR ### MINOR
v2.197.0.0
v2.197.1.1BETA
Seymour2026年7月31日
P3-L1: ランタイム/統合/リリース契約の基盤
docs/ai/P3_RUNTIME_CONTRACTS_2026-07-31.md(ガバナンス文書、read-only — バイト列の変更なし): per-resource ランタイム契約 —FfxDinput8Probe(master main-thread key、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 bridge PROVEN on-screen を仕組みとして / LAB を製品として — 製品化はゲート管理);外部ツール(probe、hooks、ctl、corpus)のinstall/config/fallback/actionable-error 契約;互換性マトリックス(FFX.exe = 単一ターゲット、ffxoficial = IDA リファレンス、PS2 = オフラインコーパス);測定可能な目標を持つ P3 バッチ L2–L6(GameEnvironmentProbe、12項目のoperationsスイート、リリースマニフェスト+ハッシュ、ウルフラマイター 契約、per-family RT2)。- 動作変更なし — ベースライン223/223の PASS は未変更。 ### PATCH
v2.197.1.0