Files
TheTree_mock/docs/plans/original-completion-2026-10-02/execution/p28-02/diag/BLOCKED.md
T

6.1 KiB
Raw Blame History

過去の blocked 記録(repair2 で解消済み)

OPUS_STARTUP_LIFECYCLE_CLARIFICATION により、以下の pause の質問も解消しました。 この文書は履歴です。現在の実装・検証状況は IMPLEMENTATION.md と UNIT_OUTPUT.txt を参照してください。 以下の「未提出」「未実行」は、当時の状態を記録したものです。

P28-02-DIAG: repair1 起動時の pause 呼出しの適用範囲

repair1 の判断

OPUS_D2_SCOPE_CLARIFICATION により、以前の S/K/C の比較境界の質問は 解消しました。以下の以前の記録は履歴であり、現在の阻害理由ではありません。

残る確認は、起動準備で probe が GameClock.set_paused(true) を呼んでよいかです。 補足の「collector の SPEC §4.3 と同じ順序」に参照される execution/p28-01/SPEC.md の §4.3 手順2は、autoload 準備後、R の復元前に この呼出しを要求しています。一方、P28-02 の SPEC §3.1 と TASK_INSTRUCTIONS は、 live を変更できる API を fixture の restore と advance_minutes(1) のみに 限定しています。補足は main の追加を明示していますが、probe によるこの pause 呼出しの例外は明示していません。

scripts/core/simulation_kernel.gd:175-178 の set_paused(true) は paused と _pause_request_serial を変更します。後者は今回明示された K 層の 対象です。したがって、読取 API とみなすことはできません。 main の _ready による副作用は明示された main 追加に伴うものとして扱えますが、 それとは別の probe の呼出しについて、許可を独自に広げません。

必要な確定は、collector §4.3 手順2の pause を起動準備の例外として許すのか、 DIAG ではその手順を省略して restore → main 追加とするのか、の一点です。 collector の windowed 実行や速度設定を DIAG に持ち込む要求ではありません。

確認した SPEC の strip SHA は 0420dd4d2a95db65adc685bca91b9ff686650af31675f193992d75909a676ac6、 raw SHA は f58378b6cb317478f9d26776d0a236804f4ac80789d93f1555133298e4328d24。 TASK_INSTRUCTIONS の raw SHA は b9b635b2598aee32efac662aa21d21fc88f55fbfdc6097cf07483e7fa5d32a7d と一致しました。

実装 S は未提出、unit と native は未実行、PASS の主張はありません。 git 書込み、他エージェント起動、Runner 操作、製品変更は行っていません。

以前の記録(S/K/C の質問は解消済み)

対象 base: 8c06c3b44235a52f35898b1f6263e8ee064af256。 実装提出ではなく、仕様判断への差戻しです。受入の達成は主張しません。

必要な判断

SPEC §3.1・§3.3 と D2 の「live の全状態」は、 SimulationRuntime.create_snapshot() が返す保存対象の全状態を指すのか、 snapshot に含まれない内部状態も指すのかを確定してください。

前者なら、返された Dictionary 全体の var_to_bytes 完全一致を比較範囲として 明記する必要があります。後者なら、内部状態の対象と観測方法 (Object 参照、循環参照、signal 接続、性能計測状態などの扱いを含む)が必要です。 worker が独自に対象を除外して「全状態一致」と報告することはしません。

base のソースで確認した根拠

  • scripts/core/simulation_kernel.gd:39-46 に性能計測状態、_accumulator、 _skip_next_process、handler 登録、pause serial などが存在します。 同ファイル clock_snapshot()(209-215行)は absolute_minute、speed、 paused、snapshot_version の4項目だけを返します。
  • scripts/core/simulation_snapshot.gd:6-14 は、この clock_snapshot() と GameState の snapshot を取り込みます。
  • autoload/simulation_runtime.gd:521-585 の create_snapshot() は 上記 envelope に各 system の保存用 snapshot を追加します。 同ファイル134-136行の _mvp_manifest_cache_catalog、 _mvp_manifest_cache_generation、_mvp_manifest_cache は含まれません。
  • 同ファイル560行から呼ぶ _create_mvp_content_manifest() は、 11189-11195行で cache hit を判定し、miss 時にはこの内部キャッシュを書き換えます。 したがって create_snapshot() の結果を前後で比較するだけでは、 その呼出しによる内部キャッシュの変更を検出できません。

これは実際の測定区間で cache miss が発生したという報告ではありません。 warm 30分によって cache が構築される可能性はあります。しかし、cache hit の場合も、 snapshot の bytes 一致が証明する範囲と「全状態」の要求範囲を確定する必要があります。 読み取り API としての get_property_list() / get() による独自走査を採る場合も、 参照や実行時メタデータをどこまで含めるかは、この受入境界の判断になります。

確認済み事項と作業状態

  • AGENTS.md、SPEC.md、TASK_INSTRUCTIONS.md と RESTART CLARIFICATION_02 を読取。
  • SPEC の sha256(text.strip()) は契約値 0420dd4d2a95db65adc685bca91b9ff686650af31675f193992d75909a676ac6 と一致。 raw-bytes SHA との差を阻害理由にはしていません。
  • 許可された外部 Python 依存6ファイルの SHA は CLARIFICATION_02 D1 とすべて一致。
  • tick ID による結合、inclusive 区間、observer 別記録の仕様に不足は見つかっていません。
  • scratch を構成できない項目は理由つき未測定にする規定があるため、 その可否自体を今回の阻害理由にはしていません。
  • 変更はこの diag/BLOCKED.md のみ。driver・probe・checker・verify・unit 試験は未実装。
  • unit 試験、engine、正式 validation は未実行。PASS の主張はありません。 指定 tmp 配下の一時ディレクトリ作成・削除の確認のみ実施しました。
  • git 書込み、他エージェント起動、Runner 操作、製品変更は行っていません。