diff --git a/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md b/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md index b441506..bbe5996 100644 --- a/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md +++ b/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md @@ -1,8 +1,8 @@ # 原本全実装に向けた作業計画 2026年10月改訂 -## P23-02 現着手・次に閉じる1件(2026-10-12・r310証拠統合) +## P23-02 現着手・次に閉じる1件(2026-10-12・r312証拠統合) -P23-02は着手中・次に閉じる1件。30パッケージ/88成果、正式9/着手19/予定60、部分点なし。制作r32、選定済み未採用作業r62、実装親r274/library275を保持。原17条件C01-C09/X1-X8は全て未受入、Windows実機C08/X8だけブロック。候補r302/library303の静的・host・局所304-r02の252/0と原S6/whole305の24/0・各15/0・全11,487,732 bytes原oracle同値・復元はr306証拠を保持。同期時間1213031→1185064us(約2.305547%短い)は隣接単発のみで安定利益・P95/D10/50msを認定せず、約1.185秒の同期停止が残る。追加r307-r02は同じ303の新1engineのみ、再build/library複製/stage clone0。67/0でcompact整数・index浮動小数・cellVector3の3変換条件を原nearest helperへ比較し、全ordered typed結果・全Runtime/Path状態・型と所有/変更分離を独立有限受理。ticks初回で実set_scriptしたcustom Pathは原script変数復元・全状態保持後、custom reconstruct/copy順序とtyped writable経路/cache分離をactualとoracle双方で比較。置換oracleは同じ置換後の原ready resolverであり、初期customを原nearestが受理する証拠ではない。oracle通知duration0は全PerformanceBudget履歴同値を主張しない。不正形状・一般再入の全域は未受入。以下r309-r03の列挙条件のみ有限検証。旧15+8/tag1028・wholeを重複実行しない。r307準備は日本語エスケープpath置換anchor不一致でengine0/input無し停止、失敗記録を保持してr02参照修復。1所有PID68102正常終了・strict/private・source/default/D4/SUPPORT/共有親stage/project復元を独立有限受理。r302/library303は未採用・選定保留。料金/重み/閾値/論理時刻/行動/会計/乱数/保存を変更しない。Guest298/codec290非採用・旧履歴を保持。最終172・通常OS/Windows・全原条件未受入、正式完了追加0。追加r309-r03は既存親275/候補303各1所有engine、各44/0、同じ入力の6fixture全ordered typed bytes一致。goal index欠落/負/範囲外3件は変更compact helperへ入る前の拒否と全状態不変を確認。parents Array[int]/cells PackedVector3Arrayの2原変換形状は結果・全Runtime/Path状態・型・writable・cacheとの別identity・相互変更隔離を比較。ticks初回に同core/samegoalへ1回再入し、nested miss/outer hit、通知2回、結果一致と所有を比較した。supplied ticksと追加observerの有限synthetic条件でありRuntime通常適用・全Budget duration履歴・任意再入・壊れparent/cellの元errorを受入しない。r309の親library誤参照準備失敗とr02のpre-review参照名拒否はengine0で保持しr03修復。新build/libraryコピー/stageclone/旧全回帰0、strict/private・所有終了後project復元・source/default/D4/SUPPORT/共有親stage保護を独立有限受理。原17条件未受入、正式完了追加0。次は候補303は未採用・選定保留。親275と同じ6境界条件・有限同goal再入の互換証拠を保持する。境界ケースを際限なく追加せず、残る約1.185秒の同期停止について既存帰属証拠から支配処理と依存関係を1件選び、関連変更をまとめる。正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。 +P23-02は着手中・次に閉じる1件。30パッケージ/88成果、正式9/着手19/予定60、部分点なし。制作r32、選定済み未採用作業r62、実装親r274/library275を保持。原17条件C01-C09/X1-X8は全て未受入、Windows実機C08/X8だけブロック。候補r302/library303の静的・host・局所304-r02の252/0と原S6/whole305の24/0・各15/0・全11,487,732 bytes原oracle同値・復元はr306証拠を保持。同期時間1213031→1185064us(約2.305547%短い)は隣接単発のみで安定利益・P95/D10/50msを認定せず、約1.185秒の同期停止が残る。追加r307-r02は同じ303の新1engineのみ、再build/library複製/stage clone0。67/0でcompact整数・index浮動小数・cellVector3の3変換条件を原nearest helperへ比較し、全ordered typed結果・全Runtime/Path状態・型と所有/変更分離を独立有限受理。ticks初回で実set_scriptしたcustom Pathは原script変数復元・全状態保持後、custom reconstruct/copy順序とtyped writable経路/cache分離をactualとoracle双方で比較。置換oracleは同じ置換後の原ready resolverであり、初期customを原nearestが受理する証拠ではない。oracle通知duration0は全PerformanceBudget履歴同値を主張しない。不正形状・一般再入の全域は未受入。以下r309-r03の列挙条件のみ有限検証。旧15+8/tag1028・wholeを重複実行しない。r307準備は日本語エスケープpath置換anchor不一致でengine0/input無し停止、失敗記録を保持してr02参照修復。1所有PID68102正常終了・strict/private・source/default/D4/SUPPORT/共有親stage/project復元を独立有限受理。r302/library303は未採用・選定保留。料金/重み/閾値/論理時刻/行動/会計/乱数/保存を変更しない。Guest298/codec290非採用・旧履歴を保持。最終172・通常OS/Windows・全原条件未受入、正式完了追加0。追加r309-r03は既存親275/候補303各1所有engine、各44/0、同じ入力の6fixture全ordered typed bytes一致。goal index欠落/負/範囲外3件は変更compact helperへ入る前の拒否と全状態不変を確認。parents Array[int]/cells PackedVector3Arrayの2原変換形状は結果・全Runtime/Path状態・型・writable・cacheとの別identity・相互変更隔離を比較。ticks初回に同core/samegoalへ1回再入し、nested miss/outer hit、通知2回、結果一致と所有を比較した。supplied ticksと追加observerの有限synthetic条件でありRuntime通常適用・全Budget duration履歴・任意再入・壊れparent/cellの元errorを受入しない。r309の親library誤参照準備失敗とr02のpre-review参照名拒否はengine0で保持しr03修復。新build/libraryコピー/stageclone/旧全回帰0、strict/private・所有終了後project復元・source/default/D4/SUPPORT/共有親stage保護を独立有限受理。原17条件未受入、正式完了追加0。追加r311-r02は現実装親274/library275の1回の帰属診断。隔離4script24wrapperの原本体全文保持、Budget257そのまま、既存library/config再利用。新build/librarycopy0、隔離APFS clone1・r02追加clone0、原r311のmetrics二重field参照をengine0で拒否保持し1式修復。18/0・PID84968 normal終了・strict/private/source/default/current310D4/SUPPORT/親隔離stage/project復元・全after64711487732bytes原oracle同値を独立有限受理。metrics3896bytes/281 partitions・宣言34行を全文照合。計測付きtick1268510us、AI979790us、projection50/656139us、extract50/95575us、rank50/124620us、evaluate5000/106351us、snapshot1/76851usは包含観測のみ。evaluateはrank内で加算せず、zeroはscript wrapper未到達だけでnative仕事/費用0ではない。純CPU/割合/原因/速度比較/50ms/P95/D10を認定しない。次作業Guest一括抽出/評価/順位付けの契約r312を固定し、新候補未実装・性能利益未証明・制作採用0。原17条件未受入・正式完了追加0。次は既存のnative投影を再利用し、Guest候補抽出・評価・順位付けの一括純処理を1関連変更として実装する。r298のGDScript正規化や小さなprice/key/copy変更を再起動しない。全原helper・拒否順・符号整数・型/コピー所有・callback/状態遷移契約を先に照合し、unsupported前無変更の元fallbackを保持する。原重み/閾値/時刻/価格/保存は変更しない。関連変更の正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。 [host_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-lazy-edge-cache-build-actual-independent-review-r141.json)、[protocol](../../../artifacts/original-completion-2026-10-02/p23-02-native-lazy-edge-cache-protocol-actual-independent-review-r143.json)、[public_mutations](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-actual-independent-review-r146.json)、[existing_impact](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-existing-impact-actual-independent-review-r147.json)、[cache_lifetime](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-queue-retention-actual-independent-review-r150.json)、[whole647_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-pair-whole647-actual-independent-review-r151.json)、[residual_diagnostic](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-residual-diagnostic-actual-independent-review-r155.json)、[elevator_index_static](../../../artifacts/original-completion-2026-10-02/p23-02-elevator-connector-index-static-independent-review-r156.json)、[elevator_index_local](../../../artifacts/original-completion-2026-10-02/p23-02-elevator-connector-index-local-actual-independent-review-r160.json)、[elevator_index_impact](../../../artifacts/original-completion-2026-10-02/p23-02-elevator-index-existing-impact-actual-independent-review-r161.json)、[elevator_index_whole647_pair](../../../artifacts/original-completion-2026-10-02/p23-02-elevator-index-pair-whole647-actual-independent-review-r162.json)、[elevator_index_repeated_pair](../../../artifacts/original-completion-2026-10-02/p23-02-elevator-index-repeat-whole647-actual-independent-review-r164.json)、[budget_integer_window_static](../../../artifacts/original-completion-2026-10-02/p23-02-budget-integer-window-static-independent-review-r165.json)、[budget_integer_window_local](../../../artifacts/original-completion-2026-10-02/p23-02-budget-integer-window-local-actual-independent-review-r169.json)、[budget_integer_window_impact](../../../artifacts/original-completion-2026-10-02/p23-02-budget-integer-window-existing-impact-actual-independent-review-r171.json)、[budget_integer_window_pair](../../../artifacts/original-completion-2026-10-02/p23-02-budget-integer-window-pair-whole647-actual-independent-review-r172.json)、[residual_detail](../../../artifacts/original-completion-2026-10-02/p23-02-residual-detail-diagnostic-actual-independent-review-r174.json)、[input_structure](../../../artifacts/original-completion-2026-10-02/p23-02-residual-input-structure-independent-review-r175.json)、[host_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-facility-access-build-actual-independent-review-r181.json)、[local_equivalence](../../../artifacts/original-completion-2026-10-02/p23-02-native-facility-access-local-actual-independent-review-r183.json)、[host_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-build-actual-independent-review-r188.json)、[local_equivalence](../../../artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-local-actual-independent-review-r191.json)、[boundaries](../../../artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-boundaries-actual-independent-review-r195.json)、[whole_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-whole-pair-actual-independent-review-r196.json)、[repeat](../../../artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-repeat-actual-independent-review-r198.json)、[dependency](../../../artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-dependency-actual-independent-review-r200.json)、[impact](../../../artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-original-impact-actual-independent-review-r205.json)、[reconstruction_static](../../../artifacts/original-completion-2026-10-02/p23-02-native-path-reconstruction-static-independent-review-r204.json)、[reconstruction_host](../../../artifacts/original-completion-2026-10-02/p23-02-native-path-reconstruction-build-actual-independent-review-r206.json)、[reconstruction_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-actual-independent-review-r211.json)、[reconstruction_whole_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-whole-pair-actual-independent-review-r214.json)、[travel_ownership_static](../../../artifacts/original-completion-2026-10-02/p23-02-native-travel-ownership-static-independent-review-r216.json)、[travel_ownership_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-travel-ownership-build-actual-independent-review-r217.json)、[travel_ownership_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-travel-ownership-local-actual-independent-review-r220.json)、[travel_ownership_whole_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-travel-ownership-whole-pair-actual-independent-review-r222.json)、[tag_helpers_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-tag-helpers-local-actual-independent-review-r229.json)、[tag_helpers_whole_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-tag-helpers-whole-pair-actual-independent-review-r231.json)、[cache_key_static](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-key-static-independent-review-r233.json)、[cache_key_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-key-build-actual-independent-review-r234.json)、[cache_key_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-key-local-actual-independent-review-r235.json)、[cache_key_whole_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-key-whole-pair-actual-independent-review-r236-r02.json)、[current233_diagnostic](../../../artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r238.json)、[local_names_static](../../../artifacts/original-completion-2026-10-02/p23-02-native-local-names-static-independent-review-r239.json)、[local_names_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-local-names-build-actual-independent-review-r240.json)、[local_names_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-local-names-local-actual-independent-review-r241.json)、[local_names_whole_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-local-names-whole-pair-actual-independent-review-r242.json)、[native_internal_static](../../../artifacts/original-completion-2026-10-02/p23-02-native-internal-diagnostic-static-independent-review-r244.json)、[native_internal_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-internal-diagnostic-build-actual-independent-review-r245-r02.json)、[native_internal_diagnostic](../../../artifacts/original-completion-2026-10-02/p23-02-native-internal-diagnostic-actual-independent-review-r246-r02.json)、[cached_path_static](../../../artifacts/original-completion-2026-10-02/p23-02-native-cached-path-summary-static-independent-review-r248-r02.json)、[cached_path_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-cached-path-summary-build-actual-independent-review-r249.json)、[cached_path_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-cached-path-summary-local-actual-independent-review-r250-r02.json)、[invalid_cache_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-invalid-cached-path-local-actual-independent-review-r251-r02.json)、[cached_path_whole_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-cached-path-whole-pair-actual-independent-review-r253-r02.json)、[budget_callback_diagnostic](../../../artifacts/original-completion-2026-10-02/p23-02-budget-callback-diagnostic-actual-independent-review-r255-r03.json)、[budget_native_static](../../../artifacts/original-completion-2026-10-02/p23-02-native-budget-record-static-independent-review-r257-r04.json)、[budget_native_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-budget-record-build-actual-independent-review-r258-r02.json)、[budget_native_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-budget-record-local-actual-independent-review-r260-r02.json)、[budget_native_impact_whole](../../../artifacts/original-completion-2026-10-02/p23-02-native-budget-impact-whole-actual-independent-review-r262.json)。証拠は各入力版・適用範囲に限定する。 diff --git a/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md b/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md index 27cc7e2..9ade566 100644 --- a/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md +++ b/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md @@ -1,8 +1,8 @@ # P00〜P03 進捗台帳への証拠統合 -## P23-02 現着手・次に閉じる1件(2026-10-12・r310証拠統合) +## P23-02 現着手・次に閉じる1件(2026-10-12・r312証拠統合) -P23-02は着手中・次に閉じる1件。30パッケージ/88成果、正式9/着手19/予定60、部分点なし。制作r32、選定済み未採用作業r62、実装親r274/library275を保持。原17条件C01-C09/X1-X8は全て未受入、Windows実機C08/X8だけブロック。候補r302/library303の静的・host・局所304-r02の252/0と原S6/whole305の24/0・各15/0・全11,487,732 bytes原oracle同値・復元はr306証拠を保持。同期時間1213031→1185064us(約2.305547%短い)は隣接単発のみで安定利益・P95/D10/50msを認定せず、約1.185秒の同期停止が残る。追加r307-r02は同じ303の新1engineのみ、再build/library複製/stage clone0。67/0でcompact整数・index浮動小数・cellVector3の3変換条件を原nearest helperへ比較し、全ordered typed結果・全Runtime/Path状態・型と所有/変更分離を独立有限受理。ticks初回で実set_scriptしたcustom Pathは原script変数復元・全状態保持後、custom reconstruct/copy順序とtyped writable経路/cache分離をactualとoracle双方で比較。置換oracleは同じ置換後の原ready resolverであり、初期customを原nearestが受理する証拠ではない。oracle通知duration0は全PerformanceBudget履歴同値を主張しない。不正形状・一般再入の全域は未受入。以下r309-r03の列挙条件のみ有限検証。旧15+8/tag1028・wholeを重複実行しない。r307準備は日本語エスケープpath置換anchor不一致でengine0/input無し停止、失敗記録を保持してr02参照修復。1所有PID68102正常終了・strict/private・source/default/D4/SUPPORT/共有親stage/project復元を独立有限受理。r302/library303は未採用・選定保留。料金/重み/閾値/論理時刻/行動/会計/乱数/保存を変更しない。Guest298/codec290非採用・旧履歴を保持。最終172・通常OS/Windows・全原条件未受入、正式完了追加0。追加r309-r03は既存親275/候補303各1所有engine、各44/0、同じ入力の6fixture全ordered typed bytes一致。goal index欠落/負/範囲外3件は変更compact helperへ入る前の拒否と全状態不変を確認。parents Array[int]/cells PackedVector3Arrayの2原変換形状は結果・全Runtime/Path状態・型・writable・cacheとの別identity・相互変更隔離を比較。ticks初回に同core/samegoalへ1回再入し、nested miss/outer hit、通知2回、結果一致と所有を比較した。supplied ticksと追加observerの有限synthetic条件でありRuntime通常適用・全Budget duration履歴・任意再入・壊れparent/cellの元errorを受入しない。r309の親library誤参照準備失敗とr02のpre-review参照名拒否はengine0で保持しr03修復。新build/libraryコピー/stageclone/旧全回帰0、strict/private・所有終了後project復元・source/default/D4/SUPPORT/共有親stage保護を独立有限受理。原17条件未受入、正式完了追加0。次は候補303は未採用・選定保留。親275と同じ6境界条件・有限同goal再入の互換証拠を保持する。境界ケースを際限なく追加せず、残る約1.185秒の同期停止について既存帰属証拠から支配処理と依存関係を1件選び、関連変更をまとめる。正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。 +P23-02は着手中・次に閉じる1件。30パッケージ/88成果、正式9/着手19/予定60、部分点なし。制作r32、選定済み未採用作業r62、実装親r274/library275を保持。原17条件C01-C09/X1-X8は全て未受入、Windows実機C08/X8だけブロック。候補r302/library303の静的・host・局所304-r02の252/0と原S6/whole305の24/0・各15/0・全11,487,732 bytes原oracle同値・復元はr306証拠を保持。同期時間1213031→1185064us(約2.305547%短い)は隣接単発のみで安定利益・P95/D10/50msを認定せず、約1.185秒の同期停止が残る。追加r307-r02は同じ303の新1engineのみ、再build/library複製/stage clone0。67/0でcompact整数・index浮動小数・cellVector3の3変換条件を原nearest helperへ比較し、全ordered typed結果・全Runtime/Path状態・型と所有/変更分離を独立有限受理。ticks初回で実set_scriptしたcustom Pathは原script変数復元・全状態保持後、custom reconstruct/copy順序とtyped writable経路/cache分離をactualとoracle双方で比較。置換oracleは同じ置換後の原ready resolverであり、初期customを原nearestが受理する証拠ではない。oracle通知duration0は全PerformanceBudget履歴同値を主張しない。不正形状・一般再入の全域は未受入。以下r309-r03の列挙条件のみ有限検証。旧15+8/tag1028・wholeを重複実行しない。r307準備は日本語エスケープpath置換anchor不一致でengine0/input無し停止、失敗記録を保持してr02参照修復。1所有PID68102正常終了・strict/private・source/default/D4/SUPPORT/共有親stage/project復元を独立有限受理。r302/library303は未採用・選定保留。料金/重み/閾値/論理時刻/行動/会計/乱数/保存を変更しない。Guest298/codec290非採用・旧履歴を保持。最終172・通常OS/Windows・全原条件未受入、正式完了追加0。追加r309-r03は既存親275/候補303各1所有engine、各44/0、同じ入力の6fixture全ordered typed bytes一致。goal index欠落/負/範囲外3件は変更compact helperへ入る前の拒否と全状態不変を確認。parents Array[int]/cells PackedVector3Arrayの2原変換形状は結果・全Runtime/Path状態・型・writable・cacheとの別identity・相互変更隔離を比較。ticks初回に同core/samegoalへ1回再入し、nested miss/outer hit、通知2回、結果一致と所有を比較した。supplied ticksと追加observerの有限synthetic条件でありRuntime通常適用・全Budget duration履歴・任意再入・壊れparent/cellの元errorを受入しない。r309の親library誤参照準備失敗とr02のpre-review参照名拒否はengine0で保持しr03修復。新build/libraryコピー/stageclone/旧全回帰0、strict/private・所有終了後project復元・source/default/D4/SUPPORT/共有親stage保護を独立有限受理。原17条件未受入、正式完了追加0。追加r311-r02は現実装親274/library275の1回の帰属診断。隔離4script24wrapperの原本体全文保持、Budget257そのまま、既存library/config再利用。新build/librarycopy0、隔離APFS clone1・r02追加clone0、原r311のmetrics二重field参照をengine0で拒否保持し1式修復。18/0・PID84968 normal終了・strict/private/source/default/current310D4/SUPPORT/親隔離stage/project復元・全after64711487732bytes原oracle同値を独立有限受理。metrics3896bytes/281 partitions・宣言34行を全文照合。計測付きtick1268510us、AI979790us、projection50/656139us、extract50/95575us、rank50/124620us、evaluate5000/106351us、snapshot1/76851usは包含観測のみ。evaluateはrank内で加算せず、zeroはscript wrapper未到達だけでnative仕事/費用0ではない。純CPU/割合/原因/速度比較/50ms/P95/D10を認定しない。次作業Guest一括抽出/評価/順位付けの契約r312を固定し、新候補未実装・性能利益未証明・制作採用0。原17条件未受入・正式完了追加0。次は既存のnative投影を再利用し、Guest候補抽出・評価・順位付けの一括純処理を1関連変更として実装する。r298のGDScript正規化や小さなprice/key/copy変更を再起動しない。全原helper・拒否順・符号整数・型/コピー所有・callback/状態遷移契約を先に照合し、unsupported前無変更の元fallbackを保持する。原重み/閾値/時刻/価格/保存は変更しない。関連変更の正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。 [host_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-lazy-edge-cache-build-actual-independent-review-r141.json)、[protocol](../../../artifacts/original-completion-2026-10-02/p23-02-native-lazy-edge-cache-protocol-actual-independent-review-r143.json)、[public_mutations](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-actual-independent-review-r146.json)、[existing_impact](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-existing-impact-actual-independent-review-r147.json)、[cache_lifetime](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-queue-retention-actual-independent-review-r150.json)、[whole647_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-pair-whole647-actual-independent-review-r151.json)、[residual_diagnostic](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-residual-diagnostic-actual-independent-review-r155.json)、[elevator_index_static](../../../artifacts/original-completion-2026-10-02/p23-02-elevator-connector-index-static-independent-review-r156.json)、[elevator_index_local](../../../artifacts/original-completion-2026-10-02/p23-02-elevator-connector-index-local-actual-independent-review-r160.json)、[elevator_index_impact](../../../artifacts/original-completion-2026-10-02/p23-02-elevator-index-existing-impact-actual-independent-review-r161.json)、[elevator_index_whole647_pair](../../../artifacts/original-completion-2026-10-02/p23-02-elevator-index-pair-whole647-actual-independent-review-r162.json)、[elevator_index_repeated_pair](../../../artifacts/original-completion-2026-10-02/p23-02-elevator-index-repeat-whole647-actual-independent-review-r164.json)、[budget_integer_window_static](../../../artifacts/original-completion-2026-10-02/p23-02-budget-integer-window-static-independent-review-r165.json)、[budget_integer_window_local](../../../artifacts/original-completion-2026-10-02/p23-02-budget-integer-window-local-actual-independent-review-r169.json)、[budget_integer_window_impact](../../../artifacts/original-completion-2026-10-02/p23-02-budget-integer-window-existing-impact-actual-independent-review-r171.json)、[budget_integer_window_pair](../../../artifacts/original-completion-2026-10-02/p23-02-budget-integer-window-pair-whole647-actual-independent-review-r172.json)、[residual_detail](../../../artifacts/original-completion-2026-10-02/p23-02-residual-detail-diagnostic-actual-independent-review-r174.json)、[input_structure](../../../artifacts/original-completion-2026-10-02/p23-02-residual-input-structure-independent-review-r175.json)、[host_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-facility-access-build-actual-independent-review-r181.json)、[local_equivalence](../../../artifacts/original-completion-2026-10-02/p23-02-native-facility-access-local-actual-independent-review-r183.json)、[host_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-build-actual-independent-review-r188.json)、[local_equivalence](../../../artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-local-actual-independent-review-r191.json)、[boundaries](../../../artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-boundaries-actual-independent-review-r195.json)、[whole_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-whole-pair-actual-independent-review-r196.json)、[repeat](../../../artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-repeat-actual-independent-review-r198.json)、[dependency](../../../artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-dependency-actual-independent-review-r200.json)、[impact](../../../artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-original-impact-actual-independent-review-r205.json)、[reconstruction_static](../../../artifacts/original-completion-2026-10-02/p23-02-native-path-reconstruction-static-independent-review-r204.json)、[reconstruction_host](../../../artifacts/original-completion-2026-10-02/p23-02-native-path-reconstruction-build-actual-independent-review-r206.json)、[reconstruction_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-actual-independent-review-r211.json)、[reconstruction_whole_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-whole-pair-actual-independent-review-r214.json)、[travel_ownership_static](../../../artifacts/original-completion-2026-10-02/p23-02-native-travel-ownership-static-independent-review-r216.json)、[travel_ownership_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-travel-ownership-build-actual-independent-review-r217.json)、[travel_ownership_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-travel-ownership-local-actual-independent-review-r220.json)、[travel_ownership_whole_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-travel-ownership-whole-pair-actual-independent-review-r222.json)、[tag_helpers_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-tag-helpers-local-actual-independent-review-r229.json)、[tag_helpers_whole_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-tag-helpers-whole-pair-actual-independent-review-r231.json)、[cache_key_static](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-key-static-independent-review-r233.json)、[cache_key_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-key-build-actual-independent-review-r234.json)、[cache_key_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-key-local-actual-independent-review-r235.json)、[cache_key_whole_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-cache-key-whole-pair-actual-independent-review-r236-r02.json)、[current233_diagnostic](../../../artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r238.json)、[local_names_static](../../../artifacts/original-completion-2026-10-02/p23-02-native-local-names-static-independent-review-r239.json)、[local_names_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-local-names-build-actual-independent-review-r240.json)、[local_names_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-local-names-local-actual-independent-review-r241.json)、[local_names_whole_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-local-names-whole-pair-actual-independent-review-r242.json)、[native_internal_static](../../../artifacts/original-completion-2026-10-02/p23-02-native-internal-diagnostic-static-independent-review-r244.json)、[native_internal_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-internal-diagnostic-build-actual-independent-review-r245-r02.json)、[native_internal_diagnostic](../../../artifacts/original-completion-2026-10-02/p23-02-native-internal-diagnostic-actual-independent-review-r246-r02.json)、[cached_path_static](../../../artifacts/original-completion-2026-10-02/p23-02-native-cached-path-summary-static-independent-review-r248-r02.json)、[cached_path_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-cached-path-summary-build-actual-independent-review-r249.json)、[cached_path_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-cached-path-summary-local-actual-independent-review-r250-r02.json)、[invalid_cache_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-invalid-cached-path-local-actual-independent-review-r251-r02.json)、[cached_path_whole_pair](../../../artifacts/original-completion-2026-10-02/p23-02-native-cached-path-whole-pair-actual-independent-review-r253-r02.json)、[budget_callback_diagnostic](../../../artifacts/original-completion-2026-10-02/p23-02-budget-callback-diagnostic-actual-independent-review-r255-r03.json)、[budget_native_static](../../../artifacts/original-completion-2026-10-02/p23-02-native-budget-record-static-independent-review-r257-r04.json)、[budget_native_build](../../../artifacts/original-completion-2026-10-02/p23-02-native-budget-record-build-actual-independent-review-r258-r02.json)、[budget_native_local](../../../artifacts/original-completion-2026-10-02/p23-02-native-budget-record-local-actual-independent-review-r260-r02.json)、[budget_native_impact_whole](../../../artifacts/original-completion-2026-10-02/p23-02-native-budget-impact-whole-actual-independent-review-r262.json)。証拠は各入力版・適用範囲に限定する。 diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312-review/README.md b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312-review/README.md new file mode 100644 index 0000000..a2265e9 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312-review/README.md @@ -0,0 +1,3 @@ +# r312 台帳・証拠保存の独立確認 + +独立レビューと125参照の再照合を内容保持して保存。性能、候補採用、P23-02の受入・正式完了を追加認定しない。 diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312-review/actual-root-verification.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312-review/actual-root-verification.json new file mode 100644 index 0000000..9929d90 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312-review/actual-root-verification.json @@ -0,0 +1,633 @@ +{ + "passed": true, + "review_sha256": "d1565ae022928797ff5d8ea17a422f69e571b55cb28ce498ba0a0272d022722d", + "verified_entries": [ + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/IMPLEMENTATION_PLAN.md", + "bytes": 492770, + "sha256": "1dd710cb48626884c5692d230c1ace21291a4107d0148a11f020b6b7bd9c127a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/IMPLEMENTATION_PLAN.md", + "bytes": 493994, + "sha256": "66be3f790b8ad802dbbf83ebe3374648d282df6b742d0962fbd7aff2507c9112" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/PROGRESS_INTEGRATION.md", + "bytes": 410834, + "sha256": "c30ce7db6dbe85ac16b551105f239f5657e97e0dca1b293993684b100668c5fa" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/PROGRESS_INTEGRATION.md", + "bytes": 412058, + "sha256": "f74196dbd2a88ce131975d2bea02a339a9077316327d2caa3c0add64460ec31f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/work_packages.json", + "bytes": 1198450, + "sha256": "66d0a29d003c7d6a055669df0f79412f3bed09263f540855951251f69609a169" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/work_packages.json", + "bytes": 1203655, + "sha256": "13b5c5dd54cede6de8ff797659a6f931926bb5c0195a2a2a3727f616d65a122c" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/progress_snapshot.json", + "bytes": 570488, + "sha256": "d7e746554b709b9d8408eee2550ee8a0b9bdb58975797c5cbd05467bdc59dc93" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/progress_snapshot.json", + "bytes": 576820, + "sha256": "dca289ae7560af4fa5c2da981cd6c760f37930672cc032dfb35c88a49f65a7ea" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/guest/guest_service.gd", + "bytes": 61414, + "sha256": "56880410e9a00816f9a95d30821982955532de8dd976980934e12016a9f2b21e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/guest/guest_definition.gd", + "bytes": 9374, + "sha256": "082aa3f33b9cb17daf10a2cf8a1dece7b79dd80c2ae21e1a424d1b2ceb52b918" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/guest/guest_runtime.gd", + "bytes": 14267, + "sha256": "57ba99e5d977b5302987f4359a19056f1ab09c8fb7e4762ee8d79cbb9316741a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/core/simulation_kernel.gd", + "bytes": 7602, + "sha256": "341c0c878c4894adbac628d0db6362ff69fc3347bdd9e61e50936e15dc2d1edb" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/traceability/original/BASELINE.txt", + "bytes": 23494, + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/execution.json", + "bytes": 12462, + "sha256": "c356c803ebe6320f3f4f9b034c2e796b309e8660151bda489a6a21313196386c" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json", + "bytes": 4566, + "sha256": "54e2e7aa9c6304b8d1ead5853eb78eafaad4cdeffb2dd3e4784643992a4d319f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json", + "bytes": 39941, + "sha256": "a38dae71afd2b5db0591ecca16b65abc3158f080460e9c0b09a265f339967d09" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json", + "bytes": 22991, + "sha256": "5373708a07d92323146615deb8663fa9b6e101e28df9821c4e5129312f63b57f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json", + "bytes": 70364, + "sha256": "41085a75190fdb67ba44ac7f6893d42c18ee797762d4b00e7eda546ed025c460" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd", + "bytes": 611530, + "sha256": "b4201726a735e9d979bd1ffae626ecd43ad2b76e4c7d1b51430884609bf2f4dc" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/guest/guest_service.gd", + "bytes": 61414, + "sha256": "56880410e9a00816f9a95d30821982955532de8dd976980934e12016a9f2b21e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp", + "bytes": 54002, + "sha256": "ce20a90adb8a410dc1b6cbf607b7bfa8bf21eaef158c5c6bfc7a9bbcc703d2b2" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + { + "path": "/private/tmp/thetree-integrate-current-residual-r312.py", + "bytes": 9289, + "sha256": "e2ee37570c2befa5e8fc766e27f5074b8a7a22e4a2b6e6e6e3c1b5786bf21e5d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r312.json", + "bytes": 73046, + "sha256": "f1f675e37f3782c2fadd1cc398528a2f517ecb69d386bcbfeae70f07b9801201" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/plan_validation.json", + "bytes": 8285, + "sha256": "469b94e0198a5605f148c34ce6db66e0757b8518ab0331223d0497a221bafea5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json", + "bytes": 39941, + "sha256": "a38dae71afd2b5db0591ecca16b65abc3158f080460e9c0b09a265f339967d09" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json", + "bytes": 25780, + "sha256": "eaadb3792770364bbf7245fb94c43e979c06c3b754f955f1a736e9ab81d2abc9" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json", + "bytes": 25780, + "sha256": "eaadb3792770364bbf7245fb94c43e979c06c3b754f955f1a736e9ab81d2abc9" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json", + "bytes": 23230, + "sha256": "75f9e4e4a4ea9286372ebf0f016e796067c9460e0815e0ef3e24988a702f04d5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json", + "bytes": 23230, + "sha256": "75f9e4e4a4ea9286372ebf0f016e796067c9460e0815e0ef3e24988a702f04d5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02.gd", + "bytes": 7578, + "sha256": "a544b96710d6dcc36528a6e2e08d872dda92590651d7ab60cb49372cfbc46b33" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.gd", + "bytes": 7578, + "sha256": "a544b96710d6dcc36528a6e2e08d872dda92590651d7ab60cb49372cfbc46b33" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02.py", + "bytes": 7321, + "sha256": "fb4dab44a00e7e375532a2c5395850c1324f75aca79ecb79fd6e06277988801a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.py", + "bytes": 7321, + "sha256": "fb4dab44a00e7e375532a2c5395850c1324f75aca79ecb79fd6e06277988801a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311.gd", + "bytes": 7611, + "sha256": "625e9cfb56464d6f2b2e08966d00d96bfb366062777caea509c7826599833278" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.gd", + "bytes": 7611, + "sha256": "625e9cfb56464d6f2b2e08966d00d96bfb366062777caea509c7826599833278" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311.py", + "bytes": 7313, + "sha256": "fda8480371c3041e5a583263259998132f7ec70b3f78f850bb32553db5bcaac3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.py", + "bytes": 7313, + "sha256": "fda8480371c3041e5a583263259998132f7ec70b3f78f850bb32553db5bcaac3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/guarded-r274.gd", + "bytes": 1435, + "sha256": "84c5aca653f1a19217890bc257545d8f5d7a299c9b22c59a677ecdc9b2905bb7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/guarded-r274.gd", + "bytes": 1435, + "sha256": "84c5aca653f1a19217890bc257545d8f5d7a299c9b22c59a677ecdc9b2905bb7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/input.json.gz", + "bytes": 228607, + "sha256": "48bdb586a380ed8a847711178040b8dc4ef303daaf740b5560f97ba7317c4419" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/input.json", + "bytes": 981463, + "sha256": "c32c2f748c6dd91a2d35b2fd747582cd235fbabe0d7417446b8d67d8fb2d6dd5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/instrumentation.json", + "bytes": 46887, + "sha256": "b34033d2bb7f23322c60becda562b22b0fe897bb822f891a910ce87590d134e2" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/instrumentation.json", + "bytes": 46887, + "sha256": "b34033d2bb7f23322c60becda562b22b0fe897bb822f891a910ce87590d134e2" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json", + "bytes": 22991, + "sha256": "5373708a07d92323146615deb8663fa9b6e101e28df9821c4e5129312f63b57f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/execution.json", + "bytes": 12462, + "sha256": "c356c803ebe6320f3f4f9b034c2e796b309e8660151bda489a6a21313196386c" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "bytes": 1439, + "sha256": "81c4abc24624a7f68642c5c4e27626f003762c4b52b47e9cb2c566a2e0599045" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "bytes": 1439, + "sha256": "81c4abc24624a7f68642c5c4e27626f003762c4b52b47e9cb2c566a2e0599045" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/input.json.gz", + "bytes": 228933, + "sha256": "1eb2aa1eb4064d9ef0cd10ac6eb6174662e0377e5b9f48fb5e1c9bd96292d7ea" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/input.json", + "bytes": 982794, + "sha256": "f1550159618411d9461c7ed8ab03e8066eaa5a9a7c683cc3982564a5ef261d16" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json", + "bytes": 4566, + "sha256": "54e2e7aa9c6304b8d1ead5853eb78eafaad4cdeffb2dd3e4784643992a4d319f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/preexecution-root-verification.json", + "bytes": 17075, + "sha256": "e31bab0f147236db1e6540751d19ca5029e75f8d03b3929042a9555d9191006f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/preexecution-root-verification.json", + "bytes": 17075, + "sha256": "e31bab0f147236db1e6540751d19ca5029e75f8d03b3929042a9555d9191006f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/adapter-owned-cleanup.json", + "bytes": 351, + "sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/adapter-owned-cleanup.json", + "bytes": 351, + "sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/ended.json", + "bytes": 1782, + "sha256": "772e2819688f9015ff251aba7a808eefc330515b057566af3792a19c76f3d71b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/ended.json", + "bytes": 1782, + "sha256": "772e2819688f9015ff251aba7a808eefc330515b057566af3792a19c76f3d71b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log", + "bytes": 13481, + "sha256": "abd5468739d8a5be58478e8793c7247dff293c239063d965f888bb0bb4aae112" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log", + "bytes": 13481, + "sha256": "abd5468739d8a5be58478e8793c7247dff293c239063d965f888bb0bb4aae112" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/outer-owned-finally.json", + "bytes": 964, + "sha256": "f7fa9a10130aacee3e6f801a2e1cb3a1bb5b6d91ffde88f1ea3b764e1dd347bb" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/outer-owned-finally.json", + "bytes": 964, + "sha256": "f7fa9a10130aacee3e6f801a2e1cb3a1bb5b6d91ffde88f1ea3b764e1dd347bb" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/process.json", + "bytes": 6691, + "sha256": "814b9eaeb258d34eda9d5d9e3b41b560dc4fe3dc1dc4bf12c6f8c49b0e7bde3b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/process.json", + "bytes": 6691, + "sha256": "814b9eaeb258d34eda9d5d9e3b41b560dc4fe3dc1dc4bf12c6f8c49b0e7bde3b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/started.json", + "bytes": 2407, + "sha256": "106918d386dc406070da3a4ef62923abda5f085adf0b3040a0c4b809b7ffda05" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/started.json", + "bytes": 2407, + "sha256": "106918d386dc406070da3a4ef62923abda5f085adf0b3040a0c4b809b7ffda05" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/stdout.log", + "bytes": 13631, + "sha256": "084f2763ea5568d13da47b7008824e18ad7251df7f5c0060b60bbafa75fb964a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/stdout.log", + "bytes": 13631, + "sha256": "084f2763ea5568d13da47b7008824e18ad7251df7f5c0060b60bbafa75fb964a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst", + "bytes": 246720, + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst", + "bytes": 246720, + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst", + "bytes": 819, + "sha256": "2f2335353deec30ffa934cb7fe2c1002f83ec50edcc325a87543dcd481915639" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst", + "bytes": 819, + "sha256": "2f2335353deec30ffa934cb7fe2c1002f83ec50edcc325a87543dcd481915639" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/report.json", + "bytes": 1962, + "sha256": "cc170c8dc21900560d12d703dc7035e38012936e64285f2f5a4bd5e96322a8b1" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/report.json", + "bytes": 1962, + "sha256": "cc170c8dc21900560d12d703dc7035e38012936e64285f2f5a4bd5e96322a8b1" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-phase.json", + "bytes": 8150, + "sha256": "4024cd99a6811f95e689125250358add350cea21e96d9cececdaa6f4b7d5c6dc" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-phase.json", + "bytes": 8150, + "sha256": "4024cd99a6811f95e689125250358add350cea21e96d9cececdaa6f4b7d5c6dc" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-profile.json", + "bytes": 907, + "sha256": "c338fd2e8eeb69746719c9a3f67a6cbd847b9667bdc139194e8a2d384cc09d10" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-profile.json", + "bytes": 907, + "sha256": "c338fd2e8eeb69746719c9a3f67a6cbd847b9667bdc139194e8a2d384cc09d10" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/IMPLEMENTATION_PLAN.md.gz", + "bytes": 144443, + "sha256": "eb64e642e121de1aa2ced105863b812112713d392cfa9add71e95d0ddf7b1563" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/PROGRESS_INTEGRATION.md.gz", + "bytes": 114314, + "sha256": "c59035a0e1e91b610ef0fc169e043a53da6603c87cb59b9dc8772a66fa15d57b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/progress_snapshot.json.gz", + "bytes": 105604, + "sha256": "127a61dc6ef5dec04684e6337f8f5047b4af2c329c77bff3af627ade06cef100" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/work_packages.json.gz", + "bytes": 207431, + "sha256": "efa63315cada3482034c66f2560fbf8159778868c52fd006d9074caa90a17c33" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/IMPLEMENTATION_PLAN.md.gz", + "bytes": 143934, + "sha256": "c28aac312fd1dca8e7a1637c073411f0999ffe64e0210d28619a0255d1f7f2d4" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/PROGRESS_INTEGRATION.md.gz", + "bytes": 113816, + "sha256": "c9aa88a672009783c7986bfab38fbc843ff7ba35ed5c99746e33595222a33149" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/progress_snapshot.json.gz", + "bytes": 104596, + "sha256": "be5a4fb6ca0b0902c2253c74b49c808b872908bbb72ceffb70ab2c0f624c9221" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/work_packages.json.gz", + "bytes": 206070, + "sha256": "483d0ea4846e107a483bc06bdbe32591a1950e93e3bb632ae0d9af1eb396221b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/input.json", + "bytes": 12371, + "sha256": "2e5eb38e1657cfc319fb1a012d06355caea9b6a0345022ceb688dd6a7ce27228" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/input.json", + "bytes": 12371, + "sha256": "2e5eb38e1657cfc319fb1a012d06355caea9b6a0345022ceb688dd6a7ce27228" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-r312/execution.json.gz", + "bytes": 98800, + "sha256": "5b1aeb2cdddc018f87089ad9b8fa33038e1c017b6c1db82d51bef9559a4ef380" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-r312/execution.json", + "bytes": 535261, + "sha256": "2e0b46ef39ee2731d2efcf78fb6ab327140d23a9ca486697ee4273f71198209b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-r312/plan_validation.json", + "bytes": 8285, + "sha256": "056afc7d222a1ad4f6b7d3b550da6f4c84edcdfd2114767ec95758c4815e4f83" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-r312/plan_validation.json", + "bytes": 8285, + "sha256": "056afc7d222a1ad4f6b7d3b550da6f4c84edcdfd2114767ec95758c4815e4f83" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-progress-disposition-r312.json", + "bytes": 73046, + "sha256": "f1f675e37f3782c2fadd1cc398528a2f517ecb69d386bcbfeae70f07b9801201" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-guest-bulk-work-contract-r312.json", + "bytes": 12808, + "sha256": "b87217f716422e0ed845bc9f7d37d1b06656c79d85a5c1f603ffa704172d1c0c" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-bulk-work-contract-r312.json", + "bytes": 12808, + "sha256": "b87217f716422e0ed845bc9f7d37d1b06656c79d85a5c1f603ffa704172d1c0c" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-prepare-current-residual-r311.py", + "bytes": 9212, + "sha256": "a5f24807c541753294896efb7f5d973d4d9176efc668bfd81810aa1391d54c9d" + }, + { + "path": "/private/tmp/thetree-prepare-current-residual-r311.py", + "bytes": 9212, + "sha256": "a5f24807c541753294896efb7f5d973d4d9176efc668bfd81810aa1391d54c9d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-prepare-current-residual-r311-r02.py", + "bytes": 3005, + "sha256": "fb48f0edd617f8f31ae0784585755ece6c902850ba7205665d94d53df34ee3b8" + }, + { + "path": "/private/tmp/thetree-prepare-current-residual-r311-r02.py", + "bytes": 3005, + "sha256": "fb48f0edd617f8f31ae0784585755ece6c902850ba7205665d94d53df34ee3b8" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-select-guest-bulk-r312.py", + "bytes": 6199, + "sha256": "ece4b3b5ebc81cc29617ebb5745e6b91c0c8a405f1430efededab3677cd08184" + }, + { + "path": "/private/tmp/thetree-select-guest-bulk-r312.py", + "bytes": 6199, + "sha256": "ece4b3b5ebc81cc29617ebb5745e6b91c0c8a405f1430efededab3677cd08184" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-integrate-current-residual-r312.py", + "bytes": 9289, + "sha256": "e2ee37570c2befa5e8fc766e27f5074b8a7a22e4a2b6e6e6e3c1b5786bf21e5d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/autoload/simulation_runtime.gd.gz", + "bytes": 121962, + "sha256": "b4d8b7ff9e5971397e3bd2013b20ea7c763e4f13eb6613abd54278449f2c649b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/autoload/simulation_runtime.gd", + "bytes": 619011, + "sha256": "3da67f9c2c446ac9f4e26725cd48f9694cd0973646330f6bccc9e4aacfca64cd" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/core/performance_budget.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/performance_budget.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/core/simulation_kernel.gd", + "bytes": 8282, + "sha256": "5d578d7b845522388bd48a4a6e0c3a60e628498ec2da6aba722d8c6e2fc40a20" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/simulation_kernel.gd", + "bytes": 8282, + "sha256": "5d578d7b845522388bd48a4a6e0c3a60e628498ec2da6aba722d8c6e2fc40a20" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/guest/guest_service.gd", + "bytes": 63573, + "sha256": "39986d98720d37dfd8c437b7043848df3b14120b307e99fef877428abd26b07d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/guest/guest_service.gd", + "bytes": 63573, + "sha256": "39986d98720d37dfd8c437b7043848df3b14120b307e99fef877428abd26b07d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/world/path_service.gd.gz", + "bytes": 27831, + "sha256": "0ba0c71c2ab3b5fa03d9beb9cf1e325836e871c5faba9d0ffb3e3ab0e93f498a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/world/path_service.gd", + "bytes": 139394, + "sha256": "c96dc7b3ae6ed7107d410631e9d7501c5e25d0c4696a76d621e6bcd7ff2f7a97" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/README.md", + "bytes": 2865, + "sha256": "397d24a723ed987abc020cbc3b005c86e3226f33c43a51eb0412caa1365af64b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/manifest.json", + "bytes": 31932, + "sha256": "edb0f446783e9f10b421b07fd978bc9860f1024199d240f299ffd7fdbb77bcf1" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/.gdignore", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 493994, + "sha256": "66be3f790b8ad802dbbf83ebe3374648d282df6b742d0962fbd7aff2507c9112" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 412058, + "sha256": "f74196dbd2a88ce131975d2bea02a339a9077316327d2caa3c0add64460ec31f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1203655, + "sha256": "13b5c5dd54cede6de8ff797659a6f931926bb5c0195a2a2a3727f616d65a122c" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 576820, + "sha256": "dca289ae7560af4fa5c2da981cd6c760f37930672cc032dfb35c88a49f65a7ea" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/IMPLEMENTATION_PLAN.md", + "bytes": 492770, + "sha256": "1dd710cb48626884c5692d230c1ace21291a4107d0148a11f020b6b7bd9c127a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/PROGRESS_INTEGRATION.md", + "bytes": 410834, + "sha256": "c30ce7db6dbe85ac16b551105f239f5657e97e0dca1b293993684b100668c5fa" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/work_packages.json", + "bytes": 1198450, + "sha256": "66d0a29d003c7d6a055669df0f79412f3bed09263f540855951251f69609a169" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/progress_snapshot.json", + "bytes": 570488, + "sha256": "d7e746554b709b9d8408eee2550ee8a0b9bdb58975797c5cbd05467bdc59dc93" + } + ], + "unit_accepted": false, + "performance_accepted": false +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312-review/manifest.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312-review/manifest.json new file mode 100644 index 0000000..d0d491c --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312-review/manifest.json @@ -0,0 +1,20 @@ +{ + "schema": 1, + "unit": "P23-02", + "status": "metadata_checkpoint_review_only", + "formal_completion_added": 0, + "entries": [ + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-actual-independent-review-r312.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312-review/p23-02-progress-integration-actual-independent-review-r312.json", + "bytes": 63618, + "sha256": "d1565ae022928797ff5d8ea17a422f69e571b55cb28ce498ba0a0272d022722d" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-r312/actual-root-verification.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312-review/actual-root-verification.json", + "bytes": 39809, + "sha256": "8dc622b5b3b896184fa9fb47505053addeb0ce52bc586453de8b7b51a3d158a5" + } + ] +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312-review/p23-02-progress-integration-actual-independent-review-r312.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312-review/p23-02-progress-integration-actual-independent-review-r312.json new file mode 100644 index 0000000..90b1efc --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312-review/p23-02-progress-integration-actual-independent-review-r312.json @@ -0,0 +1,685 @@ +{ + "metadata_integration_accepted": true, + "post_application_accepted": true, + "checkpoint_accepted": true, + "commit_supported": true, + "blockers": [], + "verified": { + "canonical_after_exact": true, + "archival_before": "r310", + "other_packages_unchanged": 29, + "other_units_unchanged": 87, + "packages": 30, + "units": 88, + "formal_states": { + "completed": 9, + "in_progress": 19, + "planned": 60 + }, + "formal_added": 0, + "original_conditions_unaccepted": 17, + "Windows_only_blocked": [ + "C08", + "X8" + ], + "manual_deferred_not_waived": true, + "production": "r32", + "native_parent": "r274/library275 retained", + "ready_route": "r302/library303 unadopted and selection held", + "Guest_contract_unimplemented_unselected_unadopted": true, + "source_default_historical_validator_preserved": true, + "saved_validator_checks": 49, + "saved_validator_failures": 0, + "checkpoint_copies": 51, + "checkpoint_gzip": 13, + "checkpoint_stored_bytes": 2587155, + "checkpoint_all_raw_equal_sources": true, + "checkpoint_no_missing_or_extra": true, + "gdignore_empty": true, + "original_D4_inverse_verified": true + }, + "limitations": [ + "Metadata and preservation only; Guest bulk contract is not implemented or performance accepted.", + "r311 is one instrumented nested inclusive observation; no CPU attribution, percentages, causal proof, uninstrumented comparison or stable gain.", + "Original17/final172/50ms/P95/D10/normalOS/x3/exit/small screen/same Windows device/manual acceptance remain unaccepted.", + "Checkpoint uses versioned dependency pins; engine/SDK/library/119MBstage not standalone bundled." + ], + "reviewer_runs": { + "engine": 0, + "compiler": 0, + "tests": 0, + "validator": 0, + "author": 0 + }, + "evidence_sha256": { + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/IMPLEMENTATION_PLAN.md", + "bytes": 492770, + "sha256": "1dd710cb48626884c5692d230c1ace21291a4107d0148a11f020b6b7bd9c127a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/IMPLEMENTATION_PLAN.md", + "bytes": 493994, + "sha256": "66be3f790b8ad802dbbf83ebe3374648d282df6b742d0962fbd7aff2507c9112" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/PROGRESS_INTEGRATION.md", + "bytes": 410834, + "sha256": "c30ce7db6dbe85ac16b551105f239f5657e97e0dca1b293993684b100668c5fa" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/PROGRESS_INTEGRATION.md", + "bytes": 412058, + "sha256": "f74196dbd2a88ce131975d2bea02a339a9077316327d2caa3c0add64460ec31f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/work_packages.json", + "bytes": 1198450, + "sha256": "66d0a29d003c7d6a055669df0f79412f3bed09263f540855951251f69609a169" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/work_packages.json", + "bytes": 1203655, + "sha256": "13b5c5dd54cede6de8ff797659a6f931926bb5c0195a2a2a3727f616d65a122c" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/progress_snapshot.json", + "bytes": 570488, + "sha256": "d7e746554b709b9d8408eee2550ee8a0b9bdb58975797c5cbd05467bdc59dc93" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/progress_snapshot.json", + "bytes": 576820, + "sha256": "dca289ae7560af4fa5c2da981cd6c760f37930672cc032dfb35c88a49f65a7ea" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/guest/guest_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/guest/guest_service.gd", + "bytes": 61414, + "sha256": "56880410e9a00816f9a95d30821982955532de8dd976980934e12016a9f2b21e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/guest/guest_definition.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/guest/guest_definition.gd", + "bytes": 9374, + "sha256": "082aa3f33b9cb17daf10a2cf8a1dece7b79dd80c2ae21e1a424d1b2ceb52b918" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/guest/guest_runtime.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/guest/guest_runtime.gd", + "bytes": 14267, + "sha256": "57ba99e5d977b5302987f4359a19056f1ab09c8fb7e4762ee8d79cbb9316741a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/core/simulation_kernel.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/core/simulation_kernel.gd", + "bytes": 7602, + "sha256": "341c0c878c4894adbac628d0db6362ff69fc3347bdd9e61e50936e15dc2d1edb" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/traceability/original/BASELINE.txt": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/traceability/original/BASELINE.txt", + "bytes": 23494, + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/execution.json", + "bytes": 12462, + "sha256": "c356c803ebe6320f3f4f9b034c2e796b309e8660151bda489a6a21313196386c" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json", + "bytes": 4566, + "sha256": "54e2e7aa9c6304b8d1ead5853eb78eafaad4cdeffb2dd3e4784643992a4d319f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json", + "bytes": 39941, + "sha256": "a38dae71afd2b5db0591ecca16b65abc3158f080460e9c0b09a265f339967d09" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json", + "bytes": 22991, + "sha256": "5373708a07d92323146615deb8663fa9b6e101e28df9821c4e5129312f63b57f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json", + "bytes": 70364, + "sha256": "41085a75190fdb67ba44ac7f6893d42c18ee797762d4b00e7eda546ed025c460" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd", + "bytes": 611530, + "sha256": "b4201726a735e9d979bd1ffae626ecd43ad2b76e4c7d1b51430884609bf2f4dc" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/guest/guest_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/guest/guest_service.gd", + "bytes": 61414, + "sha256": "56880410e9a00816f9a95d30821982955532de8dd976980934e12016a9f2b21e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp", + "bytes": 54002, + "sha256": "ce20a90adb8a410dc1b6cbf607b7bfa8bf21eaef158c5c6bfc7a9bbcc703d2b2" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_core.hpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + "/private/tmp/thetree-integrate-current-residual-r312.py": { + "path": "/private/tmp/thetree-integrate-current-residual-r312.py", + "bytes": 9289, + "sha256": "e2ee37570c2befa5e8fc766e27f5074b8a7a22e4a2b6e6e6e3c1b5786bf21e5d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r312.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r312.json", + "bytes": 73046, + "sha256": "f1f675e37f3782c2fadd1cc398528a2f517ecb69d386bcbfeae70f07b9801201" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/plan_validation.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/plan_validation.json", + "bytes": 8285, + "sha256": "469b94e0198a5605f148c34ce6db66e0757b8518ab0331223d0497a221bafea5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json", + "bytes": 39941, + "sha256": "a38dae71afd2b5db0591ecca16b65abc3158f080460e9c0b09a265f339967d09" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json", + "bytes": 25780, + "sha256": "eaadb3792770364bbf7245fb94c43e979c06c3b754f955f1a736e9ab81d2abc9" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json", + "bytes": 25780, + "sha256": "eaadb3792770364bbf7245fb94c43e979c06c3b754f955f1a736e9ab81d2abc9" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json", + "bytes": 23230, + "sha256": "75f9e4e4a4ea9286372ebf0f016e796067c9460e0815e0ef3e24988a702f04d5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json", + "bytes": 23230, + "sha256": "75f9e4e4a4ea9286372ebf0f016e796067c9460e0815e0ef3e24988a702f04d5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02.gd", + "bytes": 7578, + "sha256": "a544b96710d6dcc36528a6e2e08d872dda92590651d7ab60cb49372cfbc46b33" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.gd", + "bytes": 7578, + "sha256": "a544b96710d6dcc36528a6e2e08d872dda92590651d7ab60cb49372cfbc46b33" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02.py", + "bytes": 7321, + "sha256": "fb4dab44a00e7e375532a2c5395850c1324f75aca79ecb79fd6e06277988801a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.py", + "bytes": 7321, + "sha256": "fb4dab44a00e7e375532a2c5395850c1324f75aca79ecb79fd6e06277988801a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311.gd", + "bytes": 7611, + "sha256": "625e9cfb56464d6f2b2e08966d00d96bfb366062777caea509c7826599833278" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.gd", + "bytes": 7611, + "sha256": "625e9cfb56464d6f2b2e08966d00d96bfb366062777caea509c7826599833278" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311.py", + "bytes": 7313, + "sha256": "fda8480371c3041e5a583263259998132f7ec70b3f78f850bb32553db5bcaac3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.py", + "bytes": 7313, + "sha256": "fda8480371c3041e5a583263259998132f7ec70b3f78f850bb32553db5bcaac3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/guarded-r274.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/guarded-r274.gd", + "bytes": 1435, + "sha256": "84c5aca653f1a19217890bc257545d8f5d7a299c9b22c59a677ecdc9b2905bb7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/guarded-r274.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/guarded-r274.gd", + "bytes": 1435, + "sha256": "84c5aca653f1a19217890bc257545d8f5d7a299c9b22c59a677ecdc9b2905bb7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/input.json.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/input.json.gz", + "bytes": 228607, + "sha256": "48bdb586a380ed8a847711178040b8dc4ef303daaf740b5560f97ba7317c4419" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/input.json", + "bytes": 981463, + "sha256": "c32c2f748c6dd91a2d35b2fd747582cd235fbabe0d7417446b8d67d8fb2d6dd5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/instrumentation.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/instrumentation.json", + "bytes": 46887, + "sha256": "b34033d2bb7f23322c60becda562b22b0fe897bb822f891a910ce87590d134e2" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/instrumentation.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/instrumentation.json", + "bytes": 46887, + "sha256": "b34033d2bb7f23322c60becda562b22b0fe897bb822f891a910ce87590d134e2" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json", + "bytes": 22991, + "sha256": "5373708a07d92323146615deb8663fa9b6e101e28df9821c4e5129312f63b57f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/execution.json", + "bytes": 12462, + "sha256": "c356c803ebe6320f3f4f9b034c2e796b309e8660151bda489a6a21313196386c" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "bytes": 1439, + "sha256": "81c4abc24624a7f68642c5c4e27626f003762c4b52b47e9cb2c566a2e0599045" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "bytes": 1439, + "sha256": "81c4abc24624a7f68642c5c4e27626f003762c4b52b47e9cb2c566a2e0599045" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/input.json.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/input.json.gz", + "bytes": 228933, + "sha256": "1eb2aa1eb4064d9ef0cd10ac6eb6174662e0377e5b9f48fb5e1c9bd96292d7ea" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/input.json", + "bytes": 982794, + "sha256": "f1550159618411d9461c7ed8ab03e8066eaa5a9a7c683cc3982564a5ef261d16" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json", + "bytes": 4566, + "sha256": "54e2e7aa9c6304b8d1ead5853eb78eafaad4cdeffb2dd3e4784643992a4d319f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/preexecution-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/preexecution-root-verification.json", + "bytes": 17075, + "sha256": "e31bab0f147236db1e6540751d19ca5029e75f8d03b3929042a9555d9191006f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/preexecution-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/preexecution-root-verification.json", + "bytes": 17075, + "sha256": "e31bab0f147236db1e6540751d19ca5029e75f8d03b3929042a9555d9191006f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/adapter-owned-cleanup.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/adapter-owned-cleanup.json", + "bytes": 351, + "sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/adapter-owned-cleanup.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/adapter-owned-cleanup.json", + "bytes": 351, + "sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/ended.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/ended.json", + "bytes": 1782, + "sha256": "772e2819688f9015ff251aba7a808eefc330515b057566af3792a19c76f3d71b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/ended.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/ended.json", + "bytes": 1782, + "sha256": "772e2819688f9015ff251aba7a808eefc330515b057566af3792a19c76f3d71b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log", + "bytes": 13481, + "sha256": "abd5468739d8a5be58478e8793c7247dff293c239063d965f888bb0bb4aae112" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log", + "bytes": 13481, + "sha256": "abd5468739d8a5be58478e8793c7247dff293c239063d965f888bb0bb4aae112" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/outer-owned-finally.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/outer-owned-finally.json", + "bytes": 964, + "sha256": "f7fa9a10130aacee3e6f801a2e1cb3a1bb5b6d91ffde88f1ea3b764e1dd347bb" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/outer-owned-finally.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/outer-owned-finally.json", + "bytes": 964, + "sha256": "f7fa9a10130aacee3e6f801a2e1cb3a1bb5b6d91ffde88f1ea3b764e1dd347bb" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/process.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/process.json", + "bytes": 6691, + "sha256": "814b9eaeb258d34eda9d5d9e3b41b560dc4fe3dc1dc4bf12c6f8c49b0e7bde3b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/process.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/process.json", + "bytes": 6691, + "sha256": "814b9eaeb258d34eda9d5d9e3b41b560dc4fe3dc1dc4bf12c6f8c49b0e7bde3b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/started.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/started.json", + "bytes": 2407, + "sha256": "106918d386dc406070da3a4ef62923abda5f085adf0b3040a0c4b809b7ffda05" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/started.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/started.json", + "bytes": 2407, + "sha256": "106918d386dc406070da3a4ef62923abda5f085adf0b3040a0c4b809b7ffda05" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/stderr.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/stderr.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/stdout.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/stdout.log", + "bytes": 13631, + "sha256": "084f2763ea5568d13da47b7008824e18ad7251df7f5c0060b60bbafa75fb964a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/stdout.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/stdout.log", + "bytes": 13631, + "sha256": "084f2763ea5568d13da47b7008824e18ad7251df7f5c0060b60bbafa75fb964a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst", + "bytes": 246720, + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst", + "bytes": 246720, + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst", + "bytes": 819, + "sha256": "2f2335353deec30ffa934cb7fe2c1002f83ec50edcc325a87543dcd481915639" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst", + "bytes": 819, + "sha256": "2f2335353deec30ffa934cb7fe2c1002f83ec50edcc325a87543dcd481915639" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/report.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/report.json", + "bytes": 1962, + "sha256": "cc170c8dc21900560d12d703dc7035e38012936e64285f2f5a4bd5e96322a8b1" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/report.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/report.json", + "bytes": 1962, + "sha256": "cc170c8dc21900560d12d703dc7035e38012936e64285f2f5a4bd5e96322a8b1" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-phase.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-phase.json", + "bytes": 8150, + "sha256": "4024cd99a6811f95e689125250358add350cea21e96d9cececdaa6f4b7d5c6dc" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-phase.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-phase.json", + "bytes": 8150, + "sha256": "4024cd99a6811f95e689125250358add350cea21e96d9cececdaa6f4b7d5c6dc" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-profile.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-profile.json", + "bytes": 907, + "sha256": "c338fd2e8eeb69746719c9a3f67a6cbd847b9667bdc139194e8a2d384cc09d10" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-profile.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-profile.json", + "bytes": 907, + "sha256": "c338fd2e8eeb69746719c9a3f67a6cbd847b9667bdc139194e8a2d384cc09d10" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/IMPLEMENTATION_PLAN.md.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/IMPLEMENTATION_PLAN.md.gz", + "bytes": 144443, + "sha256": "eb64e642e121de1aa2ced105863b812112713d392cfa9add71e95d0ddf7b1563" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/PROGRESS_INTEGRATION.md.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/PROGRESS_INTEGRATION.md.gz", + "bytes": 114314, + "sha256": "c59035a0e1e91b610ef0fc169e043a53da6603c87cb59b9dc8772a66fa15d57b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/progress_snapshot.json.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/progress_snapshot.json.gz", + "bytes": 105604, + "sha256": "127a61dc6ef5dec04684e6337f8f5047b4af2c329c77bff3af627ade06cef100" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/work_packages.json.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/work_packages.json.gz", + "bytes": 207431, + "sha256": "efa63315cada3482034c66f2560fbf8159778868c52fd006d9074caa90a17c33" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/IMPLEMENTATION_PLAN.md.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/IMPLEMENTATION_PLAN.md.gz", + "bytes": 143934, + "sha256": "c28aac312fd1dca8e7a1637c073411f0999ffe64e0210d28619a0255d1f7f2d4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/PROGRESS_INTEGRATION.md.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/PROGRESS_INTEGRATION.md.gz", + "bytes": 113816, + "sha256": "c9aa88a672009783c7986bfab38fbc843ff7ba35ed5c99746e33595222a33149" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/progress_snapshot.json.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/progress_snapshot.json.gz", + "bytes": 104596, + "sha256": "be5a4fb6ca0b0902c2253c74b49c808b872908bbb72ceffb70ab2c0f624c9221" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/work_packages.json.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/work_packages.json.gz", + "bytes": 206070, + "sha256": "483d0ea4846e107a483bc06bdbe32591a1950e93e3bb632ae0d9af1eb396221b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/input.json", + "bytes": 12371, + "sha256": "2e5eb38e1657cfc319fb1a012d06355caea9b6a0345022ceb688dd6a7ce27228" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/input.json", + "bytes": 12371, + "sha256": "2e5eb38e1657cfc319fb1a012d06355caea9b6a0345022ceb688dd6a7ce27228" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-r312/execution.json.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-r312/execution.json.gz", + "bytes": 98800, + "sha256": "5b1aeb2cdddc018f87089ad9b8fa33038e1c017b6c1db82d51bef9559a4ef380" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-r312/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-r312/execution.json", + "bytes": 535261, + "sha256": "2e0b46ef39ee2731d2efcf78fb6ab327140d23a9ca486697ee4273f71198209b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-r312/plan_validation.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-r312/plan_validation.json", + "bytes": 8285, + "sha256": "056afc7d222a1ad4f6b7d3b550da6f4c84edcdfd2114767ec95758c4815e4f83" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-r312/plan_validation.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-r312/plan_validation.json", + "bytes": 8285, + "sha256": "056afc7d222a1ad4f6b7d3b550da6f4c84edcdfd2114767ec95758c4815e4f83" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-progress-disposition-r312.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-progress-disposition-r312.json", + "bytes": 73046, + "sha256": "f1f675e37f3782c2fadd1cc398528a2f517ecb69d386bcbfeae70f07b9801201" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-guest-bulk-work-contract-r312.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-guest-bulk-work-contract-r312.json", + "bytes": 12808, + "sha256": "b87217f716422e0ed845bc9f7d37d1b06656c79d85a5c1f603ffa704172d1c0c" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-bulk-work-contract-r312.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-bulk-work-contract-r312.json", + "bytes": 12808, + "sha256": "b87217f716422e0ed845bc9f7d37d1b06656c79d85a5c1f603ffa704172d1c0c" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-prepare-current-residual-r311.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-prepare-current-residual-r311.py", + "bytes": 9212, + "sha256": "a5f24807c541753294896efb7f5d973d4d9176efc668bfd81810aa1391d54c9d" + }, + "/private/tmp/thetree-prepare-current-residual-r311.py": { + "path": "/private/tmp/thetree-prepare-current-residual-r311.py", + "bytes": 9212, + "sha256": "a5f24807c541753294896efb7f5d973d4d9176efc668bfd81810aa1391d54c9d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-prepare-current-residual-r311-r02.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-prepare-current-residual-r311-r02.py", + "bytes": 3005, + "sha256": "fb48f0edd617f8f31ae0784585755ece6c902850ba7205665d94d53df34ee3b8" + }, + "/private/tmp/thetree-prepare-current-residual-r311-r02.py": { + "path": "/private/tmp/thetree-prepare-current-residual-r311-r02.py", + "bytes": 3005, + "sha256": "fb48f0edd617f8f31ae0784585755ece6c902850ba7205665d94d53df34ee3b8" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-select-guest-bulk-r312.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-select-guest-bulk-r312.py", + "bytes": 6199, + "sha256": "ece4b3b5ebc81cc29617ebb5745e6b91c0c8a405f1430efededab3677cd08184" + }, + "/private/tmp/thetree-select-guest-bulk-r312.py": { + "path": "/private/tmp/thetree-select-guest-bulk-r312.py", + "bytes": 6199, + "sha256": "ece4b3b5ebc81cc29617ebb5745e6b91c0c8a405f1430efededab3677cd08184" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-integrate-current-residual-r312.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-integrate-current-residual-r312.py", + "bytes": 9289, + "sha256": "e2ee37570c2befa5e8fc766e27f5074b8a7a22e4a2b6e6e6e3c1b5786bf21e5d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/autoload/simulation_runtime.gd.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/autoload/simulation_runtime.gd.gz", + "bytes": 121962, + "sha256": "b4d8b7ff9e5971397e3bd2013b20ea7c763e4f13eb6613abd54278449f2c649b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/autoload/simulation_runtime.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/autoload/simulation_runtime.gd", + "bytes": 619011, + "sha256": "3da67f9c2c446ac9f4e26725cd48f9694cd0973646330f6bccc9e4aacfca64cd" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/core/performance_budget.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/core/performance_budget.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/performance_budget.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/performance_budget.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/core/simulation_kernel.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/core/simulation_kernel.gd", + "bytes": 8282, + "sha256": "5d578d7b845522388bd48a4a6e0c3a60e628498ec2da6aba722d8c6e2fc40a20" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/simulation_kernel.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/simulation_kernel.gd", + "bytes": 8282, + "sha256": "5d578d7b845522388bd48a4a6e0c3a60e628498ec2da6aba722d8c6e2fc40a20" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/guest/guest_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/guest/guest_service.gd", + "bytes": 63573, + "sha256": "39986d98720d37dfd8c437b7043848df3b14120b307e99fef877428abd26b07d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/guest/guest_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/guest/guest_service.gd", + "bytes": 63573, + "sha256": "39986d98720d37dfd8c437b7043848df3b14120b307e99fef877428abd26b07d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/world/path_service.gd.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/world/path_service.gd.gz", + "bytes": 27831, + "sha256": "0ba0c71c2ab3b5fa03d9beb9cf1e325836e871c5faba9d0ffb3e3ab0e93f498a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/world/path_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/world/path_service.gd", + "bytes": 139394, + "sha256": "c96dc7b3ae6ed7107d410631e9d7501c5e25d0c4696a76d621e6bcd7ff2f7a97" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/README.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/README.md", + "bytes": 2865, + "sha256": "397d24a723ed987abc020cbc3b005c86e3226f33c43a51eb0412caa1365af64b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/manifest.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/manifest.json", + "bytes": 31932, + "sha256": "edb0f446783e9f10b421b07fd978bc9860f1024199d240f299ffd7fdbb77bcf1" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/.gdignore": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/.gdignore", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + "canonical_doc4_context_pins": { + "IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 493994, + "sha256": "66be3f790b8ad802dbbf83ebe3374648d282df6b742d0962fbd7aff2507c9112" + }, + "PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 412058, + "sha256": "f74196dbd2a88ce131975d2bea02a339a9077316327d2caa3c0add64460ec31f" + }, + "work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1203655, + "sha256": "13b5c5dd54cede6de8ff797659a6f931926bb5c0195a2a2a3727f616d65a122c" + }, + "progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 576820, + "sha256": "dca289ae7560af4fa5c2da981cd6c760f37930672cc032dfb35c88a49f65a7ea" + } + }, + "archival_before_pins": { + "IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/IMPLEMENTATION_PLAN.md", + "bytes": 492770, + "sha256": "1dd710cb48626884c5692d230c1ace21291a4107d0148a11f020b6b7bd9c127a" + }, + "PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/PROGRESS_INTEGRATION.md", + "bytes": 410834, + "sha256": "c30ce7db6dbe85ac16b551105f239f5657e97e0dca1b293993684b100668c5fa" + }, + "work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/work_packages.json", + "bytes": 1198450, + "sha256": "66d0a29d003c7d6a055669df0f79412f3bed09263f540855951251f69609a169" + }, + "progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/progress_snapshot.json", + "bytes": 570488, + "sha256": "d7e746554b709b9d8408eee2550ee8a0b9bdb58975797c5cbd05467bdc59dc93" + } + } +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/README.md b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/README.md new file mode 100644 index 0000000..d06751f --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/README.md @@ -0,0 +1,13 @@ +# P23-02 current native residual r311-r02 / work contract and integration r312 + +現実装親274/library275の1回の帰属診断。旧239/240の包含比率を現在版へ転用せず、保持版と同じBudget257・代表セーブ・library/configを再使用した。隔離APFS reflink clone1(論理約119MB)に、4script/24原本体を署名rename+wrapperで完全保持、Budgetは既存257 sourceそのまま。原r311はmetrics freezeの二重fieldで実行前拒否し、原版を保持。r02はその1式とdriver/starter namespaceだけ修復し、同じ隔離stageを再使用。追加clone/build/librarycopy0、旧局所/whole比較/全回帰の重複0。 + +PID84968・18/0・normal exit0・strict3logs/private5/foreignsignals0・所有終了とproject復元、source/default/current310D4/SUPPORT/親隔離stage各1299保護を独立有限受理。after647は原oracle11487732bytes/SHA9df3c1b6f65dfd8be944cd5cab8c631f7533530dfef3820d9fa5d74a5b1ac30fへ全文一致。同packed/rawの既存754415 partitions証拠を適用し再decodeを避けた。metrics3896bytesは281 partitions全往復・34宣言行一致。 + +計測付きtick1268510us、AI979790us、projection50/656139us、Guest extract50/95575us、rank50/124620us、evaluate5000/106351us、publish1/76851usは包含観測のみ。evaluateはrank内。値の加算/差引で純CPU・割合・原因を認定せず、無計測版との速度比較・50ms/P95/D10も認定しない。zeroは該当script wrapper未到達だけでnative仕事/費用0ではない。 + +次の関連変更は既存native投影に続くGuest候補抽出・評価・順位付けの一括純処理。r298正規化や小price/key/copy候補を再起動しない。契約は原helper・拒否順・符号整数・原重み/閾値・型/順序/コピー所有・callback/状態遷移・ログ/last_errorを保持する。unsupported前無変更の元全処理fallback、全最終検証を維持する。制作32とnative組立274/275を区別しGuest元bytes同一を確認。新Guest候補は未実装、利益未証明、制作採用0。 + +r312台帳validator49/0、正式完了追加0。30packages/88成果・正式9/着手19/予定60・部分点なし。原17全未受入、Windows C08/X8だけblocked、手動Ctrl保持wheel/左保持drag延期・免除なし。303未採用/選定保留、実装親274/library275保持。同期停止・最終172・通常OS/x3/終了/小画面・同一Windows配布版実機受入は残る。 + +原全bytes/size/SHAをmanifestへ固定。大きなJSON/Markdown/GDScriptはgzip保存後の復元全文一致を確認。5変更scriptのみ保存し、SDK/engine/library/全119MB stageを重複保存しない。既存原本/依存の版付きpinsを再利用するcheckpointで、単独実行配布物ではない。親 .gdignore 保持、仕様値・資産・制作ソース変更0。 diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-integrate-current-residual-r312.py b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-integrate-current-residual-r312.py new file mode 100644 index 0000000..b016c13 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-integrate-current-residual-r312.py @@ -0,0 +1,55 @@ +# coding: utf-8 +from pathlib import Path +import collections,contextlib,datetime,importlib.util,io,runpy,shutil,sys +sys.dont_write_bytecode=True +R=Path('/Users/korizatou114/Projects/とりにく工房ゲーム制作部');A=R/'artifacts/original-completion-2026-10-02';D=R/'docs/plans/original-completion-2026-10-02';C=A/'p23-02-progress-integration-candidate-r312';O=A/'p23-02-progress-integration-r312';names=['IMPLEMENTATION_PLAN.md','PROGRESS_INTEGRATION.md','work_packages.json','progress_snapshot.json'] +s=importlib.util.spec_from_file_location('int310',R/'tools/run_all_tests.py');r=importlib.util.module_from_spec(s);s.loader.exec_module(r) +def pin(p):return dict(path=str(p),bytes=p.stat().st_size,sha256=r.sha(p)) +review=A/'p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json';root=A/'p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json' +v=r.read(review);assert not v['blockers'] and v['finite_instrumented_whole_equivalence_accepted'] and v['finite_diagnostic_accepted'] and v['finite_exit_observation_accepted'];assert r.read(root)['passed'] and r.read(root)['review_sha256']==r.sha(review) +e=r.read(A/'p23-02-current-residual-diagnostic-r311-r02/execution.json');assert e['passed'] and len(e['samples'])==1 and e['samples'][0]['checks']==18 +contract=A/'p23-02-guest-bulk-work-contract-r312.json';assert r.read(contract)['candidate_implemented'] is False +assert not C.exists() and not O.exists();source=r.source_refs(R);player=r.default_player(R);historical=r.sha(D/'plan_validation.json');C.mkdir();(C/'before').mkdir();(C/'after').mkdir();O.mkdir() +for n in names:shutil.copyfile(D/n,C/'before'/n) +packages=r.read(D/'work_packages.json');snapshot=r.read(D/'progress_snapshot.json');original=r.read(D/'work_packages.json');pkg=next(p for p in packages if p['id']=='P23');unit=next(u for u in pkg['remaining_deliverables'] if u['id']=='P23-02');old=unit['progress_summary'];assert pkg['current_summary']==old +next_action='既存のnative投影を再利用し、Guest候補抽出・評価・順位付けの一括純処理を1関連変更として実装する。r298のGDScript正規化や小さなprice/key/copy変更を再起動しない。全原helper・拒否順・符号整数・型/コピー所有・callback/状態遷移契約を先に照合し、unsupported前無変更の元fallbackを保持する。原重み/閾値/時刻/価格/保存は変更しない。関連変更の正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。' +assert '次は' in old +base=old.rsplit('次は',1)[0] +new=base+'追加r311-r02は現実装親274/library275の1回の帰属診断。隔離4script24wrapperの原本体全文保持、Budget257そのまま、既存library/config再利用。新build/librarycopy0、隔離APFS clone1・r02追加clone0、原r311のmetrics二重field参照をengine0で拒否保持し1式修復。18/0・PID84968 normal終了・strict/private/source/default/current310D4/SUPPORT/親隔離stage/project復元・全after64711487732bytes原oracle同値を独立有限受理。metrics3896bytes/281 partitions・宣言34行を全文照合。計測付きtick1268510us、AI979790us、projection50/656139us、extract50/95575us、rank50/124620us、evaluate5000/106351us、snapshot1/76851usは包含観測のみ。evaluateはrank内で加算せず、zeroはscript wrapper未到達だけでnative仕事/費用0ではない。純CPU/割合/原因/速度比較/50ms/P95/D10を認定しない。次作業Guest一括抽出/評価/順位付けの契約r312を固定し、新候補未実装・性能利益未証明・制作採用0。原17条件未受入・正式完了追加0。次は'+next_action +stamp=datetime.datetime.now().astimezone().isoformat();pkg['current_summary']=new;unit['progress_summary']=new;pkg['updated_at_jst']=stamp;unit['updated_at_jst']=stamp +prior=A/'p23-02-current-progress-disposition-r310.json';matrix=A/'p23-02-current-progress-disposition-r312.json';m=r.read(prior);m['source_previous_matrix']=pin(prior);m['historical_trial_fields_before_r312']={k:m.get(k) for k in ['ready_route_latest_semantic_trial','next_action','next_test_candidate']};m.update(latest_instrumented_diagnostic='r274/library275 current311-r02: four literal script wrapper files, Budget257, one cold646→647 whole equality and inclusive observations only',next_action=next_action,next_test_candidate=next_action,guest_bulk_next_work_contract=pin(contract)) +m['finite_evidence']['current_retained_native_diagnostic']=pin(review);m['finite_evidence']['current_retained_native_diagnostic_root']=pin(root) +missing='Current retained274/library275 r311-r02 instrumented1 tick1268510us/AI979790us, originalwhole647 equality and34 inclusive rows accepted only. Guest bulk contract312 selected as work, not implemented; previous303 boundary/local/whole evidence retained and303 unadopted/unselected. PureCPU/causality/gain/P95/D10/50ms/final172/general malformed/reentry/normal OS/x3/exit/small screen/Windows/original17 remain unaccepted.' +for q in m['conditions']: + if q['id'] in ['C09','X5','X7']:q['current_missing']=missing +assert len(m['conditions'])==17 and all(not q['accepted'] for q in m['conditions']) and m['Windows_only_blocked_ids']==['C08','X8'];r.write(matrix,m) +for xs in [unit['remaining_gaps'],snapshot['next_single_delivery_unit']['missing']]: + for q in xs: + if q['id']=='C09':q['conditions']=[missing,'原詳細・旧版条件はhistorical fieldsと旧matrixへ保持。'] + elif q['id']=='cross-cutting-final-candidate':q['conditions']=['原17条件を同一最終版で受入。最新版付き有限証拠と未達はr312 matrixへ保持。'] +proofs=[dict(review=pin(review),root=pin(root))] +for p in [review,root,matrix,contract,A/'p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json']:unit['evidence'].append(dict(path=str(p.relative_to(R)),sha256_at_integration=r.sha(p),scope='One instrumented retained275 diagnostic and next Guest bulk work contract only; no general performance/final172/OS/Windows/adoption/unit acceptance',linked_at_jst=stamp,current_game_acceptance_inferred=False)) +unit['acceptance_matrix_reference']=str(matrix);nu=snapshot['next_single_delivery_unit'];assert nu['id']=='P23-02';nu.update(acceptance_matrix_reference=str(matrix),progress_evidence=str(matrix));nu['unselected_trial_evidence'].append(str(review)) +key='p23_02_current_retained_native_diagnostic_integration_r312';snapshot['p23_02_native_ready_route_boundary_integration_r310']['superseded_by']=key;snapshot[key]=dict(previous_summary=old,proofs=proofs,acceptance_matrix=pin(matrix),next_action=next_action,finite_current_native_diagnostic_accepted=True,next_work_contract=pin(contract),next_candidate_implemented=False,arbitrary_malformed_or_general_reentry_accepted=False,stable_gain_supported=False,stall_budget_met=False,candidate_adopted=False,candidate_selected=False,formal_completed_added=0,unit_accepted=False,whole_goal_accepted=False) +r.write(C/'after/work_packages.json',packages);r.write(C/'after/progress_snapshot.json',snapshot) +for n in names[:2]: + t=(C/'before'/n).read_text();assert t.count(old)==1;(C/'after'/n).write_text(t.replace(old,new,1).replace('2026-10-12・r310証拠統合','2026-10-12・r312証拠統合',1)) +counts=collections.Counter(u['state'] for p in packages for u in p['remaining_deliverables']);assert len(packages)==30 and dict(counts)=={'completed':9,'in_progress':19,'planned':60} +for p,q in zip(original,packages): + if p['id']!='P23':assert p==q + else: + for u,w in zip(p['remaining_deliverables'],q['remaining_deliverables']): + if u['id']!='P23-02':assert u==w +r.write(C/'input.json',dict(before={n:pin(C/'before'/n) for n in names},after={n:pin(C/'after'/n) for n in names},proofs=proofs,matrix=pin(matrix),author=pin(Path(__file__)),counts=dict(counts),summary_before=old,summary_after=new,formal_completed_added=0,unit_accepted=False)) +original_write=Path.write_text;stdout=io.StringIO() +try: + for n in names:assert (D/n).read_bytes()==(C/'before'/n).read_bytes();shutil.copyfile(C/'after'/n,D/n) + def routed(p,data,*args,**kwargs):return original_write(O/'plan_validation.json' if p==D/'plan_validation.json' else p,data,*args,**kwargs) + Path.write_text=routed;sys.argv=[str(D/'validate_plan.py')] + with contextlib.redirect_stdout(stdout):runpy.run_path(str(D/'validate_plan.py'),run_name='__main__') + val=r.read(O/'plan_validation.json');assert val['passed'] and len(val['checks'])==49 and not val['failed_checks'];assert r.source_refs(R)==source and r.default_player(R)==player and r.sha(D/'plan_validation.json')==historical +except BaseException: + for n in names:shutil.copyfile(C/'before'/n,D/n) + raise +finally:Path.write_text=original_write +r.write(O/'execution.json',dict(passed=True,canonical_after={n:pin(D/n) for n in names},source_before=source,source_after_equal=True,default_before=player,default_after_equal=True,historical_validator_receipt_preserved=True,validation=dict(checks=49,failures=0),counts=dict(counts),formal_completed_added=0,source_edits=0,engine_processes=0,unit_accepted=False,whole_goal_accepted=False));print(dict(applied=True,checks=49,failures=0,formal_completed_added=0)) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-prepare-current-residual-r311-r02.py b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-prepare-current-residual-r311-r02.py new file mode 100644 index 0000000..430a72f --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-prepare-current-residual-r311-r02.py @@ -0,0 +1,17 @@ +# coding: utf-8 +from pathlib import Path +import ast,importlib.util,json,shutil,sys +sys.dont_write_bytecode=True +R=Path('/Users/korizatou114/Projects/とりにく工房ゲーム制作部');A=R/'artifacts/original-completion-2026-10-02';D=R/'docs/plans/original-completion-2026-10-02';O=A/'p23-02-current-residual-diagnostic-r311-r02';QA=A/'p23-02-current-residual-diagnostic-r311-r02.gd';driver=A/'p23-02-current-residual-diagnostic-r311-r02.py' +s=importlib.util.spec_from_file_location('prep311r02',R/'tools/run_all_tests.py');r=importlib.util.module_from_spec(s);s.loader.exec_module(r) +def pin(p):return dict(path=str(p),bytes=p.stat().st_size,sha256=r.sha(p)) +old=A/'p23-02-current-residual-diagnostic-r311';p=r.read(old/'input.json');rejected=A/'p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json';v=r.read(rejected);assert not v['execution_allowed'] and v['blockers'];assert not (old/'execution.json').exists();assert not O.exists() and not QA.exists() and not driver.exists();assert shutil.disk_usage(A).free>=528*1048576 +for k,q in p['pins'].items():assert pin(Path(q['path']))==q,k +for k,path in p['stages'].items():assert r.inventory(Path(path),stage=True)==p['stage_inventory'] +for k,path in p['parents'].items():assert r.inventory(Path(path),stage=True)==p['inventories'][k] +assert r.source_refs(R)==p['source_before'] and r.default_player(R)==p['default_before'];O.mkdir() +text=Path(p['pins']['QA']['path']).read_text();bad='clock._p23r311_metrics.duplicate(true)._p23r311_metrics.duplicate(true)';assert text.count(bad)==1;QA.write_text(text.replace(bad,'clock._p23r311_metrics.duplicate(true)',1)) +t=Path(p['pins']['runner']['path']).read_text();t=t.replace("O=A/'p23-02-current-residual-diagnostic-r311'","O=A/'p23-02-current-residual-diagnostic-r311-r02'").replace('p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json','p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json');ast.parse(t);driver.write_text(t) +starter=O/'guarded-r274.gd';text=Path(p['pins']['starter_r274']['path']).read_text();starter.write_text(text.replace(text.splitlines()[0],'extends '+json.dumps(str(QA)),1)) +p['pins'].update(QA=pin(QA),runner=pin(driver),prepare=pin(Path(__file__)),starter_r274=pin(starter),prior_rejected_review=pin(rejected),prior_input=pin(old/'input.json'),prior_QA=pin(Path(p['pins']['QA_original']['path']).parent/'p23-02-current-residual-diagnostic-r311.gd'),prior_author=pin(Path('/private/tmp/thetree-prepare-current-residual-r311.py'))) +p.update(stage_clones=0,reused_stage_clones=1,scope=p['scope']+' r311-r02 repairs only duplicated metrics field at freeze; exact existing311 stage/wrappers retained, no new clone/library copy/build.',doc4_before={n:r.sha(D/n) for n in ['IMPLEMENTATION_PLAN.md','PROGRESS_INTEGRATION.md','work_packages.json','progress_snapshot.json']});r.write(O/'input.json',p);print(dict(prepared=True,pins=len(p['pins']),engine_runs=0,stage_clones=0,library_copies=0,compiler_runs=0)) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-prepare-current-residual-r311.py b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-prepare-current-residual-r311.py new file mode 100644 index 0000000..cd25c18 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-prepare-current-residual-r311.py @@ -0,0 +1,44 @@ +# coding: utf-8 +from pathlib import Path +import ast,importlib.util,json,re,sys,shutil,subprocess +sys.dont_write_bytecode=True +R=Path('/Users/korizatou114/Projects/とりにく工房ゲーム制作部');A=R/'artifacts/original-completion-2026-10-02';D=R/'docs/plans/original-completion-2026-10-02';O=A/'p23-02-current-residual-diagnostic-r311';QA=A/'p23-02-current-residual-diagnostic-r311.gd';driver=A/'p23-02-current-residual-diagnostic-r311.py' +s=importlib.util.spec_from_file_location('prep311',R/'tools/run_all_tests.py');r=importlib.util.module_from_spec(s);s.loader.exec_module(r) +def pin(p):return dict(path=str(p),bytes=p.stat().st_size,sha256=r.sha(p)) +base=r.read(A/'p23-02-native-ready-route-impact-whole-r305/input.json');local=r.read(A/'p23-02-native-pure-tag-local-r278-r04/input.json');parent=Path(base['stage']);expected=base['expected_stage'];assert r.inventory(parent,stage=True)==expected +assert not O.exists() and not QA.exists() and not driver.exists();free=shutil.disk_usage(A).free;size=sum(p.stat().st_size for p in parent.rglob('*') if p.is_file());assert free>=768*1048576+size +source=r.source_refs(R);player=r.default_player(R);O.mkdir();stage=O/'stage';subprocess.run(['/bin/cp','-cR',str(parent),str(stage)],check=True,timeout=30);assert r.inventory(stage,stage=True)==expected +old_manifest=r.read(A/'p23-02-current-residual-diagnostic-r238/instrumentation.json');files={};suffixes={} +for name,entry in old_manifest['files'].items(): + if name=='scripts/core/performance_budget.gd':continue + files[name]=[dict(x,renamed=x['renamed'].replace('r238','r311'),renamed_signature=x['renamed_signature'].replace('r238','r311'),wrapper=x['wrapper'].replace('r238','r311')) for x in entry['wrappers']];suffixes[name]=entry['added_suffix'].replace('r238','r311') +name='autoload/simulation_runtime.gd';method='_publish_snapshot';args='_absolute_minute';typ='void';text=(parent/name).read_text();m=re.search(r'^func '+re.escape(method)+r'\([\s\S]*?\) -> ([^:\n]+):\n',text,re.M);assert m and m.group(1)==typ;signature=m.group(0);renamed='_p23r311_original_'+method;renamed_signature=signature.replace('func '+method+'(','func '+renamed+'(',1) +wrapper=signature+'\tvar p23_started: int = Time.get_ticks_usec()\n\t'+renamed+'('+args+')\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = '+json.dumps(method)+'\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {"calls":0, "inclusive_us":0, "max_us":0})\n\tp23_row["calls"] = int(p23_row["calls"]) + 1\n\tp23_row["inclusive_us"] = int(p23_row["inclusive_us"]) + p23_elapsed\n\tp23_row["max_us"] = maxi(int(p23_row["max_us"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n' +files[name].append(dict(name=method,renamed=renamed,signature=signature,renamed_signature=renamed_signature,wrapper=wrapper));suffixes[name]+='\n'+wrapper +manifest={} +for name,wrappers in files.items(): + p=stage/name;original=p.read_text();text=original + for w in wrappers:assert text.count(w['signature'])==1,(name,w['name']);text=text.replace(w['signature'],w['renamed_signature'],1) + text+=suffixes[name];p.write_text(text);inverse=text[:-len(suffixes[name])] + for w in reversed(wrappers):assert inverse.count(w['renamed_signature'])==1;inverse=inverse.replace(w['renamed_signature'],w['signature'],1) + assert inverse==original;manifest[name]=dict(before=expected[name],after=dict(bytes=p.stat().st_size,sha256=r.sha(p)),wrappers=wrappers,added_suffix=suffixes[name],inverse_original_equal=True) +budget=Path(base['pins']['modified_budget']['path']);shutil.copyfile(budget,stage/'scripts/core/performance_budget.gd');inventory=r.inventory(stage,stage=True);changed=[n for n in inventory if inventory[n]!=expected[n]];assert set(changed)==set(files)|{'scripts/core/performance_budget.gd'} +r.write(O/'instrumentation.json',dict(scope='24 original bodies preserved under signature rename+wrappers in four files; existing accepted native Budget dependency reused without new budget wrapper. Current275 only, nested inclusive durations include children/overhead.',files=manifest,changed_stage_files=changed,original_parent=str(parent),budget_dependency=pin(budget),no_pure_CPU_or_speed_comparison=True)) +qa=(A/'p23-02-current-residual-diagnostic-r238.gd').read_text().replace('r238','r311').replace('r233/library234','r274/library275').replace('candidate != "r233"','candidate != "r274"') +qa=qa.replace('\tclock.performance_budget._p23r311_metrics.clear()\n','').replace(' and clock.performance_budget._p23r311_metrics.is_empty()','').replace(', "budget": ["record_sample"]','').replace(', "budget":clock.performance_budget','').replace(', "budget":clock.performance_budget._p23r311_metrics.duplicate(true)','') +qa=qa.replace('"get_facility_business_price"]','"get_facility_business_price", "_publish_snapshot"]',1) +qa=qa.replace('["_project_guest_candidates","_decide_guest_with_log","_need_relief_for_facility_tags","_service_category_for_tags","get_facility_business_price"]','["_project_guest_candidates","_decide_guest_with_log","get_facility_business_price","_publish_snapshot"]') +qa=qa.replace(' and int(metrics["budget"]["record_sample"]["calls"])>0','') +assert '_p23r311_metrics' in qa and '"budget"' not in qa;QA.write_text(qa) +old_driver=A/'p23-02-current-residual-diagnostic-r238.py';t=old_driver.read_text().replace('p23-02-current-residual-diagnostic-r238','p23-02-current-residual-diagnostic-r311').replace('p23-02-current-residual-diagnostic-preexecution-independent-review-r238','p23-02-current-residual-diagnostic-preexecution-independent-review-r311').replace("['r233']","['r274']") +t=t.replace("assert r.read(Path(fixed['impact_review']['path']))['finite_existing_impact_accepted']","assert r.read(Path(fixed['whole_review']['path']))['finite_whole647_equivalence_accepted']") +t=t.replace("for k,p in stages.items():(p/'project.godot').write_bytes(public[k])","if all(q['engine_ended'] is True for q in cleanup):\n for k,p in stages.items():(p/'project.godot').write_bytes(public[k])\n else:cleanup_errors.append('Project restoration refused while owned child remains live')") +t=t.replace("pairs=[] # A diagnostic", "assert sum(p.stat().st_size for p in O.rglob('*') if p.is_file() and 'stage' not in p.relative_to(O).parts)<=16*1048576\n pairs=[] # A diagnostic") +ast.parse(t);driver.write_text(t) +starter=O/'guarded-r274.gd';oldstarter=Path(base['pins']['starter_baseline']['path']);text=oldstarter.read_text();starter.write_text(text.replace(text.splitlines()[0],'extends '+json.dumps(str(QA)),1)) +pins={k:base['pins'][k] for k in ['engine','helper','run_all','profile_guard','fixture','oracle']} +for key in ['config','original_library','copied_library','host_review','host_execution']:pins['current_'+key]=local['pins'][key] +paths=dict(QA=QA,runner=driver,prepare=Path(__file__),instrumentation=O/'instrumentation.json',starter_r274=starter,starter_original=oldstarter,QA_original=A/'p23-02-current-residual-diagnostic-r238.gd',runner_original=old_driver,old_instrumentation=A/'p23-02-current-residual-diagnostic-r238/instrumentation.json',local_review=A/'p23-02-native-pure-tag-local-actual-independent-review-r278-r04.json',local_root=A/'p23-02-native-pure-tag-local-r278-r04/actual-root-verification.json',whole_review=A/'p23-02-native-pure-tag-impact-whole-actual-independent-review-r281.json',whole_root=A/'p23-02-native-pure-tag-impact-whole-r281/actual-root-verification.json',whole_input=A/'p23-02-native-ready-route-impact-whole-r305/input.json',local_input=A/'p23-02-native-pure-tag-local-r278-r04/input.json',matrix=A/'p23-02-current-progress-disposition-r310.json',modified_budget=budget,source_cpp=A/'p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp') +for k,p in paths.items():pins[k]=pin(p) +assert r.source_refs(R)==source and r.default_player(R)==player and r.inventory(parent,stage=True)==expected +r.write(O/'input.json',dict(parents={'r274':str(parent)},inventories={'r274':expected},stages={'r274':str(stage)},stage_inventory=inventory,pins=pins,source_before=source,default_before=player,doc4_before={n:r.sha(D/n) for n in ['IMPLEMENTATION_PLAN.md','PROGRESS_INTEGRATION.md','work_packages.json','progress_snapshot.json']},support_inventory=r.inventory(r.SUPPORT),capacity_floor_bytes=528*1048576,expected_total_seconds=[5,45],engine_processes=1,compiler_processes=0,full_regression_runs=0,stage_clones=1,library_copies=0,preparation_capacity=dict(free_before=free,logical_clone_bytes=size),scope='One current retained274/library275 diagnostic, existing native Budget257 dependency. Four instrumented files24 literal original bodies; counters not snapshots. Whole cold646 paused speed1 after647 original11487732bytes equality; inclusive durations/counts only. No sum/subtraction for pureCPU or old/new timing comparison, no performance/stability/P95/D10/50ms/final172/OS/Windows/adoption/unit acceptance. Shared209 production/default/current310D4/support and retained private library/config preserved.',performance_accepted=False,unit_accepted=False));print(dict(prepared=True,wrappers=sum(len(v) for v in files.values()),changed_files=len(changed),pins=len(pins),engine_runs=0,compiler_runs=0,free_bytes=shutil.disk_usage(A).free)) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-select-guest-bulk-r312.py b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-select-guest-bulk-r312.py new file mode 100644 index 0000000..a4560aa --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-select-guest-bulk-r312.py @@ -0,0 +1,16 @@ +# coding: utf-8 +from pathlib import Path +import json,hashlib +R=Path('/Users/korizatou114/Projects/とりにく工房ゲーム制作部');A=R/'artifacts/original-completion-2026-10-02';O=A/'p23-02-current-residual-diagnostic-r311-r02';out=A/'p23-02-guest-bulk-work-contract-r312.json' +def pin(p):b=p.read_bytes();return dict(path=str(p),bytes=len(b),sha256=hashlib.sha256(b).hexdigest()) +e=json.loads((O/'execution.json').read_text());assert e['passed'];m=json.loads((O/'metrics-root-decoded.json').read_text());assert m['passed'];v=json.loads((A/'p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json').read_text());assert not v['blockers'] and v['finite_diagnostic_accepted'] +root=O/'actual-root-verification.json';q=json.loads(root.read_text());assert q['passed'] and q['review_sha256']==pin(A/'p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json')['sha256'] +if out.exists(): + old=json.loads(out.read_text());assert old['candidate_implemented'] is False and old['status']=='implementation_contract_not_implementation_or_acceptance' +d=dict(plan_id='P23-02',status='implementation_contract_not_implementation_or_acceptance',selection='one coherent builtin guest candidate extraction/evaluation/ranking after existing native projection',reason='Current275 instrumented observations retain a substantial unconverted Guest portion. Existing native projection is reused; another isolated key/copy/price/tag/need-normalization timing chain is not selected. Choosing a coherent conversion does not assert its benefit or sufficiency for50ms.',observed_instrumented_tick_us=e['samples'][0]['observed_instrumented_tick_us'],observed_metrics=m['metrics'],timing_rules=['nested inclusive durations include children and probes','do not add evaluation to ranking','no pureCPU allocation, no uninstrumented comparison or predicted gain','normal OS/x3/performance criteria remain mandatory'],reuse=dict(implementation_parent='r274/library275',held_unadopted_trial='r302/library303',ordinary_guest_body=str(R/'scripts/guest/guest_service.gd'),declined_need_normalization='r298 remains unadopted; do not restart it or duplicate GDScript normalization implementation'),implementation_scope=['Keep original public Guest extraction/evaluation/ranking/decide as fallback and direct-call oracle. Add one per-call pure native transformation for builtin canonical default game candidates; Runtime integrates only after support has been proved before observable mutation.','Preserve extraction facility-id order, rejection reason precedence/list, ranked need-priority/utility/urgency/travel/facility-id ordering, signed integer arithmetic and exact original weights/defaults/thresholds.','Reuse current native projection, produce original raw/accepted/ranked ordered typed values and owned deep copies; no saved state, persistent across-guest cache, formula changes, candidate pruning or frame slicing.','Retain original reservation callback and state transition body. Unsupported/custom scripts, inputs requiring original conversions, arbitrary callback/reentry contexts must use original whole processing with no duplicate error/rejection effects.','Make get_observation/logging/last_error/rejection publication and all callback-visible order explicit before implementation; do not precompute across callbacks.'],allowed_product_references=['existing native tree_numeric_core.cpp/header candidate sources','scripts/guest/guest_service.gd','autoload/simulation_runtime.gd'],required_before_implementation=['Inspect every original filtering/scoring helper and current definition/runtime fields; identify whether a pure canonical fast path covers ordinary current projection.','Define API/result fields and unsupported-before-mutation gate; fixed script/source version, data types, ownership, aliases and signed conversions must be explicit.','Do not change unconfirmed D01-D10 settings, pricing or game-time scale.'],validation_plan=['Static original-body/branch order and deep-copy/typed ownership comparison first; independent review before engine.','One targeted local pure Guest suite covering normal projected data, rejection precedence, rankings/ties, signed limits, original fallback/custom/callback behavior and owner mutation isolation.','Original Guest/lifecycle integration plus full cold646→647 ordered typed original oracle on exactly assembled candidate. Reuse valid fixed input/library/script proof scopes only.','After related changes and supported selection are complete, mandatory final172/normalOS/x3/exit/small-screen and same Windows distribution/device/P95/D10/50ms. No old-version full regression reuse as current acceptance.'],source_pins={name:pin(R/name) for name in ['scripts/guest/guest_service.gd','scripts/guest/guest_definition.gd','scripts/guest/guest_runtime.gd','scripts/core/simulation_kernel.gd','docs/traceability/original/BASELINE.txt']},evidence_pins=dict(execution=pin(O/'execution.json'),metrics=pin(O/'metrics-root-decoded.json'),review=pin(A/'p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json'),root=pin(root),current_matrix=pin(A/'p23-02-current-progress-disposition-r310.json')),formal_completed_added=0,candidate_implemented=False,candidate_selected=False,candidate_adopted=False,performance_accepted=False,unit_accepted=False) +stage=A/'p23-02-native-reconstruction-local-r209/stage' +assert (R/'scripts/guest/guest_service.gd').read_bytes()==(stage/'scripts/guest/guest_service.gd').read_bytes() +d['assembly_source_pins']={name:pin(stage/name) for name in ['autoload/simulation_runtime.gd','scripts/world/path_service.gd','scripts/guest/guest_service.gd']} +d['assembly_source_pins'].update(native_cpp=pin(A/'p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp'),native_hpp=pin(A/'p23-02-native-pure-tag-projection-candidate-r274/source/tree_core.hpp')) +d['assembly_scope']='Production32 retained. New native work starts from existing274/275 isolated assembly, not from an assumed identical production Runtime. Guest source bytes are identical in both.' +out.write_text(json.dumps(d,ensure_ascii=False,indent=2)+'\n');print(dict(contract_saved=str(out),candidate_implemented=False)) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/autoload/simulation_runtime.gd.gz b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/autoload/simulation_runtime.gd.gz new file mode 100644 index 0000000..90a0906 Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/autoload/simulation_runtime.gd.gz differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/core/performance_budget.gd b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/core/performance_budget.gd new file mode 100644 index 0000000..45a69dc --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/core/performance_budget.gd @@ -0,0 +1,287 @@ +class_name SimulationPerformanceBudget +extends RefCounted + +## Lightweight runtime profiler with explicit integer-microsecond samples. +## It is diagnostic state only and deliberately stays outside Save snapshots. + +signal budget_exceeded(metric_id: StringName, report: Dictionary) + +enum Aggregation { + AVERAGE, + P95, + MAXIMUM, +} + +const DEFAULT_SAMPLE_CAPACITY := 512 + +const DEFAULT_BUDGETS := { + &"simulation_x1": {&"aggregation": Aggregation.AVERAGE, &"limit_us": 4_000}, + &"simulation_x3": {&"aggregation": Aggregation.P95, &"limit_us": 12_000}, + &"path_query": {&"aggregation": Aggregation.P95, &"limit_us": 2_000}, + &"main_thread_stall": {&"aggregation": Aggregation.MAXIMUM, &"limit_us": 50_000}, + &"save": {&"aggregation": Aggregation.MAXIMUM, &"limit_us": 5_000_000}, + &"load": {&"aggregation": Aggregation.MAXIMUM, &"limit_us": 8_000_000}, +} + +var sample_capacity := DEFAULT_SAMPLE_CAPACITY +var _p23r257_native_core: RefCounted = null +var _budgets: Dictionary = {} +var _samples: Dictionary = {} +# Derived diagnostic index; never part of game Save snapshots. +var _ordered_samples: Dictionary = {} +var _ordered_sample_bytes: Dictionary = {} +# Complete raw bytes proved integer by this builtin; diagnostic-only derived state. +var _integer_window_bytes: Dictionary = {} +var _totals: Dictionary = {} +var _sample_counts: Dictionary = {} + + +func _init(capacity := DEFAULT_SAMPLE_CAPACITY) -> void: + sample_capacity = maxi(int(capacity), 1) + for raw_metric_id: Variant in DEFAULT_BUDGETS: + _budgets[StringName(raw_metric_id)] = ( + DEFAULT_BUDGETS[raw_metric_id] as Dictionary + ).duplicate(true) + + +func set_budget( + metric_id: StringName, + limit_us: int, + aggregation: Aggregation = Aggregation.P95 +) -> bool: + if metric_id.is_empty() or limit_us <= 0 \ + or aggregation < Aggregation.AVERAGE or aggregation > Aggregation.MAXIMUM: + return false + _budgets[metric_id] = { + &"aggregation": aggregation, + &"limit_us": limit_us, + } + return true + + +func record_sample(metric_id: StringName, duration_us: int) -> Dictionary: + if metric_id.is_empty() or duration_us < 0: + return {&"ok": false, &"error": "Metric ID and non-negative duration are required."} + if get_script().resource_path == "res://scripts/core/performance_budget.gd": + if _p23r257_native_core == null and ClassDB.class_exists(&"TheTreeNumericCore"): + _p23r257_native_core = ClassDB.instantiate(&"TheTreeNumericCore") + if _p23r257_native_core != null and _p23r257_native_core.get_class() == &"TheTreeNumericCore" and _p23r257_native_core.get_script() == null and _p23r257_native_core.has_method(&"performance_record_sample"): + var native_result: Dictionary = _p23r257_native_core.call(&"performance_record_sample", self, metric_id, duration_us) + if bool(native_result.get(&"supported", false)): + var native_report: Dictionary = native_result[&"report"] + if bool(native_report.get(&"budget_exceeded", false)): + budget_exceeded.emit(metric_id, native_report.duplicate(true)) + return {&"ok": true, &"report": native_report} + if not _samples.has(metric_id): + _samples[metric_id] = [] + var values: Array = _samples[metric_id] + var use_index: bool = get_script().resource_path == "res://scripts/core/performance_budget.gd" and _known_integer_window(metric_id, values) + var ordered: Array[int] = [] + if use_index: ordered = _validated_sample_order(metric_id, values) + values.append(duration_us) + if use_index: ordered.insert(ordered.bsearch(duration_us), duration_us) + if values.size() > sample_capacity: + var removed: Variant = values.pop_front() + if use_index: ordered.remove_at(ordered.bsearch(int(removed))) + if use_index: + _ordered_sample_bytes[metric_id] = var_to_bytes(values) + _integer_window_bytes[metric_id] = _ordered_sample_bytes[metric_id] + else: + _ordered_samples.erase(metric_id) + _ordered_sample_bytes.erase(metric_id) + _integer_window_bytes.erase(metric_id) + _totals[metric_id] = int(_totals.get(metric_id, 0)) + duration_us + _sample_counts[metric_id] = int(_sample_counts.get(metric_id, 0)) + 1 + var report: Dictionary = _indexed_report(metric_id, values, ordered) if use_index else get_report(metric_id) + if bool(report.get(&"budget_exceeded", false)): + budget_exceeded.emit(metric_id, report.duplicate(true)) + return {&"ok": true, &"report": report} + + +func record_simulation_tick(duration_us: int, speed: int) -> Dictionary: + var metric_id := &"simulation_x3" if speed == 3 else &"simulation_x1" + return record_sample(metric_id, duration_us) + + +## Records the full main-thread cost of one rendered/process frame, including +## all game-minute ticks consumed at accelerated speed. This keeps x3 from +## accidentally reporting four individually-fast ticks while the frame stalls. +func record_simulation_frame(duration_us: int, speed: int, ticks_run: int) -> Dictionary: + if ticks_run <= 0: + return {&"ok": false, &"error": "At least one completed tick is required."} + var simulation_result := record_simulation_tick(duration_us, speed) + var stall_result := record_sample(&"main_thread_stall", duration_us) + return { + &"ok": bool(simulation_result[&"ok"]) and bool(stall_result[&"ok"]), + &"ticks_run": ticks_run, + &"simulation": simulation_result, + &"main_thread": stall_result, + } + + +func get_report(metric_id: StringName) -> Dictionary: + var raw: Array = _samples.get(metric_id, []) + if get_script().resource_path != "res://scripts/core/performance_budget.gd" or not _known_integer_window(metric_id, raw): + return SimulationPerformanceBudget._legacy_report(self, metric_id) + var ordered: Array[int] = [] + return _indexed_report(metric_id, raw, ordered, true) + + +func _indexed_report(metric_id: StringName, values: Array, ordered: Array[int], validate_order: bool = false) -> Dictionary: + var count := values.size() + var lifetime_count := int(_sample_counts.get(metric_id, 0)) + var lifetime_total := int(_totals.get(metric_id, 0)) + var average_us := lifetime_total / lifetime_count if lifetime_count > 0 else 0 + if validate_order: ordered = _validated_sample_order(metric_id, values) + var maximum_us := maxi(0, ordered[-1]) if not ordered.is_empty() else 0 + var p95_us := 0 + if not ordered.is_empty(): + var rank_numerator := 95 * ordered.size() + var index := maxi((rank_numerator + 99) / 100 - 1, 0) + p95_us = ordered[mini(index, ordered.size() - 1)] + var budget: Dictionary = _budgets.get(metric_id, {}) + var aggregation := int(budget.get(&"aggregation", Aggregation.P95)) + var measured_us := _aggregated_value(aggregation, average_us, p95_us, maximum_us) + var limit_us := int(budget.get(&"limit_us", 0)) + return { + &"metric_id": metric_id, + &"window_sample_count": count, + &"lifetime_sample_count": lifetime_count, + &"average_us": average_us, + &"p95_us": p95_us, + &"maximum_us": maximum_us, + &"aggregation": aggregation, + &"measured_us": measured_us, + &"limit_us": limit_us, + &"budget_exceeded": limit_us > 0 and measured_us > limit_us, + } + + +func get_all_reports() -> Array[Dictionary]: + var metric_ids: Array[StringName] = [] + for raw_metric_id: Variant in _budgets: + metric_ids.append(StringName(raw_metric_id)) + for raw_metric_id: Variant in _samples: + var metric_id := StringName(raw_metric_id) + if not metric_ids.has(metric_id): + metric_ids.append(metric_id) + metric_ids.sort_custom(func(a: StringName, b: StringName) -> bool: + return String(a) < String(b) + ) + var reports: Array[Dictionary] = [] + for metric_id: StringName in metric_ids: + reports.append(get_report(metric_id)) + return reports + + +func clear(metric_id: StringName = &"") -> void: + if metric_id.is_empty(): + _samples.clear() + _ordered_samples.clear() + _ordered_sample_bytes.clear() + _integer_window_bytes.clear() + _totals.clear() + _sample_counts.clear() + return + _samples.erase(metric_id) + _ordered_samples.erase(metric_id) + _ordered_sample_bytes.erase(metric_id) + _integer_window_bytes.erase(metric_id) + _totals.erase(metric_id) + _sample_counts.erase(metric_id) + + +func _aggregated_value( + aggregation: int, + average_us: int, + p95_us: int, + maximum_us: int +) -> int: + match aggregation: + Aggregation.AVERAGE: + return average_us + Aggregation.MAXIMUM: + return maximum_us + _: + return p95_us + + +func _percentile(raw_values: Array, percentile: int) -> int: + if raw_values.is_empty(): + return 0 + var values: Array[int] = [] + for raw_value: Variant in raw_values: + values.append(int(raw_value)) + values.sort() + var rank_numerator := clampi(percentile, 0, 100) * values.size() + var index := maxi((rank_numerator + 99) / 100 - 1, 0) + return values[mini(index, values.size() - 1)] + + +static func _integer_window(values: Array) -> bool: + for raw_value: Variant in values: + if typeof(raw_value) != TYPE_INT: return false + return true + + +func _known_integer_window(metric_id: StringName, values: Array) -> bool: + # Never retain unknown metrics. Exact bytes detect typed/untyped replacement, + # same-size in-place edits and non-integer values before any cache reuse. + if not _samples.has(metric_id): + _integer_window_bytes.erase(metric_id) + return _integer_window(values) + var current_bytes := var_to_bytes(values) + if _integer_window_bytes.has(metric_id) and _integer_window_bytes[metric_id] == current_bytes: + return true + if not _integer_window(values): + _integer_window_bytes.erase(metric_id) + return false + _integer_window_bytes[metric_id] = current_bytes + return true + + +func _validated_sample_order(metric_id: StringName, values: Array) -> Array[int]: + # No retained state for unknown metrics; raw dictionary removal also drops its index. + if not _samples.has(metric_id): + _ordered_samples.erase(metric_id) + _ordered_sample_bytes.erase(metric_id) + _integer_window_bytes.erase(metric_id) + return [] + # Complete immutable raw bytes detect in-place/replaced windows, not just length. + var current_bytes := var_to_bytes(values) + if not _ordered_samples.has(metric_id) or _ordered_sample_bytes.get(metric_id, PackedByteArray()) != current_bytes: + var ordered: Array[int] = [] + for raw_value: Variant in values: ordered.append(int(raw_value)) + ordered.sort() + _ordered_samples[metric_id] = ordered + _ordered_sample_bytes[metric_id] = current_bytes + return _ordered_samples[metric_id] + + +static func _legacy_report(owner: SimulationPerformanceBudget, metric_id: StringName) -> Dictionary: + var values: Array = owner._samples.get(metric_id, []) + var count := values.size() + var lifetime_count := int(owner._sample_counts.get(metric_id, 0)) + var lifetime_total := int(owner._totals.get(metric_id, 0)) + var average_us := lifetime_total / lifetime_count if lifetime_count > 0 else 0 + var maximum_us := 0 + for raw_value: Variant in values: + maximum_us = maxi(maximum_us, int(raw_value)) + var p95_us := owner._percentile(values, 95) + var budget: Dictionary = owner._budgets.get(metric_id, {}) + var aggregation := int(budget.get(&"aggregation", Aggregation.P95)) + var measured_us := owner._aggregated_value(aggregation, average_us, p95_us, maximum_us) + var limit_us := int(budget.get(&"limit_us", 0)) + return { + &"metric_id": metric_id, + &"window_sample_count": count, + &"lifetime_sample_count": lifetime_count, + &"average_us": average_us, + &"p95_us": p95_us, + &"maximum_us": maximum_us, + &"aggregation": aggregation, + &"measured_us": measured_us, + &"limit_us": limit_us, + &"budget_exceeded": limit_us > 0 and measured_us > limit_us, + } + diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/core/simulation_kernel.gd b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/core/simulation_kernel.gd new file mode 100644 index 0000000..843e4a6 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/core/simulation_kernel.gd @@ -0,0 +1,276 @@ +class_name SimulationKernel +extends Node + +signal time_changed(day: int, hour: int, minute: int) +signal day_started(day: int) +signal settlement_requested(day: int) +signal tick_started(absolute_minute: int) +signal tick_phase_started(phase: TickPhase, absolute_minute: int) +signal tick_completed(absolute_minute: int) +signal simulation_overloaded(backlog_minutes: int) + +enum TickPhase { + APPLY_COMMANDS, + TIME_BOUNDARIES, + MANA, + CONSTRUCTION, + LOGISTICS, + FACILITY_COMPLETION, + VITALS_AND_ENVIRONMENT, + INCIDENTS_AND_EVENTS, + FACILITY_QUEUES, + AI_DECISIONS, + PUBLISH_SNAPSHOT, +} + +const MINUTES_PER_DAY := 24 * 60 +const START_ABSOLUTE_MINUTE := 6 * 60 +const REAL_SECONDS_PER_GAME_HOUR := 10.0 +const REAL_SECONDS_PER_GAME_MINUTE := REAL_SECONDS_PER_GAME_HOUR / 60.0 +const MAX_TICKS_PER_FRAME := 8 +const MAX_BACKLOG_MINUTES := 120 + +var absolute_minute := START_ABSOLUTE_MINUTE +var day := 1 +var minute_of_day := START_ABSOLUTE_MINUTE +var speed := 1 +var paused := false +var snapshot_version := 0 +var performance_budget := SimulationPerformanceBudget.new() + +var _accumulator := 0.0 +var _skip_next_process := false +var _phase_handlers: Dictionary = {} +var _pause_request_serial := 0 +var _abort_current_tick_requested := false +var _last_tick_advanced := false + +func _ready() -> void: + _emit_current_time() + +func _process(delta: float) -> void: + process_real_delta(delta) + +func process_real_delta(delta: float) -> int: + if _skip_next_process: + _skip_next_process = false + return 0 + if paused or speed <= 0 or delta <= 0.0: + return 0 + + var frame_started_at_us := Time.get_ticks_usec() + _accumulator += delta * speed + var due_ticks := int(_accumulator / REAL_SECONDS_PER_GAME_MINUTE) + var tick_budget := mini(due_ticks, MAX_TICKS_PER_FRAME) + var ticks_run := 0 + for _index in range(tick_budget): + if paused: + break + advance_one_minute() + if not _last_tick_advanced: + break + _accumulator -= REAL_SECONDS_PER_GAME_MINUTE + ticks_run += 1 + # A boundary handler may pause in the middle of a catch-up frame. Never + # consume another queued minute after that decision. + if paused: + break + if ticks_run > 0: + performance_budget.record_simulation_frame( + int(Time.get_ticks_usec() - frame_started_at_us), + speed, + ticks_run + ) + + var backlog_minutes := get_backlog_minutes() + if backlog_minutes > MAX_BACKLOG_MINUTES: + paused = true + simulation_overloaded.emit(backlog_minutes) + return ticks_run + +func reset(start_day := 1, start_hour := 6, start_minute := 0) -> void: + var safe_day := maxi(start_day, 1) + var safe_minute := posmod(start_hour * 60 + start_minute, MINUTES_PER_DAY) + absolute_minute = (safe_day - 1) * MINUTES_PER_DAY + safe_minute + _sync_calendar_fields() + _accumulator = 0.0 + paused = false + snapshot_version = 0 + performance_budget.clear() + _abort_current_tick_requested = false + _last_tick_advanced = false + _emit_current_time() + +func advance_minutes(amount: int) -> void: + if amount <= 0: + return + # Tests and deterministic tooling historically use an already-paused clock as + # an explicit manual stepping mode. Preserve that contract, while a pause + # raised during an initially-running batch is a hard boundary stop. + var manual_paused_stepping := paused + var pause_serial_before := _pause_request_serial + for _index in range(amount): + if not manual_paused_stepping and paused: + break + advance_one_minute() + if not _last_tick_advanced: + break + if _pause_request_serial != pause_serial_before \ + or (not manual_paused_stepping and paused): + break + +func advance_one_minute() -> void: + _abort_current_tick_requested = false + _last_tick_advanced = false + tick_started.emit(absolute_minute) + _run_phase(TickPhase.APPLY_COMMANDS) + # A Runtime gate can reject the tick before the Clock changes. This is + # distinct from an ordinary pause raised by a command that already committed + # for the upcoming minute. + if _abort_current_tick_requested: + _abort_current_tick_requested = false + return + + var previous_absolute_minute := absolute_minute + absolute_minute += 1 + _sync_calendar_fields() + _handle_time_boundaries(previous_absolute_minute) + _run_phase(TickPhase.TIME_BOUNDARIES) + + for phase in [ + TickPhase.MANA, + TickPhase.CONSTRUCTION, + TickPhase.LOGISTICS, + TickPhase.FACILITY_COMPLETION, + TickPhase.VITALS_AND_ENVIRONMENT, + TickPhase.INCIDENTS_AND_EVENTS, + TickPhase.FACILITY_QUEUES, + TickPhase.AI_DECISIONS, + TickPhase.PUBLISH_SNAPSHOT, + ]: + _run_phase(phase) + + snapshot_version += 1 + tick_completed.emit(absolute_minute) + _emit_current_time() + _abort_current_tick_requested = false + _last_tick_advanced = true + +func request_current_tick_abort() -> void: + _abort_current_tick_requested = true + +func set_speed(value: int) -> bool: + if value not in [1, 2, 3]: + return false + speed = value + paused = false + return true + +func toggle_pause() -> bool: + paused = not paused + if paused: + _pause_request_serial += 1 + return paused + +func set_paused(value: bool) -> void: + paused = value + if value: + _pause_request_serial += 1 + +func get_hour() -> int: + return minute_of_day / 60 + +func get_minute() -> int: + return minute_of_day % 60 + +func get_backlog_minutes() -> int: + return int(_accumulator / REAL_SECONDS_PER_GAME_MINUTE) + +func get_performance_reports() -> Array[Dictionary]: + return performance_budget.get_all_reports() + +func register_tick_handler(phase: TickPhase, handler_id: StringName, callback: Callable) -> bool: + if handler_id.is_empty() or not callback.is_valid(): + return false + if not _phase_handlers.has(phase): + _phase_handlers[phase] = {} + var handlers: Dictionary = _phase_handlers[phase] + if handlers.has(handler_id): + return false + handlers[handler_id] = callback + return true + +func unregister_tick_handler(phase: TickPhase, handler_id: StringName) -> void: + if not _phase_handlers.has(phase): + return + var handlers: Dictionary = _phase_handlers[phase] + handlers.erase(handler_id) + +func clock_snapshot() -> Dictionary: + return { + &"absolute_minute": absolute_minute, + &"speed": speed, + &"paused": paused, + &"snapshot_version": snapshot_version, + } + +func restore_clock(snapshot: Dictionary) -> bool: + if not snapshot.has(&"absolute_minute"): + return false + var restored_speed := int(snapshot.get(&"speed", 1)) + # Legacy x4 saves resume at the original specification maximum, x3. + if restored_speed == 4: + restored_speed = 3 + if restored_speed not in [1, 2, 3]: + return false + absolute_minute = maxi(int(snapshot[&"absolute_minute"]), 0) + speed = restored_speed + paused = bool(snapshot.get(&"paused", true)) + snapshot_version = maxi(int(snapshot.get(&"snapshot_version", 0)), 0) + _accumulator = 0.0 + _skip_next_process = true + _sync_calendar_fields() + _emit_current_time() + return true + +func _p23r311_original_run_phase(phase: TickPhase) -> void: + tick_phase_started.emit(phase, absolute_minute) + if not _phase_handlers.has(phase): + return + var handlers: Dictionary = _phase_handlers[phase] + var handler_ids: Array = handlers.keys() + handler_ids.sort_custom(func(left: Variant, right: Variant) -> bool: + return String(left) < String(right) + ) + for handler_id: Variant in handler_ids: + var callback: Callable = handlers[handler_id] + if callback.is_valid(): + callback.call(absolute_minute) + +func _sync_calendar_fields() -> void: + day = absolute_minute / MINUTES_PER_DAY + 1 + minute_of_day = absolute_minute % MINUTES_PER_DAY + +func _handle_time_boundaries(previous_absolute_minute: int) -> void: + if minute_of_day == 0: + var completed_day := previous_absolute_minute / MINUTES_PER_DAY + 1 + settlement_requested.emit(completed_day) + day_started.emit(day) + +func _emit_current_time() -> void: + time_changed.emit(day, get_hour(), get_minute()) + +# Private r311 diagnostic fields only; never serialized. Timings are nested/inclusive. +var _p23r311_metrics: Dictionary = {} + +func _run_phase(phase: TickPhase) -> void: + var p23_started: int = Time.get_ticks_usec() + _p23r311_original_run_phase(phase) + var p23_elapsed: int = Time.get_ticks_usec() - p23_started + var p23_key: String = str(phase) + var p23_row: Dictionary = _p23r311_metrics.get(p23_key, {"calls":0, "inclusive_us":0, "max_us":0}) + p23_row["calls"] = int(p23_row["calls"]) + 1 + p23_row["inclusive_us"] = int(p23_row["inclusive_us"]) + p23_elapsed + p23_row["max_us"] = maxi(int(p23_row["max_us"]), p23_elapsed) + _p23r311_metrics[p23_key] = p23_row + diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/guest/guest_service.gd b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/guest/guest_service.gd new file mode 100644 index 0000000..7962db9 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/guest/guest_service.gd @@ -0,0 +1,1731 @@ +class_name GuestService +extends RefCounted + +## Deterministic guest needs, decisions and lifecycle authority. +## +## Facility, path and economy integrations intentionally cross Dictionary and +## Callable boundaries. GuestService therefore remains independently testable +## and cannot accidentally mutate another service's private state. + +signal guest_spawned(guest: GuestRuntime) +signal guest_state_changed(guest_id: StringName, old_state: int, new_state: int, reason: StringName) +signal guest_queue_abandoned(guest_id: StringName, facility_id: StringName, request_id: StringName) +signal guest_recovery_started(guest_id: StringName, recovery_kind: StringName, target_cell: Vector3i) +signal guest_despawned(guest_id: StringName, persistent_record: Dictionary) + +const GuestDefinitionType = preload("res://scripts/guest/guest_definition.gd") +const GuestRuntimeType = preload("res://scripts/guest/guest_runtime.gd") + +const SNAPSHOT_VERSION := 2 +const MAX_TRANSITIONS_PER_TICK := 4 +const PATH_FAILURE_LIMIT := 3 +const STUCK_REPLAN_MINUTES := 60 +const DEFAULT_WAIT_HARD_LIMIT := 120 +const DEFAULT_EXIT_THRESHOLD := 15 +const PRIMARY_NEEDS: Array[StringName] = [&"hunger", &"sleep", &"leisure", &"intimacy"] + +const NEED_IDS: Array[StringName] = [ + &"hunger", + &"sleep", + &"hygiene", + &"medical", + &"leisure", + &"intimacy", +] +const LEGACY_NEED_IDS: Array[StringName] = [ + &"hunger", + &"rest", + &"fun", + &"social", + &"safety", +] + +var current_minute := -1 +var last_error := "" + +var _definitions: Dictionary = {} +var _guests: Dictionary = {} +var _persistent_records: Dictionary = {} +var _decision_rejections: Dictionary = {} +var _diagnostics: Array[Dictionary] = [] +var _sorted_guest_ids_cache: Array[StringName] = [] +var _guest_order_dirty := true +var _pending_spawn_notifications: Dictionary = {} +var _external_mutation_blocked := false + + +func register_definition(definition: Variant) -> bool: + if definition == null or not definition is GuestDefinition: + return _fail("Guest definition has an invalid type.") + var typed_definition: GuestDefinition = definition + if not typed_definition.is_valid(): + return _fail("Guest definition is invalid.") + if _definitions.has(typed_definition.guest_type_id): + return _fail("Duplicate guest definition: %s" % typed_definition.guest_type_id) + _definitions[typed_definition.guest_type_id] = typed_definition + last_error = "" + return true + + +func create_definition(guest_type_id: StringName, options: Dictionary = {}) -> GuestDefinition: + var definition := GuestDefinitionType.new().configure(guest_type_id, options) + return definition if register_definition(definition) else null + + +func get_definition(guest_type_id: StringName) -> GuestDefinition: + return _definitions.get(guest_type_id) as GuestDefinition + + +func get_definitions() -> Array[GuestDefinition]: + var result: Array[GuestDefinition] = [] + for guest_type_id: StringName in _sorted_ids(_definitions.keys()): + result.append(_definitions[guest_type_id]) + return result + + +func register_guest(guest: Variant, emit_notification := true) -> bool: + if _external_mutation_blocked: + return _fail("Guest mutation is blocked while committed notifications are delivered.") + if guest == null or not guest is GuestRuntime: + return _fail("Guest runtime has an invalid type.") + var runtime: GuestRuntime = guest + if not runtime.is_valid(): + return _fail("Guest runtime is invalid.") + if not _definitions.has(runtime.guest_type_id): + return _fail("Guest runtime references an unknown definition.") + if _guests.has(runtime.guest_id) or _persistent_records.has(runtime.guest_id): + return _fail("Duplicate guest id: %s" % runtime.guest_id) + _guests[runtime.guest_id] = runtime + _guest_order_dirty = true + if emit_notification: + guest_spawned.emit(runtime) + else: + _pending_spawn_notifications[runtime.guest_id] = true + last_error = "" + return true + + +func spawn_guest( + guest_id: StringName, + guest_type_id: StringName, + absolute_minute: int, + options: Dictionary = {}, + emit_notification := true +) -> GuestRuntime: + var definition := get_definition(guest_type_id) + if definition == null or absolute_minute < 0: + _fail("A known definition and non-negative spawn minute are required.") + return null + var runtime_options := options.duplicate(true) + if not _has_value(runtime_options, &"wallet_gold"): + runtime_options[&"wallet_gold"] = definition.wealth_min + if not _has_value(runtime_options, &"credit_limit_gold"): + runtime_options[&"credit_limit_gold"] = definition.credit_limit_gold + if not _has_value(runtime_options, &"patience_remaining"): + runtime_options[&"patience_remaining"] = definition.base_patience + if not _has_value(runtime_options, &"state"): + runtime_options[&"state"] = GuestRuntimeType.State.SPAWNING + if not _has_value(runtime_options, &"state_entered_at"): + runtime_options[&"state_entered_at"] = absolute_minute + if not _has_value(runtime_options, &"planned_exit_at"): + runtime_options[&"planned_exit_at"] = absolute_minute + 720 + var runtime := GuestRuntimeType.new().configure(guest_id, guest_type_id, runtime_options) + if not register_guest(runtime, emit_notification): + return null + return runtime + + +func commit_guest_spawned_notification(guest_id: StringName) -> bool: + if not _pending_spawn_notifications.has(guest_id) or not _guests.has(guest_id): + return _fail("Guest has no pending spawn notification: %s" % guest_id) + _pending_spawn_notifications.erase(guest_id) + guest_spawned.emit(_guests[guest_id] as GuestRuntime) + last_error = "" + return true + + +func discard_guest_spawned_notification(guest_id: StringName) -> bool: + if not _pending_spawn_notifications.has(guest_id): + return false + _pending_spawn_notifications.erase(guest_id) + return true + + +func has_pending_guest_spawned_notification(guest_id: StringName) -> bool: + return _pending_spawn_notifications.has(guest_id) + + +func set_external_mutation_blocked(blocked: bool) -> void: + _external_mutation_blocked = blocked + + +func has_guest(guest_id: StringName) -> bool: + return _guests.has(guest_id) + + +func get_guest(guest_id: StringName) -> GuestRuntime: + return _guests.get(guest_id) as GuestRuntime + + +func get_guests() -> Array[GuestRuntime]: + var result: Array[GuestRuntime] = [] + for guest_id: StringName in _ordered_guest_ids(): + result.append(_guests[guest_id]) + return result + + +func guest_count() -> int: + return _guests.size() + + +func get_persistent_record(guest_id: StringName) -> Dictionary: + if not _persistent_records.has(guest_id): + return {} + return (_persistent_records[guest_id] as Dictionary).duplicate(true) + + +func get_diagnostics() -> Array[Dictionary]: + return _diagnostics.duplicate(true) + + +func advance_one_minute( + absolute_minute: int, + context_by_guest: Dictionary = {} +) -> Dictionary: + if absolute_minute < 0 or absolute_minute <= current_minute: + return _error_result("Guest minute must advance monotonically.") + var ordered_guest_ids := _ordered_guest_ids() + # The common no-context tick has no external values to validate or isolate. + # Avoid allocating one duplicated context plus a resolved-context entry per + # Guest while retaining the same deterministic order and report contract. + if context_by_guest.is_empty(): + return _advance_with_shared_need_context( + absolute_minute, + ordered_guest_ids, + {} + ) + var resolved_contexts: Dictionary = {} + var default_context: Dictionary = {} + var raw_default: Variant = _value(context_by_guest, &"default", {}) + if raw_default is Dictionary: + default_context = raw_default + # Production supplies one common default context. Validate it once, then + # share the same read-only Dictionary across the population. Any per-Guest + # override keeps using the all-context preflight below, preserving atomic + # rejection and the malformed-override contract. + if context_by_guest.size() == 1 and _has_value(context_by_guest, &"default"): + # Historically an unused default was not validated when the population + # was empty. Preserve that edge case and the first-Guest error wording. + if not ordered_guest_ids.is_empty(): + var default_error := _need_context_error(default_context) + if not default_error.is_empty(): + return _error_result( + "Invalid Need context for %s: %s" % [ + ordered_guest_ids[0], + default_error, + ] + ) + return _advance_with_shared_need_context( + absolute_minute, + ordered_guest_ids, + default_context + ) + for guest_id: StringName in ordered_guest_ids: + var context := default_context + var raw_context: Variant = null + var has_guest_context := false + if context_by_guest.has(guest_id): + has_guest_context = true + raw_context = context_by_guest[guest_id] + else: + var string_guest_id := String(guest_id) + if context_by_guest.has(string_guest_id): + has_guest_context = true + raw_context = context_by_guest[string_guest_id] + if raw_context is Dictionary: + context = raw_context + elif has_guest_context: + # Preserve the original contract: a malformed per-guest override + # suppresses the default context rather than inheriting it. + context = {} + var context_error := _need_context_error(context) + if not context_error.is_empty(): + return _error_result("Invalid Need context for %s: %s" % [guest_id, context_error]) + resolved_contexts[guest_id] = context.duplicate(true) + + ## All contexts are preflighted before mutating any guest, so a malformed + ## batched update cannot partially advance the population or the minute. + var reports: Array[Dictionary] = [] + for guest_id: StringName in ordered_guest_ids: + var context: Dictionary = resolved_contexts[guest_id] + var guest: GuestRuntime = _guests[guest_id] + var definition: GuestDefinition = _definitions.get(guest.guest_type_id) as GuestDefinition + if definition == null: + reports.append(_error_result("Guest definition is missing.")) + else: + reports.append(_update_needs_runtime(guest, definition, context)) + current_minute = absolute_minute + last_error = "" + return { + &"ok": true, + &"minute": absolute_minute, + &"guest_reports": reports, + } + + +func _advance_with_shared_need_context( + absolute_minute: int, + ordered_guest_ids: Array[StringName], + context: Dictionary +) -> Dictionary: + var reports: Array[Dictionary] = [] + for guest_id: StringName in ordered_guest_ids: + var guest: GuestRuntime = _guests[guest_id] + var definition: GuestDefinition = _definitions.get( + guest.guest_type_id + ) as GuestDefinition + if definition == null: + reports.append(_error_result("Guest definition is missing.")) + else: + reports.append(_update_needs_runtime(guest, definition, context)) + current_minute = absolute_minute + last_error = "" + return { + &"ok": true, + &"minute": absolute_minute, + &"guest_reports": reports, + } + + +func update_needs(guest_id: StringName, context: Dictionary = {}) -> Dictionary: + var guest := get_guest(guest_id) + if guest == null: + return _error_result("Unknown guest: %s" % guest_id) + var definition := get_definition(guest.guest_type_id) + if definition == null: + return _error_result("Guest definition is missing.") + var context_error := _need_context_error(context) + if not context_error.is_empty(): + return _error_result("Invalid Need context: %s" % context_error) + last_error = "" + return _update_needs_runtime(guest, definition, context) + + +func _update_needs_runtime( + guest: GuestRuntime, + definition: GuestDefinition, + context: Dictionary +) -> Dictionary: + var before_hunger := int(guest.needs[&"hunger"]) + var before_sleep := int(guest.needs[&"sleep"]) + var before_hygiene := int(guest.needs[&"hygiene"]) + var before_medical := int(guest.needs[&"medical"]) + var before_leisure := int(guest.needs[&"leisure"]) + var before_intimacy := int(guest.needs[&"intimacy"]) + var delta_hunger := int(definition.need_rates[&"hunger"]) + var delta_sleep := int(definition.need_rates[&"sleep"]) + var delta_hygiene := int(definition.need_rates[&"hygiene"]) + var delta_medical := int(definition.need_rates[&"medical"]) + var delta_leisure := int(definition.need_rates[&"leisure"]) + var delta_intimacy := int(definition.need_rates[&"intimacy"]) + + ## State effects are accumulated first; every Need is clamped exactly once. + if guest.state == GuestRuntimeType.State.MOVING \ + or guest.state == GuestRuntimeType.State.REPLANNING: + delta_hunger += 2 + delta_sleep += 2 + elif guest.state == GuestRuntimeType.State.QUEUING: + delta_hunger += 1 + + if context.is_empty(): + if guest.state != GuestRuntimeType.State.RECEIVING_SERVICE: + delta_leisure += 1 + else: + if bool(_value(context, &"work_like_activity", false)): + delta_sleep += 1 + if bool(_value( + context, + &"unstimulated", + guest.state != GuestRuntimeType.State.RECEIVING_SERVICE + )): + delta_leisure += 1 + delta_hygiene += int(_value(context, &"dirt", 0)) + delta_medical += int(_value(context, &"injury", 0)) + delta_medical += int(_value(context, &"illness", 0)) + if definition.adult_verified: + var intimacy_key := &"intimacy_night" \ + if bool(_value(context, &"is_night", false)) \ + else &"intimacy_day" + delta_intimacy += int(_value(context, intimacy_key, 0)) + var raw_effects: Variant = _value(context, &"need_effects", {}) + var normalized_effects: Dictionary = _normalized_partial_need_map(raw_effects) + delta_hunger += int(normalized_effects.get(&"hunger", 0)) + delta_sleep += int(normalized_effects.get(&"sleep", 0)) + delta_hygiene += int(normalized_effects.get(&"hygiene", 0)) + delta_medical += int(normalized_effects.get(&"medical", 0)) + delta_leisure += int(normalized_effects.get(&"leisure", 0)) + delta_intimacy += int(normalized_effects.get(&"intimacy", 0)) + + var after_hunger := clampi(before_hunger + delta_hunger, 0, 100) + var after_sleep := clampi(before_sleep + delta_sleep, 0, 100) + var after_hygiene := clampi(before_hygiene + delta_hygiene, 0, 100) + var after_medical := clampi(before_medical + delta_medical, 0, 100) + var after_leisure := clampi(before_leisure + delta_leisure, 0, 100) + var after_intimacy := clampi(before_intimacy + delta_intimacy, 0, 100) + guest.needs[&"hunger"] = after_hunger + guest.needs[&"sleep"] = after_sleep + guest.needs[&"hygiene"] = after_hygiene + guest.needs[&"medical"] = after_medical + guest.needs[&"leisure"] = after_leisure + guest.needs[&"intimacy"] = after_intimacy + return { + &"ok": true, + &"guest_id": String(guest.guest_id), + &"before": { + "hunger": before_hunger, + "hygiene": before_hygiene, + "intimacy": before_intimacy, + "leisure": before_leisure, + "medical": before_medical, + "sleep": before_sleep, + }, + &"deltas": { + "hunger": delta_hunger, + "hygiene": delta_hygiene, + "intimacy": delta_intimacy, + "leisure": delta_leisure, + "medical": delta_medical, + "sleep": delta_sleep, + }, + &"after": { + "hunger": after_hunger, + "hygiene": after_hygiene, + "intimacy": after_intimacy, + "leisure": after_leisure, + "medical": after_medical, + "sleep": after_sleep, + }, + } + + +## Returns canonical candidate copies in facility_id order. Supported canonical +## fields are documented by the filtering helpers below; aliases allow existing +## FacilityService projections to be adapted without a hard dependency. +func _p23r311_originalextract_candidates( + guest_id: StringName, + facilities: Array, + context: Dictionary = {} +) -> Array[Dictionary]: + var guest := get_guest(guest_id) + if guest == null: + _fail("Unknown guest: %s" % guest_id) + return [] + var definition := get_definition(guest.guest_type_id) + if definition == null: + _fail("Guest definition is missing.") + return [] + var ordered: Array[Dictionary] = [] + for raw_candidate: Variant in facilities: + if not raw_candidate is Dictionary: + continue + var candidate: Dictionary = raw_candidate.duplicate(true) + var facility_id := _facility_id(candidate) + if facility_id.is_empty(): + continue + candidate[&"facility_id"] = facility_id + ordered.append(candidate) + ordered.sort_custom( + func(a: Dictionary, b: Dictionary) -> bool: + return String(a[&"facility_id"]) < String(b[&"facility_id"]) + ) + + var accepted: Array[Dictionary] = [] + var rejected: Array[Dictionary] = [] + for candidate: Dictionary in ordered: + var reason := _candidate_rejection_reason(guest, definition, candidate, context) + if reason.is_empty(): + accepted.append(candidate) + else: + rejected.append({ + &"facility_id": String(candidate[&"facility_id"]), + &"reason": String(reason), + }) + _decision_rejections[guest_id] = rejected + last_error = "" + return accepted + + +func get_last_candidate_rejections(guest_id: StringName) -> Array[Dictionary]: + return (_decision_rejections.get(guest_id, []) as Array).duplicate(true) + + +func _p23r311_originalevaluate_candidate(guest_id: StringName, candidate: Dictionary) -> Dictionary: + var guest := get_guest(guest_id) + if guest == null: + return _error_result("Unknown guest: %s" % guest_id) + var definition := get_definition(guest.guest_type_id) + if definition == null: + return _error_result("Guest definition is missing.") + if not _candidate_need_maps_are_valid(candidate): + return _error_result("Candidate Need map is invalid.") + var need_relief := _need_relief(guest, candidate) + var preference := int(_value( + candidate, + &"preference", + definition.preference_for(_value(candidate, &"facility_tags", _value(candidate, &"tags", []))) + )) + var expected_quality := int(_value( + candidate, + &"expected_quality", + _value(candidate, &"quality", 0) + )) + var novelty := int(_value( + candidate, + &"novelty", + 0 if guest.visited_facility_ids.has(_facility_id(candidate)) else 10 + )) + var group_fit := int(_value(candidate, &"group_fit", 0)) + var price_burden := int(_value(candidate, &"price_burden", _price_burden(guest, candidate))) + var travel_minutes := maxi(int(_value(candidate, &"travel_minutes", 0)), 0) + var wait_minutes := maxi(int(_value( + candidate, + &"wait_minutes", + _value(candidate, &"expected_wait", 0) + )), 0) + var risk := maxi(int(_value(candidate, &"risk", _value(candidate, &"risk_level", 0))), 0) + var default_risk_sensitivity := (100 - definition.risk_tolerance + 24) / 25 + var risk_sensitivity := maxi(int(_value( + candidate, + &"risk_sensitivity", + default_risk_sensitivity + )), 0) + var repetition_penalty := int(_value( + candidate, + &"repetition_penalty", + 10 if guest.visited_facility_ids.has(_facility_id(candidate)) else 0 + )) + var urgency := int(_value(candidate, &"urgency", _candidate_urgency(guest, candidate))) + var utility := ( + need_relief * 8 + + preference * 5 + + expected_quality * 3 + + novelty * 2 + + group_fit * 2 + - price_burden * 5 + - travel_minutes * 2 + - wait_minutes * 3 + - risk * risk_sensitivity + - repetition_penalty + ) + var result := candidate.duplicate(true) + result[&"facility_id"] = _facility_id(candidate) + result[&"need_priority"] = _primary_need_priority(guest, candidate) + result[&"utility"] = utility + result[&"urgency"] = urgency + result[&"travel_minutes"] = travel_minutes + result[&"utility_terms"] = { + &"need_relief": need_relief, + &"preference": preference, + &"expected_quality": expected_quality, + &"novelty": novelty, + &"group_fit": group_fit, + &"price_burden": price_burden, + &"travel_minutes": travel_minutes, + &"wait_minutes": wait_minutes, + &"risk": risk, + &"risk_sensitivity": risk_sensitivity, + &"repetition_penalty": repetition_penalty, + } + return result + + +func _p23r311_originalrank_candidates(guest_id: StringName, candidates: Array) -> Array[Dictionary]: + var ranked: Array[Dictionary] = [] + for raw_candidate: Variant in candidates: + if raw_candidate is Dictionary: + var evaluated := evaluate_candidate(guest_id, raw_candidate) + if bool(evaluated.get(&"ok", true)): + ranked.append(evaluated) + ranked.sort_custom(_candidate_precedes) + return ranked + + +func select_best_candidate( + guest_id: StringName, + candidates: Array, + exit_threshold: int = DEFAULT_EXIT_THRESHOLD +) -> Dictionary: + var ranked := rank_candidates(guest_id, candidates) + for candidate: Dictionary in ranked: + if int(candidate[&"utility"]) >= exit_threshold: + return candidate.duplicate(true) + return {} + + +func decide( + guest_id: StringName, + facilities: Array, + absolute_minute: int, + context: Dictionary = {} +) -> Dictionary: + var guest := get_guest(guest_id) + if guest == null: + return _error_result("Unknown guest: %s" % guest_id) + var filtered := extract_candidates(guest_id, facilities, context) + var ranked := rank_candidates(guest_id, filtered) + var threshold := int(_value(context, &"exit_threshold", DEFAULT_EXIT_THRESHOLD)) + var reserve_callback: Callable = _value(context, &"reserve_callback", Callable()) + for candidate: Dictionary in ranked: + if int(candidate[&"utility"]) < threshold: + continue + if reserve_callback.is_valid(): + var reservation_result: Variant = reserve_callback.call( + guest_id, + candidate[&"facility_id"], + candidate.duplicate(true) + ) + if not _callback_succeeded(reservation_result): + continue + if not _transition_is_available(guest, GuestRuntimeType.State.MOVING, absolute_minute): + return _error_result("Guest cannot enter MOVING in this tick.") + guest.target_facility_id = candidate[&"facility_id"] + guest.path_handle = _copy(_value(candidate, &"path_handle", null)) + _apply_transition(guest, GuestRuntimeType.State.MOVING, absolute_minute, &"FACILITY_SELECTED") + last_error = "" + return { + &"ok": true, + &"action": &"MOVE_TO_FACILITY", + &"candidate": candidate.duplicate(true), + } + if not _transition_is_available(guest, GuestRuntimeType.State.LEAVING, absolute_minute): + return _error_result("Guest cannot enter LEAVING in this tick.") + guest.target_facility_id = &"" + guest.path_handle = null + guest.exit_reason = StringName(_value(context, &"exit_reason", &"NO_SUITABLE_FACILITY")) + _apply_transition(guest, GuestRuntimeType.State.LEAVING, absolute_minute, guest.exit_reason) + last_error = "" + return {&"ok": true, &"action": &"LEAVE", &"candidate": {}} + + +func transition_guest( + guest_id: StringName, + new_state: int, + absolute_minute: int, + reason: StringName = &"" +) -> Dictionary: + var guest := get_guest(guest_id) + if guest == null: + return _error_result("Unknown guest: %s" % guest_id) + if new_state < GuestRuntimeType.State.SPAWNING or new_state > GuestRuntimeType.State.INCAPACITATED: + return _error_result("Unknown guest state.") + if guest.state == new_state: + return {&"ok": true, &"changed": false, &"state": new_state} + if not _is_allowed_transition(guest.state, new_state): + return _error_result( + "Invalid guest transition: %s -> %s" % [ + GuestRuntimeType.State.keys()[guest.state], + GuestRuntimeType.State.keys()[new_state], + ] + ) + if not _transition_is_available(guest, new_state, absolute_minute): + _force_loop_guard(guest, absolute_minute) + return { + &"ok": false, + &"changed": true, + &"loop_guard": true, + &"state": guest.state, + } + _apply_transition(guest, new_state, absolute_minute, reason) + last_error = "" + return {&"ok": true, &"changed": true, &"state": new_state} + + +func enter_queue( + guest_id: StringName, + facility_id: StringName, + request_id: StringName, + absolute_minute: int, + initial_patience: int = -1, + enqueue_callback: Callable = Callable() +) -> Dictionary: + var guest := get_guest(guest_id) + if guest == null or facility_id.is_empty() or request_id.is_empty(): + return _error_result("Guest, facility and request are required for queue entry.") + if not _transition_is_available(guest, GuestRuntimeType.State.QUEUING, absolute_minute): + return _error_result("Guest cannot enter QUEUING in this tick.") + if enqueue_callback.is_valid(): + var external_result: Variant = enqueue_callback.call(guest_id, facility_id, request_id) + if not _callback_succeeded(external_result): + return _error_result("Facility queue rejected the guest.") + var definition := get_definition(guest.guest_type_id) + var resolved_patience := initial_patience + if resolved_patience < 0: + resolved_patience = definition.base_patience if definition != null else 0 + guest.target_facility_id = facility_id + guest.queue_request_id = request_id + guest.patience_remaining = maxi(resolved_patience, 0) + _apply_transition(guest, GuestRuntimeType.State.QUEUING, absolute_minute, &"QUEUE_ENTERED") + last_error = "" + return {&"ok": true, &"patience_remaining": guest.patience_remaining} + + +## Closure asks the guest to choose again, without charging a patience penalty. +## The callback releases the owning facility request and inventory reservations. +func release_queue_for_replanning( + guest_id: StringName, + absolute_minute: int, + release_callback: Callable = Callable() +) -> Dictionary: + if _external_mutation_blocked: + return _error_result("Guest mutation is blocked while committed notifications are delivered.") + var guest := get_guest(guest_id) + if guest == null or guest.state != GuestRuntimeType.State.QUEUING: + return _error_result("Guest is not in a queue.") + if not _transition_is_available(guest, GuestRuntimeType.State.DECIDING, absolute_minute): + return _error_result("Guest cannot atomically replan the queue in this tick.") + var facility_id := guest.target_facility_id + var request_id := guest.queue_request_id + if facility_id.is_empty() or request_id.is_empty(): + return _error_result("Queued guest is missing a facility or request.") + if release_callback.is_valid(): + var external_result: Variant = release_callback.call(guest_id, facility_id, request_id) + if not _callback_succeeded(external_result): + return _error_result("Facility queue removal failed; guest state was not changed.") + guest.target_facility_id = &"" + guest.queue_request_id = &"" + guest.path_handle = null + _apply_transition(guest, GuestRuntimeType.State.DECIDING, absolute_minute, &"FACILITY_CLOSED") + last_error = "" + return { + &"ok": true, + &"facility_id": facility_id, + &"request_id": request_id, + &"patience_remaining": guest.patience_remaining, + } + + +func tick_queue_patience( + guest_id: StringName, + absolute_minute: int, + recovery: int = 0, + leave_queue_callback: Callable = Callable() +) -> Dictionary: + var guest := get_guest(guest_id) + if guest == null or guest.state != GuestRuntimeType.State.QUEUING: + return _error_result("Guest is not in a queue.") + var next_patience := maxi(guest.patience_remaining - 1 + recovery, 0) + if next_patience > 0: + guest.patience_remaining = next_patience + last_error = "" + return {&"ok": true, &"abandoned": false, &"patience_remaining": next_patience} + ## Preflight every internal mutation before invoking the external queue owner. + if not _transition_is_available(guest, GuestRuntimeType.State.ABANDONING, absolute_minute): + return _error_result("Guest cannot atomically abandon the queue in this tick.") + var facility_id := guest.target_facility_id + var request_id := guest.queue_request_id + if leave_queue_callback.is_valid(): + var external_result: Variant = leave_queue_callback.call( + guest_id, + facility_id, + request_id + ) + if not _callback_succeeded(external_result): + return _error_result("Facility queue removal failed; guest state was not changed.") + guest.patience_remaining = 0 + guest.target_facility_id = &"" + guest.queue_request_id = &"" + guest.path_handle = null + _apply_transition(guest, GuestRuntimeType.State.ABANDONING, absolute_minute, &"PATIENCE_EXHAUSTED") + guest_queue_abandoned.emit(guest_id, facility_id, request_id) + last_error = "" + return {&"ok": true, &"abandoned": true, &"patience_remaining": 0} + + +func begin_service( + guest_id: StringName, + facility_id: StringName, + service_id: StringName, + absolute_minute: int +) -> Dictionary: + var guest := get_guest(guest_id) + if guest == null or facility_id.is_empty() or service_id.is_empty(): + return _error_result("Guest, facility and service are required.") + if not _transition_is_available(guest, GuestRuntimeType.State.RECEIVING_SERVICE, absolute_minute): + return _error_result("Guest cannot begin service in this tick.") + guest.target_facility_id = facility_id + guest.current_service_id = service_id + guest.queue_request_id = &"" + _apply_transition(guest, GuestRuntimeType.State.RECEIVING_SERVICE, absolute_minute, &"SERVICE_STARTED") + last_error = "" + return {&"ok": true, &"service_id": service_id} + + +func interrupt_service( + guest_id: StringName, + service_id: StringName, + absolute_minute: int, + interrupt_callback: Callable = Callable() +) -> Dictionary: + var guest := get_guest(guest_id) + if guest == null or service_id.is_empty(): + return _error_result("Guest and service are required.") + if guest.interrupted_service_ids.has(service_id): + return {&"ok": true, &"replayed": true, &"service_id": service_id} + if guest.current_service_id != service_id: + return _error_result("Guest is not receiving the specified service.") + if not _transition_is_available(guest, GuestRuntimeType.State.INTERRUPTED, absolute_minute): + return _error_result("Guest cannot enter INTERRUPTED in this tick.") + if interrupt_callback.is_valid(): + var external_result: Variant = interrupt_callback.call(guest_id, service_id) + if not _callback_succeeded(external_result): + return _error_result("Service interruption callback failed.") + guest.interrupted_service_ids.append(service_id) + guest.interrupted_service_ids.sort_custom( + func(a: StringName, b: StringName) -> bool: return String(a) < String(b) + ) + guest.current_service_id = &"" + _apply_transition(guest, GuestRuntimeType.State.INTERRUPTED, absolute_minute, &"FACILITY_STOPPED") + last_error = "" + return {&"ok": true, &"replayed": false, &"service_id": service_id} + + +func complete_service( + guest_id: StringName, + service_id: StringName, + absolute_minute: int, + satisfaction_sample: int, + need_effects: Dictionary = {} +) -> Dictionary: + var guest := get_guest(guest_id) + if guest == null or guest.current_service_id != service_id: + return _error_result("Guest is not receiving the specified service.") + var normalized_effects: Variant = _normalized_partial_need_map(need_effects) + if not normalized_effects is Dictionary: + return _error_result("Service Need effects must use canonical integer Need IDs.") + if not _transition_is_available(guest, GuestRuntimeType.State.DECIDING, absolute_minute): + return _error_result("Guest cannot complete service in this tick.") + var sample := clampi(satisfaction_sample, 0, 100) + guest.satisfaction_total += sample + guest.satisfaction_samples += 1 + for need_id: StringName in NEED_IDS: + var effect := int(normalized_effects.get(need_id, 0)) + guest.needs[need_id] = clampi(int(guest.needs[need_id]) + effect, 0, 100) + if not guest.target_facility_id.is_empty() \ + and not guest.visited_facility_ids.has(guest.target_facility_id): + guest.visited_facility_ids.append(guest.target_facility_id) + guest.visited_facility_ids.sort_custom( + func(a: StringName, b: StringName) -> bool: return String(a) < String(b) + ) + guest.current_service_id = &"" + guest.queue_request_id = &"" + guest.target_facility_id = &"" + _apply_transition(guest, GuestRuntimeType.State.DECIDING, absolute_minute, &"SERVICE_COMPLETED") + last_error = "" + return {&"ok": true, &"satisfaction_sample": sample} + + +func record_path_failure( + guest_id: StringName, + absolute_minute: int, + recovery_targets: Array = [], + reachability_callback: Callable = Callable() +) -> Dictionary: + var guest := get_guest(guest_id) + if guest == null: + return _error_result("Unknown guest: %s" % guest_id) + guest.path_failure_count += 1 + if guest.path_failure_count < PATH_FAILURE_LIMIT: + if guest.state != GuestRuntimeType.State.REPLANNING: + var transition := transition_guest( + guest_id, + GuestRuntimeType.State.REPLANNING, + absolute_minute, + &"PATH_INVALID" + ) + if not bool(transition.get(&"ok", false)): + return transition + last_error = "" + return { + &"ok": true, + &"recovery_started": false, + &"failure_count": guest.path_failure_count, + } + + var selected := _select_recovery_target(guest, recovery_targets, reachability_callback) + if selected.is_empty(): + ## A virtual emergency egress is preferable to leaving an entity stranded. + selected = { + &"kind": &"emergency_despawn", + &"cell": guest.current_cell, + &"path_handle": {&"virtual_evacuation": true}, + } + if not _transition_is_available(guest, GuestRuntimeType.State.LEAVING, absolute_minute): + return _error_result("Guest cannot enter safe recovery in this tick.") + guest.recovery_kind = StringName(_value(selected, &"kind", &"emergency_exit")) + guest.recovery_target_cell = _vector3i(_value(selected, &"cell", guest.current_cell)) + guest.path_handle = _copy(_value(selected, &"path_handle", { + &"recovery": true, + &"target_cell": guest.recovery_target_cell, + })) + guest.target_facility_id = &"" + guest.queue_request_id = &"" + guest.current_service_id = &"" + guest.exit_reason = &"PATH_RECOVERY" + _apply_transition(guest, GuestRuntimeType.State.LEAVING, absolute_minute, &"PATH_FAILURE_LIMIT") + _diagnostics.append({ + &"code": &"GUEST_PATH_RECOVERY", + &"guest_id": String(guest_id), + &"minute": absolute_minute, + &"failure_count": guest.path_failure_count, + &"recovery_kind": String(guest.recovery_kind), + &"target_cell": _cell_to_array(guest.recovery_target_cell), + }) + guest_recovery_started.emit(guest_id, guest.recovery_kind, guest.recovery_target_cell) + last_error = "" + return { + &"ok": true, + &"recovery_started": true, + &"failure_count": guest.path_failure_count, + &"recovery_kind": guest.recovery_kind, + &"target_cell": guest.recovery_target_cell, + } + + +func record_path_success(guest_id: StringName, cell: Vector3i, absolute_minute: int) -> bool: + var guest := get_guest(guest_id) + if guest == null or absolute_minute < 0: + return _fail("A valid guest and minute are required.") + guest.current_cell = cell + guest.last_progress_cell = cell + guest.last_progress_at = absolute_minute + guest.path_failure_count = 0 + guest.recovery_kind = &"" + last_error = "" + return true + + +func note_movement( + guest_id: StringName, + cell: Vector3i, + absolute_minute: int, + recovery_targets: Array = [], + reachability_callback: Callable = Callable() +) -> Dictionary: + var guest := get_guest(guest_id) + if guest == null: + return _error_result("Unknown guest: %s" % guest_id) + if cell != guest.last_progress_cell: + record_path_success(guest_id, cell, absolute_minute) + return {&"ok": true, &"progressed": true, &"replanned": false} + guest.current_cell = cell + if absolute_minute - guest.last_progress_at < STUCK_REPLAN_MINUTES: + return {&"ok": true, &"progressed": false, &"replanned": false} + guest.last_progress_at = absolute_minute + var result := record_path_failure( + guest_id, + absolute_minute, + recovery_targets, + reachability_callback + ) + result[&"progressed"] = false + result[&"replanned"] = true + return result + + +func begin_leaving( + guest_id: StringName, + absolute_minute: int, + reason: StringName +) -> Dictionary: + var guest := get_guest(guest_id) + if guest == null: + return _error_result("Unknown guest: %s" % guest_id) + if not _transition_is_available(guest, GuestRuntimeType.State.LEAVING, absolute_minute): + return _error_result("Guest cannot begin leaving in this tick.") + guest.target_facility_id = &"" + guest.queue_request_id = &"" + guest.current_service_id = &"" + guest.exit_reason = reason + _apply_transition(guest, GuestRuntimeType.State.LEAVING, absolute_minute, reason) + last_error = "" + return {&"ok": true} + + +func despawn_guest(guest_id: StringName, absolute_minute: int) -> Dictionary: + var guest := get_guest(guest_id) + if guest == null: + return _error_result("Unknown guest: %s" % guest_id) + if guest.state != GuestRuntimeType.State.LEAVING \ + and guest.state != GuestRuntimeType.State.DESPAWNING: + return _error_result("Only a leaving guest can despawn.") + if guest.state != GuestRuntimeType.State.DESPAWNING: + if not _transition_is_available(guest, GuestRuntimeType.State.DESPAWNING, absolute_minute): + return _error_result("Guest cannot enter DESPAWNING in this tick.") + _apply_transition(guest, GuestRuntimeType.State.DESPAWNING, absolute_minute, &"EXIT_REACHED") + var record := { + &"guest_id": String(guest.guest_id), + &"guest_type_id": String(guest.guest_type_id), + &"debt_gold": guest.debt_gold, + &"unresolved_incident_ids": _names_to_strings(guest.unresolved_incident_ids), + &"outstanding_reservation_ids": _names_to_strings(guest.outstanding_reservation_ids), + } + _persistent_records[guest_id] = record + _guests.erase(guest_id) + _pending_spawn_notifications.erase(guest_id) + _guest_order_dirty = true + _decision_rejections.erase(guest_id) + guest_despawned.emit(guest_id, record.duplicate(true)) + last_error = "" + return {&"ok": true, &"persistent_record": record.duplicate(true)} + + +func create_snapshot() -> Dictionary: + var saved_definitions: Array[Dictionary] = [] + for guest_type_id: StringName in _sorted_ids(_definitions.keys()): + saved_definitions.append((_definitions[guest_type_id] as GuestDefinition).create_snapshot()) + var saved_guests: Array[Dictionary] = [] + for guest_id: StringName in _ordered_guest_ids(): + saved_guests.append((_guests[guest_id] as GuestRuntime).create_snapshot()) + var saved_records: Array[Dictionary] = [] + for guest_id: StringName in _sorted_ids(_persistent_records.keys()): + saved_records.append((_persistent_records[guest_id] as Dictionary).duplicate(true)) + return { + &"version": SNAPSHOT_VERSION, + &"current_minute": current_minute, + &"definitions": saved_definitions, + &"guests": saved_guests, + &"persistent_records": saved_records, + &"diagnostics": _diagnostics.duplicate(true), + } + + +func restore_snapshot(snapshot: Dictionary) -> bool: + var raw_version: Variant = snapshot.get(&"version", snapshot.get("version", null)) + if not raw_version is int or int(raw_version) not in [1, SNAPSHOT_VERSION]: + return _fail("Unsupported GuestService snapshot version.") + var prepared: Variant = snapshot.duplicate(true) + if int(raw_version) == 1: + prepared = _migrate_v1_snapshot(snapshot) + if not prepared is Dictionary: + return _fail("GuestService v1 Need schema is invalid or mixed.") + var candidate: Dictionary = prepared + if not candidate.get(&"definitions", null) is Array \ + or not candidate.get(&"guests", null) is Array \ + or not candidate.get(&"persistent_records", null) is Array \ + or not candidate.get(&"diagnostics", null) is Array: + return _fail("GuestService snapshot arrays are missing.") + var next_minute := int(candidate.get(&"current_minute", -2)) + if next_minute < -1: + return _fail("GuestService snapshot minute is invalid.") + + ## Parse into temporary containers. Live state is replaced only after every + ## cross-reference and invariant has been validated. + var next_definitions: Dictionary = {} + for raw_definition: Variant in candidate[&"definitions"]: + if not raw_definition is Dictionary: + return _fail("Guest definition snapshot has an invalid type.") + var definition := GuestDefinitionType.from_snapshot(raw_definition) + if definition == null or next_definitions.has(definition.guest_type_id): + return _fail("Guest definition snapshot is invalid or duplicated.") + next_definitions[definition.guest_type_id] = definition + + var next_guests: Dictionary = {} + for raw_guest: Variant in candidate[&"guests"]: + if not raw_guest is Dictionary: + return _fail("Guest runtime snapshot has an invalid type.") + var guest := GuestRuntimeType.from_snapshot(raw_guest) + if guest == null or next_guests.has(guest.guest_id): + return _fail("Guest runtime snapshot is invalid or duplicated.") + if not next_definitions.has(guest.guest_type_id): + return _fail("Guest runtime snapshot references an unknown definition.") + next_guests[guest.guest_id] = guest + + var next_records: Dictionary = {} + for raw_record: Variant in candidate[&"persistent_records"]: + if not raw_record is Dictionary or not _persistent_record_is_valid(raw_record): + return _fail("Persistent guest record is invalid.") + var record_id := StringName(raw_record.get(&"guest_id", "")) + if next_records.has(record_id) or next_guests.has(record_id): + return _fail("Persistent guest id is duplicated or still active.") + next_records[record_id] = raw_record.duplicate(true) + + var next_diagnostics: Array[Dictionary] = [] + for raw_diagnostic: Variant in candidate[&"diagnostics"]: + if not raw_diagnostic is Dictionary: + return _fail("Guest diagnostic snapshot has an invalid type.") + next_diagnostics.append(raw_diagnostic.duplicate(true)) + + _definitions = next_definitions + _guests = next_guests + _guest_order_dirty = true + _persistent_records = next_records + _decision_rejections = {} + _diagnostics = next_diagnostics + _pending_spawn_notifications.clear() + _external_mutation_blocked = false + current_minute = next_minute + last_error = "" + return true + + +func validate_invariants() -> Dictionary: + var errors: Array[String] = [] + for guest_type_id: StringName in _sorted_ids(_definitions.keys()): + var definition: GuestDefinition = _definitions[guest_type_id] + if not definition.is_valid() or definition.guest_type_id != guest_type_id: + errors.append("Invalid definition: %s" % guest_type_id) + for guest_id: StringName in _sorted_ids(_guests.keys()): + var guest: GuestRuntime = _guests[guest_id] + if not guest.is_valid() or guest.guest_id != guest_id: + errors.append("Invalid runtime: %s" % guest_id) + elif not _definitions.has(guest.guest_type_id): + errors.append("Unknown guest type for: %s" % guest_id) + if _persistent_records.has(guest_id): + errors.append("Guest is both active and persisted: %s" % guest_id) + for guest_id: StringName in _sorted_ids(_persistent_records.keys()): + if not _persistent_record_is_valid(_persistent_records[guest_id]): + errors.append("Invalid persistent record: %s" % guest_id) + return {&"valid": errors.is_empty(), &"errors": errors} + + +func _migrate_v1_snapshot(snapshot: Dictionary) -> Variant: + var definitions: Variant = snapshot.get(&"definitions", snapshot.get("definitions", null)) + var guests: Variant = snapshot.get(&"guests", snapshot.get("guests", null)) + if not definitions is Array or not guests is Array: + return null + var migrated := snapshot.duplicate(true) + for index: int in range(definitions.size()): + var raw_definition: Variant = definitions[index] + if not raw_definition is Dictionary: + return null + var translated_rates: Variant = _translate_v1_need_map( + _value(raw_definition, &"need_rates", null) + ) + if not translated_rates is Dictionary: + return null + migrated[&"definitions"][index][&"need_rates"] = translated_rates + for index: int in range(guests.size()): + var raw_guest: Variant = guests[index] + if not raw_guest is Dictionary: + return null + var translated_needs: Variant = _translate_v1_need_map( + _value(raw_guest, &"needs", null) + ) + if not translated_needs is Dictionary: + return null + migrated[&"guests"][index][&"needs"] = translated_needs + migrated[&"version"] = SNAPSHOT_VERSION + return migrated + + +static func _translate_v1_need_map(source: Variant) -> Variant: + if not source is Dictionary or source.size() != LEGACY_NEED_IDS.size(): + return null + var legacy: Dictionary = {} + for raw_key: Variant in source: + if not raw_key is String and not raw_key is StringName: + return null + var legacy_id := StringName(raw_key) + if not LEGACY_NEED_IDS.has(legacy_id) or legacy.has(legacy_id): + return null + var raw_value: Variant = source[raw_key] + if not raw_value is int: + return null + legacy[legacy_id] = raw_value + if legacy.size() != LEGACY_NEED_IDS.size(): + return null + return { + &"hunger": legacy[&"hunger"], + &"sleep": legacy[&"rest"], + &"hygiene": 0, + &"medical": legacy[&"safety"], + &"leisure": legacy[&"fun"], + &"intimacy": legacy[&"social"], + } + + +func _need_context_error(context: Dictionary) -> String: + for field_id: StringName in [ + &"dirt", + &"injury", + &"illness", + &"intimacy_day", + &"intimacy_night", + ]: + if not _has_value(context, field_id): + continue + var raw_value: Variant = _value(context, field_id, null) + if not raw_value is int or int(raw_value) < 0 or int(raw_value) > 100: + return "%s must be an integer from 0 through 100." % field_id + for field_id: StringName in [&"is_night", &"work_like_activity", &"unstimulated"]: + if _has_value(context, field_id) and not _value(context, field_id, null) is bool: + return "%s must be boolean." % field_id + if _has_value(context, &"need_effects"): + var effects: Variant = _normalized_partial_need_map( + _value(context, &"need_effects", null) + ) + if not effects is Dictionary: + return "need_effects must contain only canonical integer Need IDs." + return "" + + +static func _normalized_partial_need_map(source: Variant) -> Variant: + if not source is Dictionary or source.size() > NEED_IDS.size(): + return null + var result: Dictionary = {} + for raw_key: Variant in source: + if not raw_key is String and not raw_key is StringName: + return null + var need_id := StringName(raw_key) + if not NEED_IDS.has(need_id) or result.has(need_id): + return null + var raw_value: Variant = source[raw_key] + if not raw_value is int: + return null + result[need_id] = raw_value + return result + + +static func _candidate_need_maps_are_valid(candidate: Dictionary) -> bool: + for field_id: StringName in [&"need_relief", &"need_effects"]: + if not _has_value(candidate, field_id): + continue + var raw_value: Variant = _value(candidate, field_id, null) + if field_id == &"need_relief" and raw_value is int: + continue + if not _normalized_partial_need_map(raw_value) is Dictionary: + return false + return true + + +func _candidate_rejection_reason( + guest: GuestRuntime, + definition: GuestDefinition, + candidate: Dictionary, + context: Dictionary +) -> StringName: + if not _candidate_need_maps_are_valid(candidate): + return &"INVALID_NEED_MAP" + if not bool(_value(candidate, &"inputs_available", true)): + return &"MISSING_INPUTS" + var adult_only := bool(_value( + candidate, + &"adult_only", + _value(candidate, &"requires_adult_verified", false) + )) + if adult_only: + if not definition.adult_verified: + return &"ADULT_NOT_VERIFIED" + if not bool(_value(context, &"adult_content_enabled", true)): + return &"CONTENT_FILTERED" + var required_tags := _name_array(_value(candidate, &"required_guest_tags", [])) + for tag: StringName in required_tags: + if not definition.tags.has(tag): + return &"MISSING_PERMISSION" + var forbidden_tags := _name_array(_value(candidate, &"forbidden_guest_tags", [])) + for tag: StringName in forbidden_tags: + if definition.tags.has(tag): + return &"FORBIDDEN_GUEST_TAG" + var allowed_types := _name_array(_value(candidate, &"allowed_guest_types", [])) + if not allowed_types.is_empty() and not allowed_types.has(guest.guest_type_id): + return &"GUEST_TYPE_NOT_ALLOWED" + if not bool(_value(candidate, &"is_open", _value(candidate, &"open", true))) \ + and not bool(_value(candidate, &"open_at_arrival", false)): + return &"FACILITY_CLOSED" + if not _candidate_is_reachable(guest, candidate, context): + return &"UNREACHABLE" + var travel_minutes := maxi(int(_value(candidate, &"travel_minutes", 0)), 0) + var decision_minute := int(_value(context, &"absolute_minute", current_minute)) + if decision_minute >= 0 and decision_minute + travel_minutes > guest.planned_exit_at: + return &"ETA_AFTER_EXIT" + if not _candidate_is_affordable(guest, definition, candidate): + return &"CANNOT_PAY" + var wait_minutes := maxi(int(_value( + candidate, + &"wait_minutes", + _value(candidate, &"expected_wait", 0) + )), 0) + var hard_limit := maxi(int(_value( + candidate, + &"wait_hard_limit", + _value(context, &"wait_hard_limit", DEFAULT_WAIT_HARD_LIMIT) + )), 0) + if wait_minutes >= hard_limit: + return &"WAIT_HARD_LIMIT" + var risk_level := clampi(int(_value(candidate, &"risk_level", _value(candidate, &"risk", 0))), 0, 100) + if risk_level > definition.risk_tolerance: + return &"RISK_REFUSED" + var illegal_level := clampi(int(_value(candidate, &"illegal_level", 0)), 0, 100) + if illegal_level > 100 - definition.legal_sensitivity \ + and not bool(_value(candidate, &"legal_permission_override", false)): + return &"ILLEGALITY_REFUSED" + var quality := clampi(int(_value(candidate, &"expected_quality", _value(candidate, &"quality", 0))), 0, 100) + var minimum_quality := clampi(int(_value(candidate, &"minimum_quality", definition.minimum_quality)), 0, 100) + if quality < minimum_quality: + return &"QUALITY_TOO_LOW" + return &"" + + +func _candidate_is_reachable( + guest: GuestRuntime, + candidate: Dictionary, + context: Dictionary +) -> bool: + var callback: Callable = _value(context, &"reachability_callback", Callable()) + if callback.is_valid(): + return _callback_succeeded(callback.call(guest, candidate.duplicate(true), context)) + return bool(_value(candidate, &"reachable", true)) + + +func _candidate_is_affordable( + guest: GuestRuntime, + definition: GuestDefinition, + candidate: Dictionary +) -> bool: + var price := _candidate_price(candidate) + var cash_available := guest.wallet_gold + var respect_reserve := bool(_value( + candidate, + &"respect_survival_reserve", + _candidate_is_discretionary(candidate) + )) + if respect_reserve: + cash_available = maxi(cash_available - _survival_reserve(guest, definition), 0) + if price <= cash_available: + return true + if not bool(_value(candidate, &"credit_allowed", _value(candidate, &"allow_credit", false))): + return false + var remaining_credit := maxi(guest.credit_limit_gold - guest.debt_gold, 0) + return price - cash_available <= remaining_credit + + +func _candidate_is_discretionary(candidate: Dictionary) -> bool: + if bool(_value(candidate, &"discretionary", false)): + return true + var category := StringName(_value(candidate, &"service_category", &"")) + if category in [&"leisure", &"entertainment", &"gambling", &"intimacy", &"tourism"]: + return true + var facility_tags := _name_array(_value( + candidate, + &"facility_tags", + _value(candidate, &"tags", []) + )) + for tag: StringName in [&"leisure", &"entertainment", &"gambling", &"adult", &"intimacy"]: + if facility_tags.has(tag): + return true + return false + + +func _survival_reserve(guest: GuestRuntime, definition: GuestDefinition) -> int: + if guest.max_addiction() >= 75: + return 0 + if definition.tags.has(&"spendthrift"): + return guest.wallet_gold / 10 + if definition.tags.has(&"frugal"): + return guest.wallet_gold / 2 + return guest.wallet_gold * 3 / 10 + + +func _candidate_price(candidate: Dictionary) -> int: + return maxi(int(_value( + candidate, + &"estimated_total_gold", + _value(candidate, &"price_gold", _value(candidate, &"quoted_price", 0)) + )), 0) + + +func _price_burden(guest: GuestRuntime, candidate: Dictionary) -> int: + var price := _candidate_price(candidate) + var purchasing_power := maxi(guest.wallet_gold + maxi(guest.credit_limit_gold - guest.debt_gold, 0), 1) + return clampi((price * 100 + purchasing_power - 1) / purchasing_power, 0, 100) + + +func _need_relief(guest: GuestRuntime, candidate: Dictionary) -> int: + var raw_relief: Variant = _value(candidate, &"need_relief", 0) + if raw_relief is int: + return maxi(int(raw_relief), 0) + if not raw_relief is Dictionary: + return 0 + var normalized: Dictionary = _normalized_partial_need_map(raw_relief) + var best := 0 + for need_id: StringName in NEED_IDS: + var relief := maxi(int(normalized.get(need_id, 0)), 0) + best = maxi(best, relief * int(guest.needs[need_id]) / 100) + return best + + +func _candidate_urgency(guest: GuestRuntime, candidate: Dictionary) -> int: + var raw_relief: Variant = _value(candidate, &"need_relief", {}) + if not raw_relief is Dictionary: + return 0 + var normalized: Dictionary = _normalized_partial_need_map(raw_relief) + var result := 0 + for need_id: StringName in NEED_IDS: + if int(normalized.get(need_id, 0)) > 0: + result = maxi(result, int(guest.needs[need_id])) + return result + + +func _primary_need_priority(guest: GuestRuntime, candidate: Dictionary) -> int: + var relief: Variant = _value(candidate, &"need_relief", {}) + if not relief is Dictionary: + return 0 + var normalized: Dictionary = _normalized_partial_need_map(relief) + var priority := 0 + for need: StringName in PRIMARY_NEEDS: + if int(normalized.get(need, 0)) > 0: + priority = maxi(priority, int(guest.needs[need])) + return priority + + +func get_observation(guest_id: StringName) -> Dictionary: + var guest := get_guest(guest_id) + if guest == null: + return {} + var highest := 0 + var primary: Array[StringName] = [] + for need: StringName in PRIMARY_NEEDS: + var value := int(guest.needs[need]) + if value > highest: + highest = value + primary.clear() + if value == highest and value > 0: + primary.append(need) + var observed_needs: Dictionary = {} + for need: StringName in NEED_IDS: + observed_needs[need] = guest.needs[need] + return {&"guest_id": guest.guest_id, &"state": guest.state, &"needs": observed_needs, + &"primary_needs": primary, &"target_facility_id": guest.target_facility_id, + &"wallet_gold": guest.wallet_gold, &"patience": guest.patience_remaining} + + +func _candidate_precedes(a: Dictionary, b: Dictionary) -> bool: + var a_priority := int(a.get(&"need_priority", 0)) + var b_priority := int(b.get(&"need_priority", 0)) + if a_priority != b_priority: + return a_priority > b_priority + var a_utility := int(a[&"utility"]) + var b_utility := int(b[&"utility"]) + if a_utility != b_utility: + return a_utility > b_utility + var a_urgency := int(a[&"urgency"]) + var b_urgency := int(b[&"urgency"]) + if a_urgency != b_urgency: + return a_urgency > b_urgency + var a_travel := int(a[&"travel_minutes"]) + var b_travel := int(b[&"travel_minutes"]) + if a_travel != b_travel: + return a_travel < b_travel + return String(a[&"facility_id"]) < String(b[&"facility_id"]) + + +func _select_recovery_target( + guest: GuestRuntime, + targets: Array, + reachability_callback: Callable +) -> Dictionary: + var ordered: Array[Dictionary] = [] + for raw_target: Variant in targets: + if raw_target is Dictionary: + var target: Dictionary = raw_target.duplicate(true) + target[&"kind"] = StringName(_value(target, &"kind", &"emergency_exit")) + target[&"cell"] = _vector3i(_value(target, &"cell", guest.current_cell)) + ordered.append(target) + ordered.sort_custom( + func(a: Dictionary, b: Dictionary) -> bool: + var a_priority := _recovery_priority(StringName(a[&"kind"])) + var b_priority := _recovery_priority(StringName(b[&"kind"])) + if a_priority != b_priority: + return a_priority < b_priority + return _cell_precedes(a[&"cell"], b[&"cell"]) + ) + for target: Dictionary in ordered: + var reachable := bool(_value(target, &"reachable", true)) + if reachability_callback.is_valid(): + reachable = _callback_succeeded(reachability_callback.call( + guest.current_cell, + target[&"cell"], + guest.guest_id, + target.duplicate(true) + )) + if reachable: + return target + return {} + + +func _recovery_priority(kind: StringName) -> int: + match kind: + &"guidance", &"guidance_point": + return 0 + &"entrance", &"main_entrance": + return 1 + &"emergency_exit", &"emergency_egress": + return 2 + _: + return 3 + + +func _transition_is_available(guest: GuestRuntime, new_state: int, minute: int) -> bool: + if minute < 0 or not _is_allowed_transition(guest.state, new_state): + return false + var count := guest.transitions_this_tick if guest.transition_tick == minute else 0 + return count < MAX_TRANSITIONS_PER_TICK + + +func _apply_transition( + guest: GuestRuntime, + new_state: int, + absolute_minute: int, + reason: StringName +) -> void: + var old_state := guest.state + if guest.transition_tick != absolute_minute: + guest.transition_tick = absolute_minute + guest.transitions_this_tick = 0 + guest.transitions_this_tick += 1 + guest.state = new_state as GuestRuntime.State + guest.state_entered_at = absolute_minute + guest_state_changed.emit(guest.guest_id, old_state, new_state, reason) + + +func _force_loop_guard(guest: GuestRuntime, absolute_minute: int) -> void: + var old_state := guest.state + guest.state = GuestRuntimeType.State.DECIDING + guest.state_entered_at = absolute_minute + guest.transition_tick = absolute_minute + guest.transitions_this_tick = MAX_TRANSITIONS_PER_TICK + guest.target_facility_id = &"" + guest.queue_request_id = &"" + guest.current_service_id = &"" + guest.path_handle = null + _diagnostics.append({ + &"code": &"AI_LOOP_GUARD", + &"guest_id": String(guest.guest_id), + &"minute": absolute_minute, + }) + guest_state_changed.emit( + guest.guest_id, + old_state, + GuestRuntimeType.State.DECIDING, + &"AI_LOOP_GUARD" + ) + + +func _is_allowed_transition(from_state: int, to_state: int) -> bool: + if from_state == to_state: + return true + if to_state in [ + GuestRuntimeType.State.LEAVING, + GuestRuntimeType.State.FLEEING, + GuestRuntimeType.State.INCAPACITATED, + ]: + return from_state != GuestRuntimeType.State.DESPAWNING + match from_state: + GuestRuntimeType.State.SPAWNING: + return to_state in [GuestRuntimeType.State.ENTERING, GuestRuntimeType.State.DECIDING] + GuestRuntimeType.State.ENTERING: + return to_state in [GuestRuntimeType.State.DECIDING, GuestRuntimeType.State.MOVING] + GuestRuntimeType.State.DECIDING: + return to_state in [GuestRuntimeType.State.MOVING, GuestRuntimeType.State.QUEUING] + GuestRuntimeType.State.MOVING: + return to_state in [ + GuestRuntimeType.State.QUEUING, + GuestRuntimeType.State.RECEIVING_SERVICE, + GuestRuntimeType.State.DECIDING, + GuestRuntimeType.State.REPLANNING, + ] + GuestRuntimeType.State.QUEUING: + return to_state in [ + GuestRuntimeType.State.RECEIVING_SERVICE, + GuestRuntimeType.State.ABANDONING, + GuestRuntimeType.State.DECIDING, + ] + GuestRuntimeType.State.RECEIVING_SERVICE: + return to_state in [GuestRuntimeType.State.DECIDING, GuestRuntimeType.State.INTERRUPTED] + GuestRuntimeType.State.REPLANNING: + return to_state in [GuestRuntimeType.State.MOVING, GuestRuntimeType.State.DECIDING] + GuestRuntimeType.State.ABANDONING, GuestRuntimeType.State.INTERRUPTED: + return to_state == GuestRuntimeType.State.DECIDING + GuestRuntimeType.State.FLEEING: + return to_state in [GuestRuntimeType.State.LEAVING, GuestRuntimeType.State.DESPAWNING] + GuestRuntimeType.State.LEAVING: + return to_state == GuestRuntimeType.State.DESPAWNING + _: + return false + + +static func _callback_succeeded(result: Variant) -> bool: + if result == null: + return true + if result is bool: + return result + if result is Dictionary: + return bool(result.get(&"ok", result.get("ok", result.get(&"success", result.get("success", false))))) + if result is Object and result.has_method("is_success"): + return bool(result.call("is_success")) + return false + + +static func _persistent_record_is_valid(record: Dictionary) -> bool: + if StringName(record.get(&"guest_id", "")).is_empty(): + return false + if StringName(record.get(&"guest_type_id", "")).is_empty(): + return false + if int(record.get(&"debt_gold", -1)) < 0: + return false + return record.get(&"unresolved_incident_ids", null) is Array \ + and record.get(&"outstanding_reservation_ids", null) is Array + + +static func _facility_id(candidate: Dictionary) -> StringName: + return StringName(_value( + candidate, + &"facility_id", + _value(candidate, &"instance_id", &"") + )) + + +static func _name_array(source: Variant) -> Array[StringName]: + var result: Array[StringName] = [] + if not source is Array: + return result + for raw_value: Variant in source: + var value := StringName(raw_value) + if not value.is_empty() and not result.has(value): + result.append(value) + result.sort_custom(func(a: StringName, b: StringName) -> bool: return String(a) < String(b)) + return result + + +static func _sorted_ids(source: Array) -> Array[StringName]: + var result: Array[StringName] = [] + for raw_value: Variant in source: + result.append(StringName(raw_value)) + result.sort_custom(func(a: StringName, b: StringName) -> bool: return String(a) < String(b)) + return result + + +func _ordered_guest_ids() -> Array[StringName]: + if _guest_order_dirty: + _sorted_guest_ids_cache = _sorted_ids(_guests.keys()) + _guest_order_dirty = false + return _sorted_guest_ids_cache + + +static func _value(source: Dictionary, key: StringName, fallback: Variant) -> Variant: + if source.has(key): + return source[key] + var string_key := String(key) + return source[string_key] if source.has(string_key) else fallback + + +static func _has_value(source: Dictionary, key: StringName) -> bool: + return source.has(key) or source.has(String(key)) + + +static func _need_report(values: Dictionary) -> Dictionary: + # Matches _string_key_dictionary's canonical lexical key order without + # allocating and sorting a six-key array for every guest and minute. + return { + "hunger": int(values[&"hunger"]), + "hygiene": int(values[&"hygiene"]), + "intimacy": int(values[&"intimacy"]), + "leisure": int(values[&"leisure"]), + "medical": int(values[&"medical"]), + "sleep": int(values[&"sleep"]), + } + + +static func _copy(value: Variant) -> Variant: + if value is Array or value is Dictionary: + return value.duplicate(true) + return value + + +static func _vector3i(value: Variant) -> Vector3i: + if value is Vector3i: + return value + if value is Array and value.size() == 3: + return Vector3i(int(value[0]), int(value[1]), int(value[2])) + return Vector3i.ZERO + + +static func _cell_to_array(cell: Vector3i) -> Array[int]: + return [cell.x, cell.y, cell.z] + + +static func _cell_precedes(a: Vector3i, b: Vector3i) -> bool: + if a.z != b.z: + return a.z < b.z + if a.y != b.y: + return a.y < b.y + return a.x < b.x + + +static func _names_to_strings(source: Array[StringName]) -> Array[String]: + var result: Array[String] = [] + for value: StringName in source: + result.append(String(value)) + return result + + +static func _string_key_dictionary(source: Dictionary) -> Dictionary: + var result: Dictionary = {} + var keys: Array = source.keys() + keys.sort_custom(func(a: Variant, b: Variant) -> bool: return String(a) < String(b)) + for raw_key: Variant in keys: + result[String(raw_key)] = source[raw_key] + return result + + +func _fail(message: String) -> bool: + last_error = message + return false + + +func _error_result(message: String) -> Dictionary: + last_error = message + return {&"ok": false, &"error": message} + +# Private diagnostic only; never serialized. +var _p23r311_metrics: Dictionary = {} + +func extract_candidates( + guest_id: StringName, + facilities: Array, + context: Dictionary = {} +) -> Array[Dictionary]: + var p23_started: int = Time.get_ticks_usec() + var p23_result: Array[Dictionary] = _p23r311_originalextract_candidates(guest_id, facilities, context) + var p23_elapsed: int = Time.get_ticks_usec() - p23_started + var p23_key: String = "extract_candidates" + var p23_row: Dictionary = _p23r311_metrics.get(p23_key, {"calls":0, "inclusive_us":0, "max_us":0}) + p23_row["calls"] = int(p23_row["calls"]) + 1 + p23_row["inclusive_us"] = int(p23_row["inclusive_us"]) + p23_elapsed + p23_row["max_us"] = maxi(int(p23_row["max_us"]), p23_elapsed) + _p23r311_metrics[p23_key] = p23_row + return p23_result + +func rank_candidates(guest_id: StringName, candidates: Array) -> Array[Dictionary]: + var p23_started: int = Time.get_ticks_usec() + var p23_result: Array[Dictionary] = _p23r311_originalrank_candidates(guest_id, candidates) + var p23_elapsed: int = Time.get_ticks_usec() - p23_started + var p23_key: String = "rank_candidates" + var p23_row: Dictionary = _p23r311_metrics.get(p23_key, {"calls":0, "inclusive_us":0, "max_us":0}) + p23_row["calls"] = int(p23_row["calls"]) + 1 + p23_row["inclusive_us"] = int(p23_row["inclusive_us"]) + p23_elapsed + p23_row["max_us"] = maxi(int(p23_row["max_us"]), p23_elapsed) + _p23r311_metrics[p23_key] = p23_row + return p23_result + +func evaluate_candidate(guest_id: StringName, candidate: Dictionary) -> Dictionary: + var p23_started: int = Time.get_ticks_usec() + var p23_result: Dictionary = _p23r311_originalevaluate_candidate(guest_id, candidate) + var p23_elapsed: int = Time.get_ticks_usec() - p23_started + var p23_key: String = "evaluate_candidate" + var p23_row: Dictionary = _p23r311_metrics.get(p23_key, {"calls":0, "inclusive_us":0, "max_us":0}) + p23_row["calls"] = int(p23_row["calls"]) + 1 + p23_row["inclusive_us"] = int(p23_row["inclusive_us"]) + p23_elapsed + p23_row["max_us"] = maxi(int(p23_row["max_us"]), p23_elapsed) + _p23r311_metrics[p23_key] = p23_row + return p23_result diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/world/path_service.gd.gz b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/world/path_service.gd.gz new file mode 100644 index 0000000..311c7c5 Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/world/path_service.gd.gz differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/manifest.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/manifest.json new file mode 100644 index 0000000..50744cd --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/manifest.json @@ -0,0 +1,468 @@ +{ + "schema": 1, + "unit": "P23-02", + "status": "finite_current_native_diagnostic_and_next_work_contract_only", + "formal_completion_added": 0, + "candidate_implemented": false, + "entries": [ + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json", + "bytes": 39941, + "sha256": "a38dae71afd2b5db0591ecca16b65abc3158f080460e9c0b09a265f339967d09", + "stored_bytes": 39941, + "stored_sha256": "a38dae71afd2b5db0591ecca16b65abc3158f080460e9c0b09a265f339967d09", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json", + "bytes": 25780, + "sha256": "eaadb3792770364bbf7245fb94c43e979c06c3b754f955f1a736e9ab81d2abc9", + "stored_bytes": 25780, + "stored_sha256": "eaadb3792770364bbf7245fb94c43e979c06c3b754f955f1a736e9ab81d2abc9", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json", + "bytes": 23230, + "sha256": "75f9e4e4a4ea9286372ebf0f016e796067c9460e0815e0ef3e24988a702f04d5", + "stored_bytes": 23230, + "stored_sha256": "75f9e4e4a4ea9286372ebf0f016e796067c9460e0815e0ef3e24988a702f04d5", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02.gd", + "bytes": 7578, + "sha256": "a544b96710d6dcc36528a6e2e08d872dda92590651d7ab60cb49372cfbc46b33", + "stored_bytes": 7578, + "stored_sha256": "a544b96710d6dcc36528a6e2e08d872dda92590651d7ab60cb49372cfbc46b33", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02.py", + "bytes": 7321, + "sha256": "fb4dab44a00e7e375532a2c5395850c1324f75aca79ecb79fd6e06277988801a", + "stored_bytes": 7321, + "stored_sha256": "fb4dab44a00e7e375532a2c5395850c1324f75aca79ecb79fd6e06277988801a", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311.gd", + "bytes": 7611, + "sha256": "625e9cfb56464d6f2b2e08966d00d96bfb366062777caea509c7826599833278", + "stored_bytes": 7611, + "stored_sha256": "625e9cfb56464d6f2b2e08966d00d96bfb366062777caea509c7826599833278", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311.py", + "bytes": 7313, + "sha256": "fda8480371c3041e5a583263259998132f7ec70b3f78f850bb32553db5bcaac3", + "stored_bytes": 7313, + "stored_sha256": "fda8480371c3041e5a583263259998132f7ec70b3f78f850bb32553db5bcaac3", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/guarded-r274.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/guarded-r274.gd", + "bytes": 1435, + "sha256": "84c5aca653f1a19217890bc257545d8f5d7a299c9b22c59a677ecdc9b2905bb7", + "stored_bytes": 1435, + "stored_sha256": "84c5aca653f1a19217890bc257545d8f5d7a299c9b22c59a677ecdc9b2905bb7", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/input.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/input.json.gz", + "bytes": 981463, + "sha256": "c32c2f748c6dd91a2d35b2fd747582cd235fbabe0d7417446b8d67d8fb2d6dd5", + "stored_bytes": 228607, + "stored_sha256": "48bdb586a380ed8a847711178040b8dc4ef303daaf740b5560f97ba7317c4419", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/instrumentation.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/instrumentation.json", + "bytes": 46887, + "sha256": "b34033d2bb7f23322c60becda562b22b0fe897bb822f891a910ce87590d134e2", + "stored_bytes": 46887, + "stored_sha256": "b34033d2bb7f23322c60becda562b22b0fe897bb822f891a910ce87590d134e2", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json", + "bytes": 22991, + "sha256": "5373708a07d92323146615deb8663fa9b6e101e28df9821c4e5129312f63b57f", + "stored_bytes": 22991, + "stored_sha256": "5373708a07d92323146615deb8663fa9b6e101e28df9821c4e5129312f63b57f", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/execution.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/execution.json", + "bytes": 12462, + "sha256": "c356c803ebe6320f3f4f9b034c2e796b309e8660151bda489a6a21313196386c", + "stored_bytes": 12462, + "stored_sha256": "c356c803ebe6320f3f4f9b034c2e796b309e8660151bda489a6a21313196386c", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "bytes": 1439, + "sha256": "81c4abc24624a7f68642c5c4e27626f003762c4b52b47e9cb2c566a2e0599045", + "stored_bytes": 1439, + "stored_sha256": "81c4abc24624a7f68642c5c4e27626f003762c4b52b47e9cb2c566a2e0599045", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/input.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/input.json.gz", + "bytes": 982794, + "sha256": "f1550159618411d9461c7ed8ab03e8066eaa5a9a7c683cc3982564a5ef261d16", + "stored_bytes": 228933, + "stored_sha256": "1eb2aa1eb4064d9ef0cd10ac6eb6174662e0377e5b9f48fb5e1c9bd96292d7ea", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json", + "bytes": 4566, + "sha256": "54e2e7aa9c6304b8d1ead5853eb78eafaad4cdeffb2dd3e4784643992a4d319f", + "stored_bytes": 4566, + "stored_sha256": "54e2e7aa9c6304b8d1ead5853eb78eafaad4cdeffb2dd3e4784643992a4d319f", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/preexecution-root-verification.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/preexecution-root-verification.json", + "bytes": 17075, + "sha256": "e31bab0f147236db1e6540751d19ca5029e75f8d03b3929042a9555d9191006f", + "stored_bytes": 17075, + "stored_sha256": "e31bab0f147236db1e6540751d19ca5029e75f8d03b3929042a9555d9191006f", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/adapter-owned-cleanup.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/adapter-owned-cleanup.json", + "bytes": 351, + "sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54", + "stored_bytes": 351, + "stored_sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/ended.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/ended.json", + "bytes": 1782, + "sha256": "772e2819688f9015ff251aba7a808eefc330515b057566af3792a19c76f3d71b", + "stored_bytes": 1782, + "stored_sha256": "772e2819688f9015ff251aba7a808eefc330515b057566af3792a19c76f3d71b", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log", + "bytes": 13481, + "sha256": "abd5468739d8a5be58478e8793c7247dff293c239063d965f888bb0bb4aae112", + "stored_bytes": 13481, + "stored_sha256": "abd5468739d8a5be58478e8793c7247dff293c239063d965f888bb0bb4aae112", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/outer-owned-finally.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/outer-owned-finally.json", + "bytes": 964, + "sha256": "f7fa9a10130aacee3e6f801a2e1cb3a1bb5b6d91ffde88f1ea3b764e1dd347bb", + "stored_bytes": 964, + "stored_sha256": "f7fa9a10130aacee3e6f801a2e1cb3a1bb5b6d91ffde88f1ea3b764e1dd347bb", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/process.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/process.json", + "bytes": 6691, + "sha256": "814b9eaeb258d34eda9d5d9e3b41b560dc4fe3dc1dc4bf12c6f8c49b0e7bde3b", + "stored_bytes": 6691, + "stored_sha256": "814b9eaeb258d34eda9d5d9e3b41b560dc4fe3dc1dc4bf12c6f8c49b0e7bde3b", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/started.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/started.json", + "bytes": 2407, + "sha256": "106918d386dc406070da3a4ef62923abda5f085adf0b3040a0c4b809b7ffda05", + "stored_bytes": 2407, + "stored_sha256": "106918d386dc406070da3a4ef62923abda5f085adf0b3040a0c4b809b7ffda05", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/stderr.log", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stored_bytes": 0, + "stored_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/stdout.log", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/stdout.log", + "bytes": 13631, + "sha256": "084f2763ea5568d13da47b7008824e18ad7251df7f5c0060b60bbafa75fb964a", + "stored_bytes": 13631, + "stored_sha256": "084f2763ea5568d13da47b7008824e18ad7251df7f5c0060b60bbafa75fb964a", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst", + "bytes": 246720, + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880", + "stored_bytes": 246720, + "stored_sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst", + "bytes": 819, + "sha256": "2f2335353deec30ffa934cb7fe2c1002f83ec50edcc325a87543dcd481915639", + "stored_bytes": 819, + "stored_sha256": "2f2335353deec30ffa934cb7fe2c1002f83ec50edcc325a87543dcd481915639", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/report.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/report.json", + "bytes": 1962, + "sha256": "cc170c8dc21900560d12d703dc7035e38012936e64285f2f5a4bd5e96322a8b1", + "stored_bytes": 1962, + "stored_sha256": "cc170c8dc21900560d12d703dc7035e38012936e64285f2f5a4bd5e96322a8b1", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-phase.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-phase.json", + "bytes": 8150, + "sha256": "4024cd99a6811f95e689125250358add350cea21e96d9cececdaa6f4b7d5c6dc", + "stored_bytes": 8150, + "stored_sha256": "4024cd99a6811f95e689125250358add350cea21e96d9cececdaa6f4b7d5c6dc", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-profile.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-profile.json", + "bytes": 907, + "sha256": "c338fd2e8eeb69746719c9a3f67a6cbd847b9667bdc139194e8a2d384cc09d10", + "stored_bytes": 907, + "stored_sha256": "c338fd2e8eeb69746719c9a3f67a6cbd847b9667bdc139194e8a2d384cc09d10", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/IMPLEMENTATION_PLAN.md", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/IMPLEMENTATION_PLAN.md.gz", + "bytes": 493994, + "sha256": "66be3f790b8ad802dbbf83ebe3374648d282df6b742d0962fbd7aff2507c9112", + "stored_bytes": 144443, + "stored_sha256": "eb64e642e121de1aa2ced105863b812112713d392cfa9add71e95d0ddf7b1563", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/PROGRESS_INTEGRATION.md", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/PROGRESS_INTEGRATION.md.gz", + "bytes": 412058, + "sha256": "f74196dbd2a88ce131975d2bea02a339a9077316327d2caa3c0add64460ec31f", + "stored_bytes": 114314, + "stored_sha256": "c59035a0e1e91b610ef0fc169e043a53da6603c87cb59b9dc8772a66fa15d57b", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/progress_snapshot.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/progress_snapshot.json.gz", + "bytes": 576820, + "sha256": "dca289ae7560af4fa5c2da981cd6c760f37930672cc032dfb35c88a49f65a7ea", + "stored_bytes": 105604, + "stored_sha256": "127a61dc6ef5dec04684e6337f8f5047b4af2c329c77bff3af627ade06cef100", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/work_packages.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/work_packages.json.gz", + "bytes": 1203655, + "sha256": "13b5c5dd54cede6de8ff797659a6f931926bb5c0195a2a2a3727f616d65a122c", + "stored_bytes": 207431, + "stored_sha256": "efa63315cada3482034c66f2560fbf8159778868c52fd006d9074caa90a17c33", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/IMPLEMENTATION_PLAN.md", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/IMPLEMENTATION_PLAN.md.gz", + "bytes": 492770, + "sha256": "1dd710cb48626884c5692d230c1ace21291a4107d0148a11f020b6b7bd9c127a", + "stored_bytes": 143934, + "stored_sha256": "c28aac312fd1dca8e7a1637c073411f0999ffe64e0210d28619a0255d1f7f2d4", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/PROGRESS_INTEGRATION.md", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/PROGRESS_INTEGRATION.md.gz", + "bytes": 410834, + "sha256": "c30ce7db6dbe85ac16b551105f239f5657e97e0dca1b293993684b100668c5fa", + "stored_bytes": 113816, + "stored_sha256": "c9aa88a672009783c7986bfab38fbc843ff7ba35ed5c99746e33595222a33149", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/progress_snapshot.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/progress_snapshot.json.gz", + "bytes": 570488, + "sha256": "d7e746554b709b9d8408eee2550ee8a0b9bdb58975797c5cbd05467bdc59dc93", + "stored_bytes": 104596, + "stored_sha256": "be5a4fb6ca0b0902c2253c74b49c808b872908bbb72ceffb70ab2c0f624c9221", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/work_packages.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/work_packages.json.gz", + "bytes": 1198450, + "sha256": "66d0a29d003c7d6a055669df0f79412f3bed09263f540855951251f69609a169", + "stored_bytes": 206070, + "stored_sha256": "483d0ea4846e107a483bc06bdbe32591a1950e93e3bb632ae0d9af1eb396221b", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/input.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/input.json", + "bytes": 12371, + "sha256": "2e5eb38e1657cfc319fb1a012d06355caea9b6a0345022ceb688dd6a7ce27228", + "stored_bytes": 12371, + "stored_sha256": "2e5eb38e1657cfc319fb1a012d06355caea9b6a0345022ceb688dd6a7ce27228", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-r312/execution.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-r312/execution.json.gz", + "bytes": 535261, + "sha256": "2e0b46ef39ee2731d2efcf78fb6ab327140d23a9ca486697ee4273f71198209b", + "stored_bytes": 98800, + "stored_sha256": "5b1aeb2cdddc018f87089ad9b8fa33038e1c017b6c1db82d51bef9559a4ef380", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-r312/plan_validation.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-r312/plan_validation.json", + "bytes": 8285, + "sha256": "056afc7d222a1ad4f6b7d3b550da6f4c84edcdfd2114767ec95758c4815e4f83", + "stored_bytes": 8285, + "stored_sha256": "056afc7d222a1ad4f6b7d3b550da6f4c84edcdfd2114767ec95758c4815e4f83", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r312.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-progress-disposition-r312.json", + "bytes": 73046, + "sha256": "f1f675e37f3782c2fadd1cc398528a2f517ecb69d386bcbfeae70f07b9801201", + "stored_bytes": 73046, + "stored_sha256": "f1f675e37f3782c2fadd1cc398528a2f517ecb69d386bcbfeae70f07b9801201", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-bulk-work-contract-r312.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-guest-bulk-work-contract-r312.json", + "bytes": 12808, + "sha256": "b87217f716422e0ed845bc9f7d37d1b06656c79d85a5c1f603ffa704172d1c0c", + "stored_bytes": 12808, + "stored_sha256": "b87217f716422e0ed845bc9f7d37d1b06656c79d85a5c1f603ffa704172d1c0c", + "encoding": "identity" + }, + { + "source": "/private/tmp/thetree-prepare-current-residual-r311.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-prepare-current-residual-r311.py", + "bytes": 9212, + "sha256": "a5f24807c541753294896efb7f5d973d4d9176efc668bfd81810aa1391d54c9d", + "stored_bytes": 9212, + "stored_sha256": "a5f24807c541753294896efb7f5d973d4d9176efc668bfd81810aa1391d54c9d", + "encoding": "identity" + }, + { + "source": "/private/tmp/thetree-prepare-current-residual-r311-r02.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-prepare-current-residual-r311-r02.py", + "bytes": 3005, + "sha256": "fb48f0edd617f8f31ae0784585755ece6c902850ba7205665d94d53df34ee3b8", + "stored_bytes": 3005, + "stored_sha256": "fb48f0edd617f8f31ae0784585755ece6c902850ba7205665d94d53df34ee3b8", + "encoding": "identity" + }, + { + "source": "/private/tmp/thetree-select-guest-bulk-r312.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-select-guest-bulk-r312.py", + "bytes": 6199, + "sha256": "ece4b3b5ebc81cc29617ebb5745e6b91c0c8a405f1430efededab3677cd08184", + "stored_bytes": 6199, + "stored_sha256": "ece4b3b5ebc81cc29617ebb5745e6b91c0c8a405f1430efededab3677cd08184", + "encoding": "identity" + }, + { + "source": "/private/tmp/thetree-integrate-current-residual-r312.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/authors/thetree-integrate-current-residual-r312.py", + "bytes": 9289, + "sha256": "e2ee37570c2befa5e8fc766e27f5074b8a7a22e4a2b6e6e6e3c1b5786bf21e5d", + "stored_bytes": 9289, + "stored_sha256": "e2ee37570c2befa5e8fc766e27f5074b8a7a22e4a2b6e6e6e3c1b5786bf21e5d", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/autoload/simulation_runtime.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/autoload/simulation_runtime.gd.gz", + "bytes": 619011, + "sha256": "3da67f9c2c446ac9f4e26725cd48f9694cd0973646330f6bccc9e4aacfca64cd", + "stored_bytes": 121962, + "stored_sha256": "b4d8b7ff9e5971397e3bd2013b20ea7c763e4f13eb6613abd54278449f2c649b", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/performance_budget.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/core/performance_budget.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8", + "stored_bytes": 11250, + "stored_sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/simulation_kernel.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/core/simulation_kernel.gd", + "bytes": 8282, + "sha256": "5d578d7b845522388bd48a4a6e0c3a60e628498ec2da6aba722d8c6e2fc40a20", + "stored_bytes": 8282, + "stored_sha256": "5d578d7b845522388bd48a4a6e0c3a60e628498ec2da6aba722d8c6e2fc40a20", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/guest/guest_service.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/guest/guest_service.gd", + "bytes": 63573, + "sha256": "39986d98720d37dfd8c437b7043848df3b14120b307e99fef877428abd26b07d", + "stored_bytes": 63573, + "stored_sha256": "39986d98720d37dfd8c437b7043848df3b14120b307e99fef877428abd26b07d", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/world/path_service.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/instrumented-files/scripts/world/path_service.gd.gz", + "bytes": 139394, + "sha256": "c96dc7b3ae6ed7107d410631e9d7501c5e25d0c4696a76d621e6bcd7ff2f7a97", + "stored_bytes": 27831, + "stored_sha256": "0ba0c71c2ab3b5fa03d9beb9cf1e325836e871c5faba9d0ffb3e3ab0e93f498a", + "encoding": "gzip" + } + ] +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-progress-disposition-r312.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-progress-disposition-r312.json new file mode 100644 index 0000000..5a398e4 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-progress-disposition-r312.json @@ -0,0 +1,1006 @@ +{ + "plan_id": "P23-02", + "source_matrix": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r63.json", + "bytes": 6242307, + "sha256": "e70fdb658d2375be1ac28e1733e2bc33e04a3b9b132daa8200fae031570438a1" + }, + "scope": "Original exact17 condition names retained; historical missing details archived without adopting stale-version success as current acceptance", + "production": "r32", + "selected_working_candidate": "r62 unadopted", + "source_candidate": "r302/library303 ready-route; finite local304-r02 and S6/whole305; unadopted and unselected", + "candidate_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + "library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "conditions": [ + { + "id": "C01", + "condition": "パン", + "accepted": false, + "historical_missing_conditions": [ + "通常OSでcamera drag/モード切替・位置と対象の維持を確認。", + "制作は独立受理済みr32へ採用済み。r06通常操作証拠は履歴/不変部分の適用範囲に限り、同一採用版への適用性と原全操作条件を確認する。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "原条件全体を同一最終版で検証して受入統合。旧版/局所成功を全条件へ拡張しない。", + "manual_inputs_deferred_not_waived": true + }, + { + "id": "C02", + "condition": "上下スクロール", + "accepted": false, + "historical_missing_conditions": [ + "r06のpan mode wheel上下は営業ON実時間x3と1024x576で有限取得済み。Ctrlzoom・対象保持を最終同候補で確認し、原全受入へ統合。", + "制作は独立受理済みr32へ採用済み。r06通常操作証拠は履歴/不変部分の適用範囲に限り、同一採用版への適用性と原全操作条件を確認する。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "原条件全体を同一最終版で検証して受入統合。旧版/局所成功を全条件へ拡張しない。" + }, + { + "id": "C03", + "condition": "ズーム", + "accepted": false, + "historical_missing_conditions": [ + "r06通常OSの通常wheel上限4.0/下限0.5・追加入力clamp・同じ完成客室click/選択保持・Home復帰は1024x576停止1020で取得し独立受理。全Runtime literal保持。同source全回帰は既受理。残るCtrl-wheel/アンカー適用性と原全条件最終受入を統合。", + "Ctrl通常入力は2つの現API経路で未成立を独立審査。modifier-only拒否/ctrl-right-click後の非修飾wheelを記録し同経路を重複しない。製品guardを変更せず未検証維持。", + "制作は独立受理済みr32へ採用済み。r06通常操作証拠は履歴/不変部分の適用範囲に限り、同一採用版への適用性と原全操作条件を確認する。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "原条件全体を同一最終版で検証して受入統合。旧版/局所成功を全条件へ拡張しない。", + "manual_inputs_deferred_not_waived": true + }, + { + "id": "C04", + "condition": "建設グリッド", + "accepted": false, + "historical_missing_conditions": [ + "r06通常UIでHome後のgrid配置command7 OK、FRONT2セル、350G/資材5、工事995完了と占有、無効UNSUPPORTED/OVERLAP拒否全Runtime literal保持、完成Save1020別PIDLoadは有限取得・独立審査済み。同source最終候補の全回帰172/14759/0を独立受理済み。原条件全体への適用性と残る原操作/Windows等を最終全条件受入へ統合。", + "制作は独立受理済みr32へ採用済み。r06通常操作証拠は履歴/不変部分の適用範囲に限り、同一採用版への適用性と原全操作条件を確認する。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "原条件全体を同一最終版で検証して受入統合。旧版/局所成功を全条件へ拡張しない。" + }, + { + "id": "C05", + "condition": "接続警告", + "accepted": false, + "historical_missing_conditions": [ + "r06通常OSで実入口pathのCONNECTED緑線→対象変更DISCONNECTED破線/amber X/警告→CONNECTED占有地点のPNGとstateを有限取得・独立審査済み。配置可否は到達性と独立に既存規則へ一致。r05 native topology変更根拠は適用条件を限定して保持。同source全回帰172/14759/0を独立受理済み。原11.4への最終全条件受入を統合。", + "制作は独立受理済みr32へ採用済み。r06通常操作証拠は履歴/不変部分の適用範囲に限り、同一採用版への適用性と原全操作条件を確認する。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "原条件全体を同一最終版で検証して受入統合。旧版/局所成功を全条件へ拡張しない。" + }, + { + "id": "C06", + "condition": "HUD配置", + "accepted": false, + "historical_missing_conditions": [ + "実1024x576 clientの上部resource/time/weather/rank、下部layer/build/manage・Load・palette・施設詳細開閉とscroll/zoomの有限画像/操作を取得・独立審査済み。同source全回帰172/14759/0を独立受理済み。試験済み対象範囲の適用性を最終全条件受入へ統合、未試験全modalの成功へ拡張しない。", + "制作は独立受理済みr32へ採用済み。r06通常操作証拠は履歴/不変部分の適用範囲に限り、同一採用版への適用性と原全操作条件を確認する。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "原条件全体を同一最終版で検証して受入統合。旧版/局所成功を全条件へ拡張しない。" + }, + { + "id": "C07", + "condition": "小画面で読めて押せる", + "accepted": false, + "historical_missing_conditions": [ + "r06実Mac client1024x576(CUA画像1024x608 header32)で主要HUD/通常Load/施設クリック/palette/pan wheel/zoom/Home/Gを有限取得・独立審査済み。この寸法はQA入力であり最低仕様値でない。同source全回帰172/14759/0を独立受理済み。原小画面条件の対象操作範囲と最終全条件受入を統合、Windows倍率はC08に残す。", + "制作は独立受理済みr32へ採用済み。r06通常操作証拠は履歴/不変部分の適用範囲に限り、同一採用版への適用性と原全操作条件を確認する。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "原条件全体を同一最終版で検証して受入統合。旧版/局所成功を全条件へ拡張しない。" + }, + { + "id": "C08", + "condition": "Windows表示倍率で読めて押せる", + "accepted": false, + "historical_missing_conditions": [ + "同一対象版Windows実機の表示倍率・実Viewport・読みやすさ・クリック到達性。倍率やD10性能仕様は未確定値を発明しない。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "blocked", + "current_missing": "Windows実機の同一最終配布版・倍率・viewport・操作証拠" + }, + { + "id": "C09", + "condition": "x3時の操作追随", + "accepted": false, + "historical_missing_conditions": [ + "r06小規模営業ON実時間x3の通常操作証拠は履歴/不変適用範囲のみ保持。制作r32と最終採用候補の応答追随・原操作/Windowsを最終受入へ整合する。", + "制作r32全172/14769・限定採用を保持。作業r62の全木36/部分goal14/互換4範囲/全647比較のみ有限受理、r58不変warm証拠のみ条件付き再利用。約2秒同期処理、P95/D10/性能予算、通常OS647以降/x3/終了/小画面/延期保持入力2件/同一Windows実機倍率、同版最終影響・全172が未達。成果単位未完了。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "Current retained274/library275 r311-r02 instrumented1 tick1268510us/AI979790us, originalwhole647 equality and34 inclusive rows accepted only. Guest bulk contract312 selected as work, not implemented; previous303 boundary/local/whole evidence retained and303 unadopted/unselected. PureCPU/causality/gain/P95/D10/50ms/final172/general malformed/reentry/normal OS/x3/exit/small screen/Windows/original17 remain unaccepted." + }, + { + "id": "X1", + "condition": "原本条件とUI操作が一致", + "accepted": false, + "historical_missing_conditions": [ + "原本11.1/11.4と実OS操作の全9条件対応が必要。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "原条件全体を同一最終版で検証して受入統合。旧版/局所成功を全条件へ拡張しない。" + }, + { + "id": "X2", + "condition": "Runtimeの実利用・会計・行動へ接続", + "accepted": false, + "historical_missing_conditions": [ + "実World/建設command/会計/到達性とpreview/hit/警告を接続。cameraだけの操作は全typed不変を確認。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "原条件全体を同一最終版で検証して受入統合。旧版/局所成功を全条件へ拡張しない。" + }, + { + "id": "X3", + "condition": "途中保存・再起動で再現", + "accepted": false, + "historical_missing_conditions": [ + "P23-01 fresh保存再開を再利用可能だが、今回のcamera/建設/警告に変更がある場合は保存後の座標・選択・対象/後続操作を対象版で確認。camera位置の永続化自体は原文から追加要求しない。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "原条件全体を同一最終版で検証して受入統合。旧版/局所成功を全条件へ拡張しない。" + }, + { + "id": "X4", + "condition": "異常/境界/中断を検証", + "accepted": false, + "historical_missing_conditions": [ + "限界zoom/外部release/focus-lossは151再利用。新上下scroll/警告や小Viewportの境界・中断を必要範囲で追加。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "原条件全体を同一最終版で検証して受入統合。旧版/局所成功を全条件へ拡張しない。" + }, + { + "id": "X5", + "condition": "関連回帰PASS", + "accepted": false, + "historical_missing_conditions": [ + "制作r32の同一source全172/14769のみ別途受理済み。未採用作業r62の同版最終影響試験・全回帰は未実施。固めた正確な最終版で必須検証を実行し、旧版成功を転用しない。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "Current retained274/library275 r311-r02 instrumented1 tick1268510us/AI979790us, originalwhole647 equality and34 inclusive rows accepted only. Guest bulk contract312 selected as work, not implemented; previous303 boundary/local/whole evidence retained and303 unadopted/unselected. PureCPU/causality/gain/P95/D10/50ms/final172/general malformed/reentry/normal OS/x3/exit/small screen/Windows/original17 remain unaccepted." + }, + { + "id": "X6", + "condition": "要件別ログとソースハッシュを保存", + "accepted": false, + "historical_missing_conditions": [ + "現証拠pinは保存。追加OS/候補のraw・source・環境/設定・receiptが必要。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "原条件全体を同一最終版で検証して受入統合。旧版/局所成功を全条件へ拡張しない。" + }, + { + "id": "X7", + "condition": "既存代表負荷の性能回帰を計測", + "accepted": false, + "historical_missing_conditions": [ + "r06同代表入力のOpsOFF/手動1・3分batch・全typed保存と実描画の有限計測を新実行し独立受理。r05性能値をr06へ転用せず当該版記録。圧縮によるschedule/観測費用を保持。営業ON実時間x3/最大場面/GPU/Windows/P28未受入予算は証明しない。原性能acceptanceへの適用性は残る。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "in_progress", + "current_missing": "Current retained274/library275 r311-r02 instrumented1 tick1268510us/AI979790us, originalwhole647 equality and34 inclusive rows accepted only. Guest bulk contract312 selected as work, not implemented; previous303 boundary/local/whole evidence retained and303 unadopted/unselected. PureCPU/causality/gain/P95/D10/50ms/final172/general malformed/reentry/normal OS/x3/exit/small screen/Windows/original17 remain unaccepted." + }, + { + "id": "X8", + "condition": "Windows部分実機確認。不可なら未検証を残す", + "accepted": false, + "historical_missing_conditions": [ + "原X8の未検証保持分岐は使用できるが、P23-02固有のWindows表示倍率acceptanceを置換できない。Windows実機条件が未達なら本単位正式完了不可。" + ], + "required_target": "same final selected/adopted candidate and matching Windows distribution; not yet fixed", + "state": "blocked", + "current_missing": "Windows実機の同一最終配布版・倍率・viewport・操作証拠" + } + ], + "finite_evidence": { + "host_build": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-build-actual-independent-review-r188.json", + "bytes": 22485, + "sha256": "e9461bacffca3e04a353a5f5ec44c079119b36944276c958810f6d2b3c917982" + }, + "local_equivalence": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-local-actual-independent-review-r191.json", + "bytes": 27410, + "sha256": "0f2f85b66c884f6dad5c8fe07b870c933de8a331c3929767d0d283e5c8a671c3" + }, + "boundaries": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-boundaries-actual-independent-review-r195.json", + "bytes": 28648, + "sha256": "838041fe102339c2ae400097c45b7c2ed7cd4f01bed24a73791997fe503abd8b" + }, + "whole_pair": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-whole-pair-actual-independent-review-r196.json", + "bytes": 35169, + "sha256": "31978758b7f37684cddc369a263e3e793b34bbcafc29323fe7b78cd4af2a6c4f" + }, + "repeat": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-repeat-actual-independent-review-r198.json", + "bytes": 61491, + "sha256": "242ced8381e1b97a4cf95baaa47296e636cf1671f6c131c5764db53c7299610a" + }, + "dependency": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-dependency-actual-independent-review-r200.json", + "bytes": 26477, + "sha256": "bd5dbdb3418f5c52930fd13ce64c3d63553b0ebe5fa8190ba76d1c0089c0b670" + }, + "impact": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-original-impact-actual-independent-review-r205.json", + "bytes": 47542, + "sha256": "1bf3591089ae1cd2611232519f48782f19fcd81a940ea5b9d8e74fb78efaa672" + }, + "reconstruction_static": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-path-reconstruction-static-independent-review-r204.json", + "bytes": 9853, + "sha256": "ba1825e354d780f4dd850121e0855eef7b992ccc34eb09abc78c3bd435fa32f0" + }, + "reconstruction_host": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-path-reconstruction-build-actual-independent-review-r206.json", + "bytes": 22336, + "sha256": "f301618d94f075ad35e34a6ded28f0572290402012b9ea3f0edc8db23107f630" + }, + "reconstruction_local": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-actual-independent-review-r211.json", + "bytes": 59222, + "sha256": "c4cec015ac35bc228828573392dd327f7932e58aab48c8318b41d32d71cc9733" + }, + "reconstruction_whole_pair": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-whole-pair-actual-independent-review-r214.json", + "bytes": 39797, + "sha256": "6f3de61c816a36f69cdb0c5decd63ec4699319c1e5d958a4b4dfce5dd1cb0450" + }, + "travel_ownership_static": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-travel-ownership-static-independent-review-r216.json", + "bytes": 16772, + "sha256": "7d0a81837e46675bdfaf37dee795747106221d108e3e73cdf5a73396933c96ca" + }, + "travel_ownership_build": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-travel-ownership-build-actual-independent-review-r217.json", + "bytes": 23541, + "sha256": "822274a1593357048716cd6ab3955d6fee8030d5b24110f750507a665762b64d" + }, + "travel_ownership_local": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-travel-ownership-local-actual-independent-review-r220.json", + "bytes": 46573, + "sha256": "328a132f9e8e27e5f8855057c293c24234e18a892556499826a12432b8516c47" + }, + "travel_ownership_whole_pair": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-travel-ownership-whole-pair-actual-independent-review-r222.json", + "bytes": 31243, + "sha256": "05658d3b265b18ee1215b1efe5d26dd67b3c092291ba5bcccdf71ef1f4391a39" + }, + "tag_helpers_local": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-tag-helpers-local-actual-independent-review-r229.json", + "bytes": 73403, + "sha256": "52455c2d50dc7ab39cbe82b7eb4a45add7b3a7bc52de6d679377e26d13740c20" + }, + "tag_helpers_whole_pair": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-tag-helpers-whole-pair-actual-independent-review-r231.json", + "bytes": 28386, + "sha256": "061c29335071fdd9fd5927bfa8afb9ba5e70d3e1f2cde670138bab173e3e7316" + }, + "cache_key_static": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-key-static-independent-review-r233.json", + "bytes": 15063, + "sha256": "0230bb7e4504dca15ba09d8533bbee3e8e1146156c64fccf7f73557b0d3f035e" + }, + "cache_key_build": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-key-build-actual-independent-review-r234.json", + "bytes": 22383, + "sha256": "461caceb47c1157e0ab245228e0014ef2158214d1607c8d6955438346233ad43" + }, + "cache_key_local": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-key-local-actual-independent-review-r235.json", + "bytes": 73562, + "sha256": "4b2b3b3d1a5f629b01ab09f4951b852b07c333be7acd7b6f5c4bf763fdf6e1ba" + }, + "cache_key_whole_pair": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-key-whole-pair-actual-independent-review-r236-r02.json", + "bytes": 41166, + "sha256": "c95a1fc70a8904393f63f14a9c8a7d1f78d268f4069b2261357049f59ac518c2" + }, + "current233_diagnostic": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r238.json", + "bytes": 36734, + "sha256": "e41634755f116006c91ad251b48eb8b71286a53a6a687d6f371366f3140cc66d" + }, + "local_names_static": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-local-names-static-independent-review-r239.json", + "bytes": 16574, + "sha256": "2f0f7b40135bce4cdcc0eaff11c77917f230f2f456cc0cf6983f5f8d5bffc173" + }, + "local_names_build": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-local-names-build-actual-independent-review-r240.json", + "bytes": 23261, + "sha256": "e7038f5e0b5c43ed67498bfb89719a0244d722cbbdce2bbb87cfe865f64b5849" + }, + "local_names_local": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-local-names-local-actual-independent-review-r241.json", + "bytes": 62299, + "sha256": "d27c97c4f02cc8922ec09da89554c674367663144e083062819987710a825f0b" + }, + "local_names_whole_pair": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-local-names-whole-pair-actual-independent-review-r242.json", + "bytes": 36188, + "sha256": "cebd772e810e63980e12b6249e6527d56a4018f1d0e32d3c61e756f7637c85dc" + }, + "native_internal_static": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-internal-diagnostic-static-independent-review-r244.json", + "bytes": 12750, + "sha256": "14efa12774345de9d84829fe4e078c67f96db8b1d9637e58fcb83e32234403fa" + }, + "native_internal_build": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-internal-diagnostic-build-actual-independent-review-r245-r02.json", + "bytes": 24471, + "sha256": "857e69ce3c7a4f0fe0572c1b2ddf520ac353a0618fff5220817fdf14c264c8af" + }, + "native_internal_diagnostic": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-internal-diagnostic-actual-independent-review-r246-r02.json", + "bytes": 30072, + "sha256": "fe51580fa199aff262f041e33ac9a2217b359a7598cae706ccb5bfe5b8acdc15" + }, + "cached_path_static": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cached-path-summary-static-independent-review-r248-r02.json", + "bytes": 15237, + "sha256": "235d2c105b9f9adaf5edb56e84105fb5a45f31f261e694ba9af1d9177caa0842" + }, + "cached_path_build": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cached-path-summary-build-actual-independent-review-r249.json", + "bytes": 22986, + "sha256": "2194fea2b73ea7e949e7299e8d645b9996dfed53dd9b7c55f92846912db82d6b" + }, + "cached_path_local": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cached-path-summary-local-actual-independent-review-r250-r02.json", + "bytes": 66773, + "sha256": "eb47284789bcf96e7103ee3f308c7ba02e0151916c53ab9540a810d903f07fa3" + }, + "invalid_cache_local": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-invalid-cached-path-local-actual-independent-review-r251-r02.json", + "bytes": 36346, + "sha256": "91ae087447c60dce44bf58b5851ce39958700f063779fa6484eb12bfbf6f5f7f" + }, + "cached_path_whole_pair": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cached-path-whole-pair-actual-independent-review-r253-r02.json", + "bytes": 37005, + "sha256": "f4c2b2c17da88ddf1f4f65bc2aacb53d5e5f062447df46e61bf724f7f3200d3c" + }, + "budget_callback_diagnostic": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-budget-callback-diagnostic-actual-independent-review-r255-r03.json", + "bytes": 26049, + "sha256": "99b58ff2156508d80db87c98faa5cbce18563bbcf57de74a192ec71133f2ec86" + }, + "budget_native_static": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-budget-record-static-independent-review-r257-r04.json", + "bytes": 10125, + "sha256": "9d2e1fd3c5dd528d4cad4de66bf636ea79a67ccb9749af2dcb788ab21c3c0272" + }, + "budget_native_build": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-budget-record-build-actual-independent-review-r258-r02.json", + "bytes": 21448, + "sha256": "af1ef4994f9d38fb60cf10e94ba116a260b6146cef4b719bf563ed0d583e8ed3" + }, + "budget_native_local": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-budget-record-local-actual-independent-review-r260-r02.json", + "bytes": 29240, + "sha256": "2766609c663f0bf408e994267a97265d511e52b61450567aa7939e2c4ab428c9" + }, + "budget_native_impact_whole": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-budget-impact-whole-actual-independent-review-r262.json", + "bytes": 37515, + "sha256": "530a10149df9138948f037937fda669f7f8d3b420a70260b4ecb5c4f96298782" + }, + "walk_edges_host_build": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-actual-independent-review-r266-r02.json", + "bytes": 23678, + "sha256": "63eebafd26d536dc5c7bdf9d4dd0880d75fe9f701a7a4da84225cade7d83ff2f" + }, + "walk_edges_failed_build_r266": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-actual-independent-review-r266.json", + "bytes": 17339, + "sha256": "48429db6104b26f6c892e5e997562b606c956b494903e4e1a93c944383870e71" + }, + "walk_edges_static_r265_r03": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-static-independent-review-r265-r03.json", + "bytes": 16528, + "sha256": "ee61c1b689b92e12c653701f801b99cccf94ef64e3aeb018c06c7a14259d1778" + }, + "walk_edges_local": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-local-actual-independent-review-r268-r03.json", + "bytes": 42249, + "sha256": "2ef93cc1de37636ddc46ffcd313473d8aa9375e74ce361df1367db3c90fdee66" + }, + "walk_edges_local_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-local-root-verification-r268-r03.json", + "bytes": 34902, + "sha256": "7922c0df867f414a511bf0f4fc7336f73f9632682001efba32c911d137503708" + }, + "walk_edges_impact_whole": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-impact-whole-actual-independent-review-r270.json", + "bytes": 36922, + "sha256": "8d389bbce84c830880c693d32b6860a31ff75e8a7d584f9f4af0492bca5e9c95" + }, + "walk_edges_impact_whole_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-impact-whole-r270/actual-root-verification.json", + "bytes": 30734, + "sha256": "f6f992c92aec12f012037a23e76cc3d78b24ec9a5bbd9b45feb9b013d0e008e9" + }, + "residual_sampling": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-sampling-actual-independent-review-r272-r03.json", + "bytes": 30534, + "sha256": "79b4d014f082a47bda3d9f86713321255be6881aceaefb4de7601d21a48916b7" + }, + "residual_sampling_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-sampling-r272-r03/actual-root-verification.json", + "bytes": 25953, + "sha256": "22462a79745aa07629fa30ee7ad2297db4bdefd2c4a340a2fea30fd4e615ec20" + }, + "residual_symbol_mapping": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-symbol-map-actual-independent-review-r273-r04.json", + "bytes": 14823, + "sha256": "ffd7d7817b7f999bc77c695e567b2b6749b7cb1f6eab78d79aadfdd23c384fdc" + }, + "residual_symbol_mapping_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-symbol-map-r273-r04/actual-root-verification.json", + "bytes": 12383, + "sha256": "8a10686f212c92344f7c90523e8751e7068dd3fa5e174c0d693f59090c376cb1" + }, + "pure_tag_static": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-static-independent-review-r274.json", + "bytes": 8909, + "sha256": "f13ed2a32320d85c02011943633be7a4e01f2409f019fadab8dde1680d58f642" + }, + "pure_tag_static_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-static-root-verification-r274.json", + "bytes": 5150, + "sha256": "8570795a1f86ac90c053d208ccfad2c9966d912c26fe46380a22a2dd946de860" + }, + "pure_tag_host": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json", + "bytes": 21552, + "sha256": "54576596f82b8aceca440c1a5514ce811125e977c64c210675feecbb3901929f" + }, + "pure_tag_host_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-root-verification-r275.json", + "bytes": 15146, + "sha256": "3216bc889cbde7aaa375060cbbf34457ca97ba49b4785f61ecc88c777a0dd8be" + }, + "pure_tag_local": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-actual-independent-review-r278-r04.json", + "bytes": 28145, + "sha256": "671f15fa542465cf6a7e88ee272a2ce67049fffcca2483205f999cfeb2075253" + }, + "pure_tag_local_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/actual-root-verification.json", + "bytes": 17143, + "sha256": "00e01cce5240ebd3accddbfc88f8776ac4cd4dfa887df3b8ee319eb16c45913f" + }, + "pure_tag_impact_whole": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-actual-independent-review-r281.json", + "bytes": 46359, + "sha256": "1876c883e898fdfb8c1c4fb84ee5950930719d0e623b3f010fad0312402166b4" + }, + "pure_tag_impact_whole_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/actual-root-verification.json", + "bytes": 28310, + "sha256": "1d3d3a0d804d508e7daf11551c30997b0ef048660ceaafb814fd7e07104ae292" + }, + "provider_fallback_static": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-provider-fallback-static-independent-review-r280.json", + "bytes": 15586, + "sha256": "c25202cb2b17e74b7c097572b61c8d60f76e9b26074c637de116b29c48faf118" + }, + "provider_fallback_static_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-provider-fallback-static-root-verification-r280.json", + "bytes": 7214, + "sha256": "7928ab71bf6ec7a03762b1ac1705557e7b9729880cec5df043937b266bb2ecdd" + }, + "integer_codec_static": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-integer-window-codec-static-independent-review-r290.json", + "bytes": 15003, + "sha256": "be6cbb78a30264bb061290685f53edf77b850a9fb815ebdd1c744b2ed99ff7d5" + }, + "integer_codec_static_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-integer-window-codec-static-root-verification-r290.json", + "bytes": 7670, + "sha256": "88c25fa1a78334302396f70d71acfbb4cc942cea5ffb3ed7b6f5769afc7b6b3a" + }, + "integer_codec_host": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-integer-window-codec-build-actual-independent-review-r291.json", + "bytes": 39566, + "sha256": "681b686f858c703e6437028b3db51567dd58df3e1956ba84e36995dee0cabf3b" + }, + "integer_codec_host_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-integer-window-codec-build-root-verification-r291.json", + "bytes": 22646, + "sha256": "6617af23def22877301448fb9843feb41521211a6fcac505b1028a9980631126" + }, + "integer_codec_local": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-integer-window-codec-local-actual-independent-review-r292-r02.json", + "bytes": 40394, + "sha256": "12482ab52f4eea2534617227cb4676ecfe067591df628f4d5117efad7d66dd49" + }, + "integer_codec_local_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-integer-window-codec-local-r292-r02/actual-root-verification.json", + "bytes": 21045, + "sha256": "c16933c5137d67f307cdb01f0f8916f95f0e25667d8a1fe8f2bb0659664265b1" + }, + "integer_codec_impact_whole": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-integer-window-codec-impact-whole-actual-independent-review-r293-r04.json", + "bytes": 59147, + "sha256": "147409de969918719f1682ff3bc537192a28d01837bfda6532ce4d1c292e9059" + }, + "integer_codec_impact_whole_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-integer-window-codec-impact-whole-r293-r04/actual-root-verification.json", + "bytes": 33521, + "sha256": "61d1c24434347f25abbdb8d257da8eeb16e86307e6560a9a61102cd26f7974cf" + }, + "integer_codec_rejected_local287": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-integer-window-codec-local-actual-independent-review-r287.json", + "bytes": 28577, + "sha256": "ba871137bb6f4d6c73f34795b76e90fce6b53a2139b647620adf117d44fea0b8" + }, + "integer_codec_rejected_preparation292": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-integer-window-codec-local-preexecution-independent-review-r292.json", + "bytes": 21378, + "sha256": "b2f9de6e72d6fa4ea4d9f855d461819eda1760c8e7edc387684c1fa181a89af1" + }, + "guest_need_static": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-need-normalization-static-independent-review-r298.json", + "bytes": 17223, + "sha256": "940dd5f51b55942f07ef7ad091ec557af4d0d7bb07d48c08b6a98bde570f32b2" + }, + "guest_need_static_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-need-normalization-static-root-verification-r298.json", + "bytes": 9067, + "sha256": "e6f83f624358270199fb6a0d3236db0e20da614443514cba04d66995a671de42" + }, + "guest_need_local": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-need-normalization-local-actual-independent-review-r299-r02.json", + "bytes": 23481, + "sha256": "892b47057267c6bd4b839985bcf490ea0bb36474e2cd4e5ad3a9644b6e4331d2" + }, + "guest_need_local_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-need-normalization-local-r299-r02/actual-root-verification.json", + "bytes": 12674, + "sha256": "05ac885cfcc93cf46a6dedadf3705ae119b43c6659c6d3d68a182dbdd4802eed" + }, + "guest_need_impact_whole": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-need-normalization-impact-whole-actual-independent-review-r300.json", + "bytes": 43229, + "sha256": "05594a0441ee2757b56168e44377251dfd63f5c08ddb031ae1c59f46509f10e7" + }, + "guest_need_impact_whole_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-need-normalization-impact-whole-r300/actual-root-verification.json", + "bytes": 29640, + "sha256": "87e072357ed9592fab0e7eacfb4c1222c638560c9f9c1d6e831f7635d7c0e8bb" + }, + "guest_need_rejected_metadata299": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-need-normalization-local-preexecution-independent-review-r299.json", + "bytes": 12734, + "sha256": "8ebca46556df998665e064e14bf83708b5923955e72edb0807a6209e99d96f0c" + }, + "ready_route_static": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-independent-review-r302.json", + "bytes": 11389, + "sha256": "2bd34186da07d0ce7590036766c55062d303625a554c92949b83d8985f99a618" + }, + "ready_route_static_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-root-verification-r302.json", + "bytes": 5118, + "sha256": "67db97cbdca1dbd663c4cfaaafb04a0def112d1417cafc98ff946fbc779dc59b" + }, + "ready_route_host": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "bytes": 21696, + "sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29" + }, + "ready_route_host_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "bytes": 12307, + "sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b" + }, + "ready_route_local": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json", + "bytes": 28290, + "sha256": "1cf6b982252f442ed40801a6707f1d8c39cc4a48ba3721a453f50b9d405e949b" + }, + "ready_route_local_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json", + "bytes": 15302, + "sha256": "d69adddf6ec16948caf7f2e85634059a7befeac7ba8ddd48d2352b9a75c7462e" + }, + "ready_route_impact_whole": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-actual-independent-review-r305.json", + "bytes": 47818, + "sha256": "a4991f8c5592ac0b0900a1bd15cded4a4ab9f897f461632bf2f3ca7d547383a9" + }, + "ready_route_impact_whole_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/actual-root-verification.json", + "bytes": 27615, + "sha256": "a84cd96fc6796f5a13398888ae062cc5542987957cdac37c9d5f45c8f34c0f2a" + }, + "ready_route_rejected_preexecution304": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304.json", + "bytes": 16416, + "sha256": "9830e8cc7ab5ceede78951d43818972e5c8b1fe0a7739d385b9d93c449a8288d" + }, + "ready_route_conversion_midcall": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-fallback-actual-independent-review-r307-r02.json", + "bytes": 34422, + "sha256": "4c80200976901eed73e517d506d64218f2fddfef7d76b1336c03cbefec223f2f" + }, + "ready_route_conversion_midcall_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-fallback-r307-r02/actual-root-verification.json", + "bytes": 17268, + "sha256": "a78a00d0f78f60047556b46cf364300189d7e073bee54b0143ed8dd6d75623f4" + }, + "ready_route_boundary_reentry": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-boundary-actual-independent-review-r309-r03.json", + "bytes": 41328, + "sha256": "8d7dfe0dd0f9ab6780c0d4ebb667e14ce47c656a42b69feae11648f80961e6d7" + }, + "ready_route_boundary_reentry_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-boundary-r309-r03/actual-root-verification.json", + "bytes": 24973, + "sha256": "415fccd8c98db18d265a0a0147e79c24f6ed3e56b23a4809fe9080f800914fda" + }, + "current_retained_native_diagnostic": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json", + "bytes": 39941, + "sha256": "a38dae71afd2b5db0591ecca16b65abc3158f080460e9c0b09a265f339967d09" + }, + "current_retained_native_diagnostic_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json", + "bytes": 22991, + "sha256": "5373708a07d92323146615deb8663fa9b6e101e28df9821c4e5129312f63b57f" + } + }, + "accepted_condition_count": 0, + "remaining_condition_count": 17, + "Windows_only_blocked_ids": [ + "C08", + "X8" + ], + "manual_deferred_not_waived": true, + "unit_accepted": false, + "formal_completion_allowed": false, + "packages": 30, + "delivery_units": 88, + "partial_credit": false, + "test_counts_used_as_completion": false, + "next_action": "既存のnative投影を再利用し、Guest候補抽出・評価・順位付けの一括純処理を1関連変更として実装する。r298のGDScript正規化や小さなprice/key/copy変更を再起動しない。全原helper・拒否順・符号整数・型/コピー所有・callback/状態遷移契約を先に照合し、unsupported前無変更の元fallbackを保持する。原重み/閾値/時刻/価格/保存は変更しない。関連変更の正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。", + "source_previous_matrix": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json", + "bytes": 70364, + "sha256": "41085a75190fdb67ba44ac7f6893d42c18ee797762d4b00e7eda546ed025c460" + }, + "latest_whole_validated_trial": "r302/library303 finite originalS6/whole305", + "latest_whole_candidate_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + "latest_whole_library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "next_implementation_parent_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/input.json", + "bytes": 4511, + "sha256": "6bd46c589bc57ab5afad1d7195f7293ec450aafeed055e394a3a880744666ca3" + }, + "next_implementation_parent_library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "rejected_previous_metadata_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-actual-independent-review-r267.json", + "bytes": 14383, + "sha256": "f70190ec9082ad13a97ab0abf428a196c2b8d089dc3c9a5a33a4b95c3ccfcaa6" + }, + "latest_local_validated_trial": "r302/library303 finite conversion3/midcall1 local307-r02 plus local304-r02", + "latest_local_candidate_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + "latest_local_library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "next_implementation_parent": "r274/library275 private candidate: finite local278-r04 and originalS6/whole281 accepted; performance unmet and unadopted", + "latest_instrumented_diagnostic": "r274/library275 current311-r02: four literal script wrapper files, Budget257, one cold646→647 whole equality and inclusive observations only", + "latest_implementation_candidate": "r274/library275 finite local278-r04 and impact/whole281 accepted; performance unmet, unselected and unadopted", + "latest_implementation_candidate_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/input.json", + "bytes": 4511, + "sha256": "6bd46c589bc57ab5afad1d7195f7293ec450aafeed055e394a3a880744666ca3" + }, + "latest_implementation_library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "next_test_candidate": "既存のnative投影を再利用し、Guest候補抽出・評価・順位付けの一括純処理を1関連変更として実装する。r298のGDScript正規化や小さなprice/key/copy変更を再起動しない。全原helper・拒否順・符号整数・型/コピー所有・callback/状態遷移契約を先に照合し、unsupported前無変更の元fallbackを保持する。原重み/閾値/時刻/価格/保存は変更しない。関連変更の正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。", + "latest_locally_validated_candidate": "r302/library303 finite307-r02 with earlier304-r02 retained", + "latest_whole_validated_candidate": "r302/library303 finite305", + "historical_next_implementation_parent_r276": { + "next_implementation_parent": "r239/library240; r248 adoption declined for benefit not demonstrated", + "next_implementation_parent_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-local-names-candidate-r239/input.json", + "bytes": 766007, + "sha256": "e23d6b7c021f468050632bbc7cb386846b3ac0b509746c321871c23922150a35" + }, + "next_implementation_parent_library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-local-names-build-r240/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 334416, + "sha256": "6e1b5efd70a69882da9f72a67129cc53010bc8755d228d1a9ce7d0d1b1039f82" + } + }, + "next_implementation_parent_source": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp", + "bytes": 54002, + "sha256": "ce20a90adb8a410dc1b6cbf607b7bfa8bf21eaef158c5c6bfc7a9bbcc703d2b2" + }, + "latest_residual_sampling": "r265/266 sampled by272-r03 partial OS window; exact-section symbol map273-r04; no CPU ratio/cause/performance acceptance", + "historical_source_candidate_fields_r277": { + "source_candidate": "r248-r02/library249 finite local250-r02/251-r02 and whole253-r02; adoption declined, next implementation parent r239/library240", + "candidate_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cached-path-summary-candidate-r248-r02/input.json", + "bytes": 978265, + "sha256": "c17c89c7bdf4bf6e378081956473253da1618a0183bf2c3e48cb1fed9d2bb551" + }, + "library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cached-path-summary-build-r249/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 350960, + "sha256": "7bb5898fe0ce8199c1175e5fb642abf8c9365e2f044cdc5807e6f6170a7475d6" + } + }, + "native_trial_stage_status": "shared209/parent239 original1299 preserved; Budget257/project transient restored after owned exits; no production303 adoption", + "historical_next_implementation_parent_r279": "r274/library275 source-only private candidate: static and host only, no fixture stage yet; local ABI/equivalence next, unadopted", + "historical_candidate_fields_before_r294": { + "source_candidate": "r274/library275 finite local278-r04 and whole281 only; performance unmet and unadopted", + "candidate_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/input.json", + "bytes": 4511, + "sha256": "6bd46c589bc57ab5afad1d7195f7293ec450aafeed055e394a3a880744666ca3" + }, + "library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "latest_implementation_candidate": "r274/library275 finite local278-r04 and impact/whole281 accepted; performance unmet, unselected and unadopted", + "latest_implementation_candidate_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/input.json", + "bytes": 4511, + "sha256": "6bd46c589bc57ab5afad1d7195f7293ec450aafeed055e394a3a880744666ca3" + }, + "latest_implementation_library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "latest_local_validated_trial": "r274/library275 local278-r04 finite tag/callback/ownership only; no general reentry/provider ownership acceptance", + "latest_local_candidate_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/input.json", + "bytes": 4511, + "sha256": "6bd46c589bc57ab5afad1d7195f7293ec450aafeed055e394a3a880744666ca3" + }, + "latest_local_library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "latest_whole_validated_trial": "r274/library275 finite originalS6/whole281", + "latest_whole_candidate_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/input.json", + "bytes": 4511, + "sha256": "6bd46c589bc57ab5afad1d7195f7293ec450aafeed055e394a3a880744666ca3" + }, + "latest_whole_library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "next_implementation_parent": "r274/library275 private candidate: finite local278-r04 and originalS6/whole281 accepted; performance unmet and unadopted", + "next_implementation_parent_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/input.json", + "bytes": 4511, + "sha256": "6bd46c589bc57ab5afad1d7195f7293ec450aafeed055e394a3a880744666ca3" + }, + "next_implementation_parent_library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + } + }, + "declined_trial": { + "candidate_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-integer-window-codec-candidate-r290/input.json", + "bytes": 6030, + "sha256": "668930b0ed56cda8dfe692323e129575bba29697907727f671778871bd507560" + }, + "library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-integer-window-codec-build-r291/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367552, + "sha256": "ad7ed14b9820005af60c48594387e336df09087f7497007c6ab6f67d5a212e40" + }, + "single_pair": { + "baseline_us": 1214852, + "candidate_us": 1217932, + "ratio": 1.0025352882491037, + "reduction_percent": -0.25352882491035944, + "scope": "One adjacent cold paused speed1 headless observation only; no stable/P95/budget acceptance" + }, + "reason": "No improvement demonstrated in the single adjacent pair; stable performance benefit unproved and optional codec adds maintenance complexity", + "stable_regression_claimed": false, + "candidate_adopted": false + }, + "historical_guest_trial_fields_before_r301": { + "source_candidate": "r290/library291 finite local292-r02 and originalS6/whole293-r04; performance unmet, unselected and unadopted", + "candidate_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-integer-window-codec-candidate-r290/input.json", + "bytes": 6030, + "sha256": "668930b0ed56cda8dfe692323e129575bba29697907727f671778871bd507560" + }, + "latest_local_validated_trial": "r290/library291 finite Budget+integercodec local292-r02", + "latest_whole_validated_trial": "r290/library291 finite originalS6/whole293-r04", + "next_test_candidate": "One necessary performance change against retained r274/library275 then final-version mandatory validation", + "native_trial_stage_status": "local292-r02 and whole293-r04 reused shared209/parent239 original1299; Budget257 transient and project restored after owned exit; no production290 stage created" + }, + "guest_trial_source": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-need-normalization-candidate-r298/source/guest_service.gd", + "bytes": 63639, + "sha256": "5895d5da6488c767685b109ef01f9e2b57f41272d49cc9e3c415865769adc11d" + }, + "guest_trial_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-need-normalization-candidate-r298/input.json", + "bytes": 11472, + "sha256": "3e2eaa147e365a74145224d8995bade5b44528d59b5508dc159458555081ed99" + }, + "guest_trial_single_pair": { + "baseline_us": 1153117, + "candidate_us": 1167153, + "ratio": 1.0121722253682843, + "reduction_percent": -1.2172225368284397, + "scope": "One adjacent cold paused speed1 headless observation only; no stable/P95/budget acceptance" + }, + "guest_trial_adopted": false, + "guest_trial_declined": { + "reason": "Representative whole pair did not demonstrate a speed benefit; optional shared-helper complexity is not justified by local-only gain", + "stable_regression_claimed": false, + "single_pair": { + "baseline_us": 1153117, + "candidate_us": 1167153, + "ratio": 1.0121722253682843, + "reduction_percent": -1.2172225368284397, + "scope": "One adjacent cold paused speed1 headless observation only; no stable/P95/budget acceptance" + }, + "candidate_adopted": false + }, + "historical_trial_fields_before_r306": { + "source_candidate": "r298 GuestService plus unchanged r274/library275; finite local299-r02 and S6/whole300, unadopted", + "candidate_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-need-normalization-candidate-r298/input.json", + "bytes": 11472, + "sha256": "3e2eaa147e365a74145224d8995bade5b44528d59b5508dc159458555081ed99" + }, + "library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "latest_local_library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "latest_whole_library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "latest_local_validated_trial": "r298 GuestService finite local299-r02", + "latest_whole_validated_trial": "r298 GuestService finite originalS6/whole300", + "next_test_candidate": "r298 GuestServiceは代表whole単発比較で速度利益を示さず、任意補助共有処理を加えるため採用を見送る。r274/library275を保持し、既存の版付きattributionと現在の投影経路を照合して、同期時間を支配する経路投影処理に必要な修正を1件選ぶ。単体helper改善を全体性能へ広げず、小さな候補の追加や未変更版の全回帰を繰り返さない。採用候補を固めた同一最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を満たす。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。", + "native_trial_stage_status": "shared209/parent239 original1299 preserved; Guest298/Budget257/project transient restored after owned exits; no production298 stage" + }, + "ready_route_trial_source": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + "ready_route_trial_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + "ready_route_trial_single_pair": { + "baseline_us": 1213031, + "candidate_us": 1185064, + "ratio": 0.9769445298595008, + "reduction_percent": 2.3055470140499295, + "scope": "One adjacent cold paused speed1 headless observation only; no stable/P95/budget acceptance" + }, + "ready_route_trial_adopted": false, + "ready_route_trial_selected": false, + "ready_route_trial_disposition": { + "status": "hold_unadopted", + "reason": "Finite boundary/reentry6 accepted only. Single whole2.305547percent reduction is not stable acceptance; approximately1.185sec stall remains; arbitrary invalid-shape errors/general reentry and final gates unaccepted.", + "stable_gain_claimed": false, + "candidate_adopted": false + }, + "historical_trial_fields_before_r308": { + "source_candidate": "r302/library303 ready-route; finite local304-r02 and S6/whole305; unadopted and unselected", + "candidate_input": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + "library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "latest_local_library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "latest_whole_library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "latest_local_validated_trial": "r302/library303 finite local304-r02", + "latest_whole_validated_trial": "r302/library303 finite originalS6/whole305", + "next_test_candidate": "候補r302/library303は未採用を維持。新しい性能候補を増やさず、同じ303でinvalid shape/index/type変換fallbackとmid-call custom/script置換を原処理へ比較し、残る意味互換条件を補う。既存attributionは包含・旧版の適用範囲だけに限定し、同期停止を解消する関連変更をまとめた正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。", + "native_trial_stage_status": "shared209/parent239 original1299 preserved; Budget257/project transient restored after owned exits; no production303 adoption" + }, + "ready_route_latest_semantic_trial": "r309-r03 parent275/candidate303 finite index3/convertible shape2/samegoal nested1; earlier307/304/305 retained", + "historical_trial_fields_before_r310": { + "ready_route_latest_semantic_trial": "r307-r02 conversion3/midcall1, original nearest/resolver scopes only", + "next_action": "候補r302/library303は未採用・選定保留。変換3条件と実script置換1条件の有限証拠を保持し、不正な配列形状・範囲外インデックスと一般再入の適用条件を元処理へ照合する。新しい小性能候補や未変更版の全回帰を重複起動せず、同期停止を解消する関連変更をまとめた正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。", + "next_test_candidate": "候補r302/library303は未採用・選定保留。変換3条件と実script置換1条件の有限証拠を保持し、不正な配列形状・範囲外インデックスと一般再入の適用条件を元処理へ照合する。新しい小性能候補や未変更版の全回帰を重複起動せず、同期停止を解消する関連変更をまとめた正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。" + }, + "historical_trial_fields_before_r312": { + "ready_route_latest_semantic_trial": "r309-r03 parent275/candidate303 finite index3/convertible shape2/samegoal nested1; earlier307/304/305 retained", + "next_action": "候補303は未採用・選定保留。親275と同じ6境界条件・有限同goal再入の互換証拠を保持する。境界ケースを際限なく追加せず、残る約1.185秒の同期停止について既存帰属証拠から支配処理と依存関係を1件選び、関連変更をまとめる。正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。", + "next_test_candidate": "候補303は未採用・選定保留。親275と同じ6境界条件・有限同goal再入の互換証拠を保持する。境界ケースを際限なく追加せず、残る約1.185秒の同期停止について既存帰属証拠から支配処理と依存関係を1件選び、関連変更をまとめる。正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。" + }, + "guest_bulk_next_work_contract": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-bulk-work-contract-r312.json", + "bytes": 12808, + "sha256": "b87217f716422e0ed845bc9f7d37d1b06656c79d85a5c1f603ffa704172d1c0c" + } +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json new file mode 100644 index 0000000..4f61465 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json @@ -0,0 +1,625 @@ +{ + "finite_instrumented_whole_equivalence_accepted": true, + "finite_diagnostic_accepted": true, + "finite_exit_observation_accepted": true, + "blockers": [], + "observations": { + "pid": 84968, + "checks": 18, + "failures": 0, + "instrumented_tick_us": 1268510, + "metrics": { + "runtime": { + "_project_guest_candidates": { + "calls": 50, + "inclusive_us": 656139, + "max_us": 45760 + }, + "_decide_guest_with_log": { + "calls": 50, + "inclusive_us": 230065, + "max_us": 4795 + }, + "_find_facility_access_path": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_estimated_actor_path_minutes": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_facility_access_candidates": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_guest_access_batch_can_select": { + "calls": 50, + "inclusive_us": 195, + "max_us": 6 + }, + "_project_guest_candidates_without_native": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_need_relief_for_facility_tags": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_service_category_for_tags": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "get_facility_business_price": { + "calls": 7500, + "inclusive_us": 14899, + "max_us": 21 + }, + "_publish_snapshot": { + "calls": 1, + "inclusive_us": 76851, + "max_us": 76851 + } + }, + "path": { + "begin_guest_path_query_batch": { + "calls": 50, + "inclusive_us": 24721, + "max_us": 689 + }, + "query_nearest_guest_access": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_build_guest_query_tree_shared_result": { + "calls": 50, + "inclusive_us": 111700, + "max_us": 35777 + }, + "_resolve_ready_guest_batch_point": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_guest_tree_reconstruct_path": { + "calls": 10675, + "inclusive_us": 62826, + "max_us": 51 + }, + "_cache_key": { + "calls": 2586, + "inclusive_us": 4019, + "max_us": 8 + }, + "_copy_path": { + "calls": 6811, + "inclusive_us": 15742, + "max_us": 38 + }, + "_guest_tree_cost": { + "calls": 4000, + "inclusive_us": 1584, + "max_us": 1 + }, + "_guest_batch_has_permitted_layer_crossing": { + "calls": 32500, + "inclusive_us": 14707, + "max_us": 20 + } + }, + "kernel_phases": { + "0": { + "calls": 1, + "inclusive_us": 13, + "max_us": 13 + }, + "1": { + "calls": 1, + "inclusive_us": 1121, + "max_us": 1121 + }, + "2": { + "calls": 1, + "inclusive_us": 340, + "max_us": 340 + }, + "3": { + "calls": 1, + "inclusive_us": 118618, + "max_us": 118618 + }, + "4": { + "calls": 1, + "inclusive_us": 89293, + "max_us": 89293 + }, + "5": { + "calls": 1, + "inclusive_us": 970, + "max_us": 970 + }, + "6": { + "calls": 1, + "inclusive_us": 1063, + "max_us": 1063 + }, + "7": { + "calls": 1, + "inclusive_us": 218, + "max_us": 218 + }, + "8": { + "calls": 1, + "inclusive_us": 180, + "max_us": 180 + }, + "9": { + "calls": 1, + "inclusive_us": 979790, + "max_us": 979790 + }, + "10": { + "calls": 1, + "inclusive_us": 76865, + "max_us": 76865 + } + }, + "guest": { + "extract_candidates": { + "calls": 50, + "inclusive_us": 95575, + "max_us": 2002 + }, + "rank_candidates": { + "calls": 50, + "inclusive_us": 124620, + "max_us": 2600 + }, + "evaluate_candidate": { + "calls": 5000, + "inclusive_us": 106351, + "max_us": 44 + } + } + }, + "declared_rows": 34, + "wrapper_methods": 24, + "metric_codec_proof": { + "nodes": 281, + "headers": { + "27": 39, + "4": 140, + "2": 102 + }, + "file_envelope_bytes": 0, + "all_bytes_roundtrip": true + }, + "metric_raw": { + "bytes": 3896, + "sha256": "cb81ef4cde41b7b3296e88a866367bb2fad42b159438895ee69ae074699c1ffe" + }, + "whole_raw": { + "bytes": 11487732, + "sha256": "9df3c1b6f65dfd8be944cd5cab8c631f7533530dfef3820d9fa5d74a5b1ac30f" + }, + "cache_hits": 0, + "cache_misses": 9311 + }, + "verification": { + "all_fixed_pre_pins_fresh": true, + "source_default_doc_support_parent_instrumented_stage_preserved": true, + "original_four_script_inverse_proof_reused_exact_hash": true, + "budget257_without_wrapper": true, + "private_profile_conditions": 5, + "strict_three_logs": true, + "owned_normal_exit_and_cleanup": true, + "project_restored": true, + "whole_zstd_independent_full_oracle_equality": true, + "whole_codec_reuse": "Identical packed/raw hashes and lengths authenticate r238 754415 literal partition proof; giant decode not repeated.", + "metrics_independent_full_partition_roundtrip": true + }, + "limits": [ + "Script wrapper counts are not native invocation counters. Declared zero means that wrapper not entered, including C++ bypass; it does not mean absent work or zero cost.", + "Nested inclusive timings include children and instrumentation. evaluate_candidate is inside rank_candidates. No CPU sums/subtractions, tick percentages, cause or stable cost inference.", + "One current274/library275 instrumented diagnostic only. No uninstrumented speed comparison/improvement, stable gain, 50ms/P95/D10/normalOS/Windows/final172/adoption/unit acceptance." + ], + "reviewer_runs": { + "engine": 0, + "compiler": 0, + "tests": 0, + "validator": 0, + "author": 0 + }, + "evidence_sha256": { + "/Applications/Godot.app/Contents/MacOS/Godot": { + "path": "/Applications/Godot.app/Contents/MacOS/Godot", + "bytes": 351312912, + "sha256": "c7cccbf8fb143e34e02fd6521e09be2c2b974f0d5db080b19071c9c570718ccf" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd", + "bytes": 17582, + "sha256": "92d5e1956f4e613e12555d756de4f71fef03678cde159ac68fac3188ce3f336e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py", + "bytes": 26296, + "sha256": "320ca668732b4ff72fc4449998af2327d4e5c527b06896740806aaf0487282b4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd", + "bytes": 2276, + "sha256": "597696c705cc8f0e79a35265ca3ef8df55f7fc3c4e0e5a2ce9a4e20e29e29a6f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst", + "bytes": 240032, + "sha256": "1a88f7ed27d1d32102c6fe3a9533221d2565191712ed15b631190479d1d41505" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-whole647-native-r02/diagnostic-measurement/after647.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-whole647-native-r02/diagnostic-measurement/after647.varbytes.zst", + "bytes": 246720, + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension", + "bytes": 323, + "sha256": "04c4311764ab9d75be3df884f960f0944cd474847fb1ca061224ce4c1bc2aef7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "/private/tmp/TheTree-pure-tags-r278-r04-72046c25b9384bcf8ea8ec91123462e1/candidate.dylib": { + "path": "/private/tmp/TheTree-pure-tags-r278-r04-72046c25b9384bcf8ea8ec91123462e1/candidate.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json", + "bytes": 21552, + "sha256": "54576596f82b8aceca440c1a5514ce811125e977c64c210675feecbb3901929f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/execution.json", + "bytes": 7196, + "sha256": "bb756aef33e7b7a6eaaabd5c662b5b1c5c4e37735c703b411064033d8911f23f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.gd", + "bytes": 7578, + "sha256": "a544b96710d6dcc36528a6e2e08d872dda92590651d7ab60cb49372cfbc46b33" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.py", + "bytes": 7321, + "sha256": "fb4dab44a00e7e375532a2c5395850c1324f75aca79ecb79fd6e06277988801a" + }, + "/private/tmp/thetree-prepare-current-residual-r311-r02.py": { + "path": "/private/tmp/thetree-prepare-current-residual-r311-r02.py", + "bytes": 3005, + "sha256": "fb48f0edd617f8f31ae0784585755ece6c902850ba7205665d94d53df34ee3b8" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/instrumentation.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/instrumentation.json", + "bytes": 46887, + "sha256": "b34033d2bb7f23322c60becda562b22b0fe897bb822f891a910ce87590d134e2" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "bytes": 1439, + "sha256": "81c4abc24624a7f68642c5c4e27626f003762c4b52b47e9cb2c566a2e0599045" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd", + "bytes": 1445, + "sha256": "a7c3f9c4d744e49808f4b3be1e9e105dec6b7e3ede4c83627986c459d67bbb91" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.gd", + "bytes": 7894, + "sha256": "2c4fe483fcebce41a8d1e24637cb87c4cc8cb2b894159fa2affa0ffa54b9eeb0" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.py", + "bytes": 7024, + "sha256": "d76ca75cca9d11b60729e6aea172f5a316ddcb94befc128dc0787becb0ca37ad" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238/instrumentation.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238/instrumentation.json", + "bytes": 47200, + "sha256": "16deb99a23600581b71d7cf8c35a6102cb0a8352992aab75fef88345dd398c30" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-actual-independent-review-r278-r04.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-actual-independent-review-r278-r04.json", + "bytes": 28145, + "sha256": "671f15fa542465cf6a7e88ee272a2ce67049fffcca2483205f999cfeb2075253" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/actual-root-verification.json", + "bytes": 17143, + "sha256": "00e01cce5240ebd3accddbfc88f8776ac4cd4dfa887df3b8ee319eb16c45913f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-actual-independent-review-r281.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-actual-independent-review-r281.json", + "bytes": 46359, + "sha256": "1876c883e898fdfb8c1c4fb84ee5950930719d0e623b3f010fad0312402166b4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/actual-root-verification.json", + "bytes": 28310, + "sha256": "1d3d3a0d804d508e7daf11551c30997b0ef048660ceaafb814fd7e07104ae292" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json", + "bytes": 976234, + "sha256": "0ec0212b04a1f16bbe8789976a359d62a69d68035063558a0e7e0250a381b3e5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json", + "bytes": 759469, + "sha256": "7f2403a6d4bd1dbff44f246bced74e810bf515f187f65c1a2dd3ef947c0445af" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json", + "bytes": 70364, + "sha256": "41085a75190fdb67ba44ac7f6893d42c18ee797762d4b00e7eda546ed025c460" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/performance_budget.candidate.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/performance_budget.candidate.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp", + "bytes": 54002, + "sha256": "ce20a90adb8a410dc1b6cbf607b7bfa8bf21eaef158c5c6bfc7a9bbcc703d2b2" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json", + "bytes": 23230, + "sha256": "75f9e4e4a4ea9286372ebf0f016e796067c9460e0815e0ef3e24988a702f04d5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/input.json", + "bytes": 981463, + "sha256": "c32c2f748c6dd91a2d35b2fd747582cd235fbabe0d7417446b8d67d8fb2d6dd5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.gd", + "bytes": 7611, + "sha256": "625e9cfb56464d6f2b2e08966d00d96bfb366062777caea509c7826599833278" + }, + "/private/tmp/thetree-prepare-current-residual-r311.py": { + "path": "/private/tmp/thetree-prepare-current-residual-r311.py", + "bytes": 9212, + "sha256": "a5f24807c541753294896efb7f5d973d4d9176efc668bfd81810aa1391d54c9d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.py", + "bytes": 7313, + "sha256": "fda8480371c3041e5a583263259998132f7ec70b3f78f850bb32553db5bcaac3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/guarded-r274.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/guarded-r274.gd", + "bytes": 1435, + "sha256": "84c5aca653f1a19217890bc257545d8f5d7a299c9b22c59a677ecdc9b2905bb7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/autoload/simulation_runtime.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/autoload/simulation_runtime.gd", + "bytes": 619011, + "sha256": "3da67f9c2c446ac9f4e26725cd48f9694cd0973646330f6bccc9e4aacfca64cd" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/performance_budget.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/performance_budget.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/simulation_kernel.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/simulation_kernel.gd", + "bytes": 8282, + "sha256": "5d578d7b845522388bd48a4a6e0c3a60e628498ec2da6aba722d8c6e2fc40a20" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/guest/guest_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/guest/guest_service.gd", + "bytes": 63573, + "sha256": "39986d98720d37dfd8c437b7043848df3b14120b307e99fef877428abd26b07d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/world/path_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/world/path_service.gd", + "bytes": 139394, + "sha256": "c96dc7b3ae6ed7107d410631e9d7501c5e25d0c4696a76d621e6bcd7ff2f7a97" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/input.json", + "bytes": 982794, + "sha256": "f1550159618411d9461c7ed8ab03e8066eaa5a9a7c683cc3982564a5ef261d16" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json", + "bytes": 25780, + "sha256": "eaadb3792770364bbf7245fb94c43e979c06c3b754f955f1a736e9ab81d2abc9" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-ai-r03-typed-difference-independent-review-r01/finite_variant_codec.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-ai-r03-typed-difference-independent-review-r01/finite_variant_codec.py", + "bytes": 5438, + "sha256": "8c7077b53e28da4054bdf7dd88e82de02a51149269a8fce59bae0e74f95b4734" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r238.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r238.json", + "bytes": 36734, + "sha256": "e41634755f116006c91ad251b48eb8b71286a53a6a687d6f371366f3140cc66d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-phase.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-phase.json", + "bytes": 8150, + "sha256": "4024cd99a6811f95e689125250358add350cea21e96d9cececdaa6f4b7d5c6dc" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/preexecution-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/preexecution-root-verification.json", + "bytes": 17075, + "sha256": "e31bab0f147236db1e6540751d19ca5029e75f8d03b3929042a9555d9191006f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json", + "bytes": 4566, + "sha256": "54e2e7aa9c6304b8d1ead5853eb78eafaad4cdeffb2dd3e4784643992a4d319f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-profile.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-profile.json", + "bytes": 907, + "sha256": "c338fd2e8eeb69746719c9a3f67a6cbd847b9667bdc139194e8a2d384cc09d10" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/execution.json", + "bytes": 12462, + "sha256": "c356c803ebe6320f3f4f9b034c2e796b309e8660151bda489a6a21313196386c" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/stderr.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/ended.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/ended.json", + "bytes": 1782, + "sha256": "772e2819688f9015ff251aba7a808eefc330515b057566af3792a19c76f3d71b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/adapter-owned-cleanup.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/adapter-owned-cleanup.json", + "bytes": 351, + "sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log", + "bytes": 13481, + "sha256": "abd5468739d8a5be58478e8793c7247dff293c239063d965f888bb0bb4aae112" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/stdout.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/stdout.log", + "bytes": 13631, + "sha256": "084f2763ea5568d13da47b7008824e18ad7251df7f5c0060b60bbafa75fb964a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/started.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/started.json", + "bytes": 2407, + "sha256": "106918d386dc406070da3a4ef62923abda5f085adf0b3040a0c4b809b7ffda05" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/process.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/process.json", + "bytes": 6691, + "sha256": "814b9eaeb258d34eda9d5d9e3b41b560dc4fe3dc1dc4bf12c6f8c49b0e7bde3b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/outer-owned-finally.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/outer-owned-finally.json", + "bytes": 964, + "sha256": "f7fa9a10130aacee3e6f801a2e1cb3a1bb5b6d91ffde88f1ea3b764e1dd347bb" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/report.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/report.json", + "bytes": 1962, + "sha256": "cc170c8dc21900560d12d703dc7035e38012936e64285f2f5a4bd5e96322a8b1" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst", + "bytes": 819, + "sha256": "2f2335353deec30ffa934cb7fe2c1002f83ec50edcc325a87543dcd481915639" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst", + "bytes": 246720, + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880" + } + }, + "canonical_doc4_context_pins": { + "IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 492770, + "sha256": "1dd710cb48626884c5692d230c1ace21291a4107d0148a11f020b6b7bd9c127a" + }, + "PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 410834, + "sha256": "c30ce7db6dbe85ac16b551105f239f5657e97e0dca1b293993684b100668c5fa" + }, + "work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1198450, + "sha256": "66d0a29d003c7d6a055669df0f79412f3bed09263f540855951251f69609a169" + }, + "progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 570488, + "sha256": "d7e746554b709b9d8408eee2550ee8a0b9bdb58975797c5cbd05467bdc59dc93" + } + }, + "archival_before_pins": { + "current_host_review/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/IMPLEMENTATION_PLAN.md", + "bytes": 511898, + "sha256": "de1f65be5107f297b6737749b89f93c066beb39f223689a27be3698611fdb9bc" + }, + "current_host_review/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/PROGRESS_INTEGRATION.md", + "bytes": 429962, + "sha256": "b259f86fe8d9709cf8f943b90aabae4e2ea2457dfce82eaa51a7edf23160b66b" + }, + "current_host_review/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/work_packages.json", + "bytes": 1247101, + "sha256": "d058f5d00a98bc162ffefa362c9dce2602adf7ce4cfac0317d5d9de580e96977" + }, + "current_host_review/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/progress_snapshot.json", + "bytes": 524354, + "sha256": "99e45a9ae230926987de481123e977a9b0d49fdcc21f1e450d74fc1e2467ccc5" + }, + "local_review/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/IMPLEMENTATION_PLAN.md", + "bytes": 491600, + "sha256": "b9c3e8ed33905f217afd1e5d80bb406a0cdb84a38ae9f77d604caac5be1e3df3" + }, + "local_review/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/PROGRESS_INTEGRATION.md", + "bytes": 409664, + "sha256": "d31d96e0ece5db7731cc26004dd006e156b2c6724ba4070267a34c0d9d6a77b2" + }, + "local_review/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/work_packages.json", + "bytes": 1171359, + "sha256": "ff213501d783d63a2cdaed9a19d2171ee00e8af3603a24ccad6a38372393b999" + }, + "local_review/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/progress_snapshot.json", + "bytes": 516395, + "sha256": "c9a96907d79c80fe469635dbfac26f5b4d6995c56a9c8f90e14ed9e80912ef6e" + }, + "whole_review/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/IMPLEMENTATION_PLAN.md", + "bytes": 492167, + "sha256": "f0a719c77547db888e52bd09be53313a97118d19d46a8948599fef5694716aef" + }, + "whole_review/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/PROGRESS_INTEGRATION.md", + "bytes": 410231, + "sha256": "674b882256016af3d7072d32a0bdd13f5e0ce2aa374694c37442354d224d8758" + }, + "whole_review/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/work_packages.json", + "bytes": 1175313, + "sha256": "5441490631fbe73baebc95029a75af50ccb71a8962a5b913a710b6763a8ee763" + }, + "whole_review/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/progress_snapshot.json", + "bytes": 521884, + "sha256": "8fd37b051cd48d55bde8dda2947f59918d1c8dbe37831e15951b1324e5218c3d" + } + } +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json new file mode 100644 index 0000000..bb6035a --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json @@ -0,0 +1,331 @@ +{ + "execution_allowed": true, + "blockers": [], + "repair_verified": { + "original_r311_retained": true, + "QA_single_freeze_expression_inverse_exact": true, + "driver_namespace_only_inverse_exact": true, + "starter_extends_decoded_correct": true, + "expected_checks": 18, + "check_basis": "15 explicit QA + 2 exclusive typed + 1 starter", + "shared_instrumented_stage_reused_unchanged": true, + "additional_clones": 0, + "compiler": 0, + "library_copies": 0, + "wrapper_methods": 24, + "declared_rows": 34, + "kernel_phase_rows": 11, + "source_parent_stage_files": 1299 + }, + "capacity": { + "fresh_free_bytes": 1185333248, + "required_bytes": 553648128, + "accepted_at_review_only": true, + "runtime_recheck_required": true + }, + "scope": "One owned90s current274/library275 instrumented cold646 to whole647 diagnostic. Complete raw original oracle equality and strict/private/owned cleanup remain mandatory. Prior fixed-input static findings reused after fresh hashes and stage/source inventory equality.", + "limitations": [ + "Nested inclusive only: no sums/subtractions as pure CPU, no uninstrumented speed comparison, stable performance/P95/D10/50ms/final172/OS/Windows/adoption/unit acceptance.", + "16 MiB output gate is post-phase aggregate, not live peak cap.", + "Static preflight permits only one owned engine after root fresh hash/foreign-engine/capacity gates; no actual output accepted yet." + ], + "reviewer_runs": { + "engine": 0, + "compiler": 0, + "tests": 0, + "validator": 0, + "author": 0, + "codec_decode": 0 + }, + "evidence_sha256": { + "/Applications/Godot.app/Contents/MacOS/Godot": { + "path": "/Applications/Godot.app/Contents/MacOS/Godot", + "bytes": 351312912, + "sha256": "c7cccbf8fb143e34e02fd6521e09be2c2b974f0d5db080b19071c9c570718ccf" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd", + "bytes": 17582, + "sha256": "92d5e1956f4e613e12555d756de4f71fef03678cde159ac68fac3188ce3f336e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py", + "bytes": 26296, + "sha256": "320ca668732b4ff72fc4449998af2327d4e5c527b06896740806aaf0487282b4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd", + "bytes": 2276, + "sha256": "597696c705cc8f0e79a35265ca3ef8df55f7fc3c4e0e5a2ce9a4e20e29e29a6f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst", + "bytes": 240032, + "sha256": "1a88f7ed27d1d32102c6fe3a9533221d2565191712ed15b631190479d1d41505" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-whole647-native-r02/diagnostic-measurement/after647.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-whole647-native-r02/diagnostic-measurement/after647.varbytes.zst", + "bytes": 246720, + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension", + "bytes": 323, + "sha256": "04c4311764ab9d75be3df884f960f0944cd474847fb1ca061224ce4c1bc2aef7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "/private/tmp/TheTree-pure-tags-r278-r04-72046c25b9384bcf8ea8ec91123462e1/candidate.dylib": { + "path": "/private/tmp/TheTree-pure-tags-r278-r04-72046c25b9384bcf8ea8ec91123462e1/candidate.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json", + "bytes": 21552, + "sha256": "54576596f82b8aceca440c1a5514ce811125e977c64c210675feecbb3901929f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/execution.json", + "bytes": 7196, + "sha256": "bb756aef33e7b7a6eaaabd5c662b5b1c5c4e37735c703b411064033d8911f23f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.gd", + "bytes": 7578, + "sha256": "a544b96710d6dcc36528a6e2e08d872dda92590651d7ab60cb49372cfbc46b33" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.py", + "bytes": 7321, + "sha256": "fb4dab44a00e7e375532a2c5395850c1324f75aca79ecb79fd6e06277988801a" + }, + "/private/tmp/thetree-prepare-current-residual-r311-r02.py": { + "path": "/private/tmp/thetree-prepare-current-residual-r311-r02.py", + "bytes": 3005, + "sha256": "fb48f0edd617f8f31ae0784585755ece6c902850ba7205665d94d53df34ee3b8" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/instrumentation.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/instrumentation.json", + "bytes": 46887, + "sha256": "b34033d2bb7f23322c60becda562b22b0fe897bb822f891a910ce87590d134e2" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "bytes": 1439, + "sha256": "81c4abc24624a7f68642c5c4e27626f003762c4b52b47e9cb2c566a2e0599045" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd", + "bytes": 1445, + "sha256": "a7c3f9c4d744e49808f4b3be1e9e105dec6b7e3ede4c83627986c459d67bbb91" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.gd", + "bytes": 7894, + "sha256": "2c4fe483fcebce41a8d1e24637cb87c4cc8cb2b894159fa2affa0ffa54b9eeb0" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.py", + "bytes": 7024, + "sha256": "d76ca75cca9d11b60729e6aea172f5a316ddcb94befc128dc0787becb0ca37ad" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238/instrumentation.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238/instrumentation.json", + "bytes": 47200, + "sha256": "16deb99a23600581b71d7cf8c35a6102cb0a8352992aab75fef88345dd398c30" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-actual-independent-review-r278-r04.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-actual-independent-review-r278-r04.json", + "bytes": 28145, + "sha256": "671f15fa542465cf6a7e88ee272a2ce67049fffcca2483205f999cfeb2075253" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/actual-root-verification.json", + "bytes": 17143, + "sha256": "00e01cce5240ebd3accddbfc88f8776ac4cd4dfa887df3b8ee319eb16c45913f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-actual-independent-review-r281.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-actual-independent-review-r281.json", + "bytes": 46359, + "sha256": "1876c883e898fdfb8c1c4fb84ee5950930719d0e623b3f010fad0312402166b4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/actual-root-verification.json", + "bytes": 28310, + "sha256": "1d3d3a0d804d508e7daf11551c30997b0ef048660ceaafb814fd7e07104ae292" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json", + "bytes": 976234, + "sha256": "0ec0212b04a1f16bbe8789976a359d62a69d68035063558a0e7e0250a381b3e5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json", + "bytes": 759469, + "sha256": "7f2403a6d4bd1dbff44f246bced74e810bf515f187f65c1a2dd3ef947c0445af" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json", + "bytes": 70364, + "sha256": "41085a75190fdb67ba44ac7f6893d42c18ee797762d4b00e7eda546ed025c460" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/performance_budget.candidate.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/performance_budget.candidate.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp", + "bytes": 54002, + "sha256": "ce20a90adb8a410dc1b6cbf607b7bfa8bf21eaef158c5c6bfc7a9bbcc703d2b2" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json", + "bytes": 23230, + "sha256": "75f9e4e4a4ea9286372ebf0f016e796067c9460e0815e0ef3e24988a702f04d5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/input.json", + "bytes": 981463, + "sha256": "c32c2f748c6dd91a2d35b2fd747582cd235fbabe0d7417446b8d67d8fb2d6dd5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.gd", + "bytes": 7611, + "sha256": "625e9cfb56464d6f2b2e08966d00d96bfb366062777caea509c7826599833278" + }, + "/private/tmp/thetree-prepare-current-residual-r311.py": { + "path": "/private/tmp/thetree-prepare-current-residual-r311.py", + "bytes": 9212, + "sha256": "a5f24807c541753294896efb7f5d973d4d9176efc668bfd81810aa1391d54c9d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.py", + "bytes": 7313, + "sha256": "fda8480371c3041e5a583263259998132f7ec70b3f78f850bb32553db5bcaac3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/guarded-r274.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/guarded-r274.gd", + "bytes": 1435, + "sha256": "84c5aca653f1a19217890bc257545d8f5d7a299c9b22c59a677ecdc9b2905bb7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/autoload/simulation_runtime.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/autoload/simulation_runtime.gd", + "bytes": 619011, + "sha256": "3da67f9c2c446ac9f4e26725cd48f9694cd0973646330f6bccc9e4aacfca64cd" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/performance_budget.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/performance_budget.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/simulation_kernel.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/simulation_kernel.gd", + "bytes": 8282, + "sha256": "5d578d7b845522388bd48a4a6e0c3a60e628498ec2da6aba722d8c6e2fc40a20" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/guest/guest_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/guest/guest_service.gd", + "bytes": 63573, + "sha256": "39986d98720d37dfd8c437b7043848df3b14120b307e99fef877428abd26b07d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/world/path_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/world/path_service.gd", + "bytes": 139394, + "sha256": "c96dc7b3ae6ed7107d410631e9d7501c5e25d0c4696a76d621e6bcd7ff2f7a97" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/input.json", + "bytes": 982794, + "sha256": "f1550159618411d9461c7ed8ab03e8066eaa5a9a7c683cc3982564a5ef261d16" + } + }, + "canonical_doc4_context_pins": { + "IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 492770, + "sha256": "1dd710cb48626884c5692d230c1ace21291a4107d0148a11f020b6b7bd9c127a" + }, + "PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 410834, + "sha256": "c30ce7db6dbe85ac16b551105f239f5657e97e0dca1b293993684b100668c5fa" + }, + "work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1198450, + "sha256": "66d0a29d003c7d6a055669df0f79412f3bed09263f540855951251f69609a169" + }, + "progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 570488, + "sha256": "d7e746554b709b9d8408eee2550ee8a0b9bdb58975797c5cbd05467bdc59dc93" + } + }, + "archival_before_pins": { + "current_host_review/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/IMPLEMENTATION_PLAN.md", + "bytes": 511898, + "sha256": "de1f65be5107f297b6737749b89f93c066beb39f223689a27be3698611fdb9bc" + }, + "current_host_review/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/PROGRESS_INTEGRATION.md", + "bytes": 429962, + "sha256": "b259f86fe8d9709cf8f943b90aabae4e2ea2457dfce82eaa51a7edf23160b66b" + }, + "current_host_review/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/work_packages.json", + "bytes": 1247101, + "sha256": "d058f5d00a98bc162ffefa362c9dce2602adf7ce4cfac0317d5d9de580e96977" + }, + "current_host_review/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/progress_snapshot.json", + "bytes": 524354, + "sha256": "99e45a9ae230926987de481123e977a9b0d49fdcc21f1e450d74fc1e2467ccc5" + }, + "local_review/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/IMPLEMENTATION_PLAN.md", + "bytes": 491600, + "sha256": "b9c3e8ed33905f217afd1e5d80bb406a0cdb84a38ae9f77d604caac5be1e3df3" + }, + "local_review/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/PROGRESS_INTEGRATION.md", + "bytes": 409664, + "sha256": "d31d96e0ece5db7731cc26004dd006e156b2c6724ba4070267a34c0d9d6a77b2" + }, + "local_review/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/work_packages.json", + "bytes": 1171359, + "sha256": "ff213501d783d63a2cdaed9a19d2171ee00e8af3603a24ccad6a38372393b999" + }, + "local_review/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/progress_snapshot.json", + "bytes": 516395, + "sha256": "c9a96907d79c80fe469635dbfac26f5b4d6995c56a9c8f90e14ed9e80912ef6e" + }, + "whole_review/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/IMPLEMENTATION_PLAN.md", + "bytes": 492167, + "sha256": "f0a719c77547db888e52bd09be53313a97118d19d46a8948599fef5694716aef" + }, + "whole_review/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/PROGRESS_INTEGRATION.md", + "bytes": 410231, + "sha256": "674b882256016af3d7072d32a0bdd13f5e0ce2aa374694c37442354d224d8758" + }, + "whole_review/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/work_packages.json", + "bytes": 1175313, + "sha256": "5441490631fbe73baebc95029a75af50ccb71a8962a5b913a710b6763a8ee763" + }, + "whole_review/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/progress_snapshot.json", + "bytes": 521884, + "sha256": "8fd37b051cd48d55bde8dda2947f59918d1c8dbe37831e15951b1324e5218c3d" + } + } +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json new file mode 100644 index 0000000..76a81db --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json @@ -0,0 +1,299 @@ +{ + "execution_allowed": false, + "blockers": [ + { + "id": "B1", + "file": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.gd", + "description": "Kernel metrics freeze expression clock._p23r311_metrics.duplicate(true)._p23r311_metrics.duplicate(true) reads an absent _p23r311_metrics field from the duplicated phase-key Dictionary. Replace this field expression with the single clock._p23r311_metrics.duplicate(true) in a separate revision; retain the original." + } + ], + "verified_scope": { + "wrapper_methods": 24, + "declared_metric_rows": 34, + "kernel_phase_rows": 11, + "expected_checks": 18, + "check_basis": "15 explicit QA + 2 exclusive typed + 1 starter", + "full_four_script_inverse_original_equal": true, + "budget_dependency_unwrapped_reused": true, + "source_files": 1299, + "stage_files": 1299, + "fresh_source_default_support_parent_stage_doc_protection": true, + "current_library_identity": "r274/library275 fixed pins verified", + "engine_execution_observed": false + }, + "limitations": [ + "One instrumented diagnostic only. Nested inclusive measurements cannot be added/subtracted for CPU attribution or compared as uninstrumented speed.", + "No stable gain/P95/D10/50ms/final172/OS/Windows/adoption/unit acceptance.", + "16 MiB output check is post-phase aggregate, not live peak cap." + ], + "additional_blockers": [], + "reviewer_runs": { + "engine": 0, + "compiler": 0, + "tests": 0, + "validator": 0, + "author": 0, + "codec_decode": 0 + }, + "evidence_sha256": { + "/Applications/Godot.app/Contents/MacOS/Godot": { + "path": "/Applications/Godot.app/Contents/MacOS/Godot", + "bytes": 351312912, + "sha256": "c7cccbf8fb143e34e02fd6521e09be2c2b974f0d5db080b19071c9c570718ccf" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd", + "bytes": 17582, + "sha256": "92d5e1956f4e613e12555d756de4f71fef03678cde159ac68fac3188ce3f336e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py", + "bytes": 26296, + "sha256": "320ca668732b4ff72fc4449998af2327d4e5c527b06896740806aaf0487282b4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd", + "bytes": 2276, + "sha256": "597696c705cc8f0e79a35265ca3ef8df55f7fc3c4e0e5a2ce9a4e20e29e29a6f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst", + "bytes": 240032, + "sha256": "1a88f7ed27d1d32102c6fe3a9533221d2565191712ed15b631190479d1d41505" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-whole647-native-r02/diagnostic-measurement/after647.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-whole647-native-r02/diagnostic-measurement/after647.varbytes.zst", + "bytes": 246720, + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension", + "bytes": 323, + "sha256": "04c4311764ab9d75be3df884f960f0944cd474847fb1ca061224ce4c1bc2aef7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "/private/tmp/TheTree-pure-tags-r278-r04-72046c25b9384bcf8ea8ec91123462e1/candidate.dylib": { + "path": "/private/tmp/TheTree-pure-tags-r278-r04-72046c25b9384bcf8ea8ec91123462e1/candidate.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json", + "bytes": 21552, + "sha256": "54576596f82b8aceca440c1a5514ce811125e977c64c210675feecbb3901929f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/execution.json", + "bytes": 7196, + "sha256": "bb756aef33e7b7a6eaaabd5c662b5b1c5c4e37735c703b411064033d8911f23f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.gd", + "bytes": 7611, + "sha256": "625e9cfb56464d6f2b2e08966d00d96bfb366062777caea509c7826599833278" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.py", + "bytes": 7313, + "sha256": "fda8480371c3041e5a583263259998132f7ec70b3f78f850bb32553db5bcaac3" + }, + "/private/tmp/thetree-prepare-current-residual-r311.py": { + "path": "/private/tmp/thetree-prepare-current-residual-r311.py", + "bytes": 9212, + "sha256": "a5f24807c541753294896efb7f5d973d4d9176efc668bfd81810aa1391d54c9d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/instrumentation.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/instrumentation.json", + "bytes": 46887, + "sha256": "b34033d2bb7f23322c60becda562b22b0fe897bb822f891a910ce87590d134e2" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/guarded-r274.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/guarded-r274.gd", + "bytes": 1435, + "sha256": "84c5aca653f1a19217890bc257545d8f5d7a299c9b22c59a677ecdc9b2905bb7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd", + "bytes": 1445, + "sha256": "a7c3f9c4d744e49808f4b3be1e9e105dec6b7e3ede4c83627986c459d67bbb91" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.gd", + "bytes": 7894, + "sha256": "2c4fe483fcebce41a8d1e24637cb87c4cc8cb2b894159fa2affa0ffa54b9eeb0" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.py", + "bytes": 7024, + "sha256": "d76ca75cca9d11b60729e6aea172f5a316ddcb94befc128dc0787becb0ca37ad" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238/instrumentation.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238/instrumentation.json", + "bytes": 47200, + "sha256": "16deb99a23600581b71d7cf8c35a6102cb0a8352992aab75fef88345dd398c30" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-actual-independent-review-r278-r04.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-actual-independent-review-r278-r04.json", + "bytes": 28145, + "sha256": "671f15fa542465cf6a7e88ee272a2ce67049fffcca2483205f999cfeb2075253" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/actual-root-verification.json", + "bytes": 17143, + "sha256": "00e01cce5240ebd3accddbfc88f8776ac4cd4dfa887df3b8ee319eb16c45913f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-actual-independent-review-r281.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-actual-independent-review-r281.json", + "bytes": 46359, + "sha256": "1876c883e898fdfb8c1c4fb84ee5950930719d0e623b3f010fad0312402166b4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/actual-root-verification.json", + "bytes": 28310, + "sha256": "1d3d3a0d804d508e7daf11551c30997b0ef048660ceaafb814fd7e07104ae292" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json", + "bytes": 976234, + "sha256": "0ec0212b04a1f16bbe8789976a359d62a69d68035063558a0e7e0250a381b3e5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json", + "bytes": 759469, + "sha256": "7f2403a6d4bd1dbff44f246bced74e810bf515f187f65c1a2dd3ef947c0445af" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json", + "bytes": 70364, + "sha256": "41085a75190fdb67ba44ac7f6893d42c18ee797762d4b00e7eda546ed025c460" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/performance_budget.candidate.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/performance_budget.candidate.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp", + "bytes": 54002, + "sha256": "ce20a90adb8a410dc1b6cbf607b7bfa8bf21eaef158c5c6bfc7a9bbcc703d2b2" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/input.json", + "bytes": 981463, + "sha256": "c32c2f748c6dd91a2d35b2fd747582cd235fbabe0d7417446b8d67d8fb2d6dd5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/autoload/simulation_runtime.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/autoload/simulation_runtime.gd", + "bytes": 619011, + "sha256": "3da67f9c2c446ac9f4e26725cd48f9694cd0973646330f6bccc9e4aacfca64cd" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/performance_budget.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/performance_budget.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/simulation_kernel.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/simulation_kernel.gd", + "bytes": 8282, + "sha256": "5d578d7b845522388bd48a4a6e0c3a60e628498ec2da6aba722d8c6e2fc40a20" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/guest/guest_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/guest/guest_service.gd", + "bytes": 63573, + "sha256": "39986d98720d37dfd8c437b7043848df3b14120b307e99fef877428abd26b07d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/world/path_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/world/path_service.gd", + "bytes": 139394, + "sha256": "c96dc7b3ae6ed7107d410631e9d7501c5e25d0c4696a76d621e6bcd7ff2f7a97" + } + }, + "canonical_doc4_context_pins": { + "IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 492770, + "sha256": "1dd710cb48626884c5692d230c1ace21291a4107d0148a11f020b6b7bd9c127a" + }, + "PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 410834, + "sha256": "c30ce7db6dbe85ac16b551105f239f5657e97e0dca1b293993684b100668c5fa" + }, + "work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1198450, + "sha256": "66d0a29d003c7d6a055669df0f79412f3bed09263f540855951251f69609a169" + }, + "progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 570488, + "sha256": "d7e746554b709b9d8408eee2550ee8a0b9bdb58975797c5cbd05467bdc59dc93" + } + }, + "archival_before_pins": { + "current_host_review/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/IMPLEMENTATION_PLAN.md", + "bytes": 511898, + "sha256": "de1f65be5107f297b6737749b89f93c066beb39f223689a27be3698611fdb9bc" + }, + "current_host_review/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/PROGRESS_INTEGRATION.md", + "bytes": 429962, + "sha256": "b259f86fe8d9709cf8f943b90aabae4e2ea2457dfce82eaa51a7edf23160b66b" + }, + "current_host_review/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/work_packages.json", + "bytes": 1247101, + "sha256": "d058f5d00a98bc162ffefa362c9dce2602adf7ce4cfac0317d5d9de580e96977" + }, + "current_host_review/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/progress_snapshot.json", + "bytes": 524354, + "sha256": "99e45a9ae230926987de481123e977a9b0d49fdcc21f1e450d74fc1e2467ccc5" + }, + "local_review/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/IMPLEMENTATION_PLAN.md", + "bytes": 491600, + "sha256": "b9c3e8ed33905f217afd1e5d80bb406a0cdb84a38ae9f77d604caac5be1e3df3" + }, + "local_review/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/PROGRESS_INTEGRATION.md", + "bytes": 409664, + "sha256": "d31d96e0ece5db7731cc26004dd006e156b2c6724ba4070267a34c0d9d6a77b2" + }, + "local_review/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/work_packages.json", + "bytes": 1171359, + "sha256": "ff213501d783d63a2cdaed9a19d2171ee00e8af3603a24ccad6a38372393b999" + }, + "local_review/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/progress_snapshot.json", + "bytes": 516395, + "sha256": "c9a96907d79c80fe469635dbfac26f5b4d6995c56a9c8f90e14ed9e80912ef6e" + }, + "whole_review/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/IMPLEMENTATION_PLAN.md", + "bytes": 492167, + "sha256": "f0a719c77547db888e52bd09be53313a97118d19d46a8948599fef5694716aef" + }, + "whole_review/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/PROGRESS_INTEGRATION.md", + "bytes": 410231, + "sha256": "674b882256016af3d7072d32a0bdd13f5e0ce2aa374694c37442354d224d8758" + }, + "whole_review/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/work_packages.json", + "bytes": 1175313, + "sha256": "5441490631fbe73baebc95029a75af50ccb71a8962a5b913a710b6763a8ee763" + }, + "whole_review/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/progress_snapshot.json", + "bytes": 521884, + "sha256": "8fd37b051cd48d55bde8dda2947f59918d1c8dbe37831e15951b1324e5218c3d" + } + } +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02.gd b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02.gd new file mode 100644 index 0000000..892dcb8 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02.gd @@ -0,0 +1,63 @@ +extends "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd" +# One instrumented r274/library275 tick. Freeze counters immediately after the synchronous tick. +func run() -> void: + output = OS.get_environment("THE_TREE_RUNTIME_MONITOR_OUTPUT") + var input_path := OS.get_environment("THE_TREE_REPLAY_SNAPSHOT") + var candidate := OS.get_environment("THE_TREE_PAIRED_CANDIDATE") + if not output.is_absolute_path() or not input_path.is_absolute_path() or candidate != "r274": quit(98); return + var original := FileAccess.get_file_as_bytes(input_path).decompress(11411840, FileAccess.COMPRESSION_ZSTD) + var initial: Dictionary = bytes_to_var(original) + runtime = root.get_node("SimulationRuntime") + clock = root.get_node("GameClock") + runtime.initialize(clock, root.get_node("GameState"), int(initial[&"systems"][&"runtime"][&"world_seed"])) + check(runtime.restore_snapshot(initial), "fixed646 public restore") + check(var_to_bytes(runtime.create_snapshot()) == original, "complete input bytes identical") + check(clock.absolute_minute == 646 and clock.paused and clock.speed == 1, "same paused646 speed1") + var path_listeners: Array = runtime.path_service.get_signal_connection_list(&"path_query_measured") + check(path_listeners.size() == 1 and path_listeners[0]["callable"] == Callable(runtime, "_on_path_query_measured") and int(path_listeners[0]["flags"]) == 0, "only builtin path listener") + check(clock.performance_budget.get_signal_connection_list(&"budget_exceeded").is_empty(), "no external budget listener") + check(clock.get_signal_connection_list(&"tick_phase_started").is_empty() and clock.get_signal_connection_list(&"tick_completed").is_empty(), "no phase or completion instrumentation") + check(runtime.path_service.cache_hits == 0 and runtime.path_service.cache_misses == 0 and runtime.path_service.cached_path_count() == 0, "same cold derived cache") + check(runtime.path_service._query_batch.is_empty() and runtime.path_service._guest_tree_workspace.is_empty() and runtime.path_service._guest_step_connector_memo.is_empty(), "same cold tree/native-edge/step workspace") + check(runtime._guest_access_batch_can_select(), "current builtin active fast guard") + runtime._p23r311_metrics.clear() + runtime.path_service._p23r311_metrics.clear() + clock._p23r311_metrics.clear() + runtime.guest_service._p23r311_metrics.clear() + check(runtime._p23r311_metrics.is_empty() and runtime.path_service._p23r311_metrics.is_empty() and clock._p23r311_metrics.is_empty() and runtime.guest_service._p23r311_metrics.is_empty(), "diagnostic counters reset after restore") + var declared: Dictionary = {"runtime": ["_project_guest_candidates", "_decide_guest_with_log", "_find_facility_access_path", "_estimated_actor_path_minutes", "_facility_access_candidates", "_guest_access_batch_can_select", "_project_guest_candidates_without_native", "_need_relief_for_facility_tags", "_service_category_for_tags", "get_facility_business_price", "_publish_snapshot"], "path": ["begin_guest_path_query_batch", "query_nearest_guest_access", "_build_guest_query_tree_shared_result", "_resolve_ready_guest_batch_point", "_guest_tree_reconstruct_path", "_cache_key", "_copy_path", "_guest_tree_cost", "_guest_batch_has_permitted_layer_crossing"], "guest": ["extract_candidates", "rank_candidates", "evaluate_candidate"], "kernel_phases": ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]} + var targets: Dictionary = {"runtime":runtime, "path":runtime.path_service, "guest":runtime.guest_service, "kernel_phases":clock} + for group: String in declared: + var counters: Dictionary = targets[group]._p23r311_metrics + for key: String in declared[group]: counters[key] = {"calls":0,"inclusive_us":0,"max_us":0} + var started := Time.get_ticks_usec() + clock.advance_minutes(1) + var elapsed := Time.get_ticks_usec() - started + var metrics: Dictionary = {"runtime":runtime._p23r311_metrics.duplicate(true), "path":runtime.path_service._p23r311_metrics.duplicate(true), "kernel_phases":clock._p23r311_metrics.duplicate(true), "guest":runtime.guest_service._p23r311_metrics.duplicate(true)} + check(clock.absolute_minute == 647 and clock.paused, "tick returns at paused647") + var after: Dictionary = runtime.create_snapshot() + var oracle := FileAccess.get_file_as_bytes(OS.get_environment("THE_TREE_CANDIDATE_ORACLE")).decompress(11487732, FileAccess.COMPRESSION_ZSTD) + check(var_to_bytes(after) == oracle, "complete after647 equals pinned r32 oracle") + var after_pin := typed("after647", after) + check(after_pin["uncompressed_sha256"] == "9df3c1b6f65dfd8be944cd5cab8c631f7533530dfef3820d9fa5d74a5b1ac30f", "complete output digest identical") + var metrics_valid: bool = true + for group: String in declared: + metrics_valid = metrics_valid and metrics[group].size() == declared[group].size() + for key: String in declared[group]: + var row: Dictionary = metrics[group].get(key,{}) + var count := int(row.get("calls",-1)) + metrics_valid = metrics_valid and count>=0 and int(row.get("inclusive_us",-1)) >= int(row.get("max_us",-1)) and int(row.get("max_us",-1)) >= 0 + if count==0: metrics_valid = metrics_valid and int(row["inclusive_us"])==0 and int(row["max_us"])==0 + for phase_index: int in range(11): metrics_valid = metrics_valid and int(metrics["kernel_phases"][str(phase_index)]["calls"]) == 1 + for key: String in ["extract_candidates","rank_candidates","evaluate_candidate"]: metrics_valid = metrics_valid and int(metrics["guest"][key]["calls"])>0 + for key: String in ["_project_guest_candidates","_decide_guest_with_log","get_facility_business_price","_publish_snapshot"]: metrics_valid = metrics_valid and int(metrics["runtime"][key]["calls"])>0 + metrics_valid = metrics_valid and int(metrics["path"]["begin_guest_path_query_batch"]["calls"])>0 and int(metrics["path"]["_build_guest_query_tree_shared_result"]["calls"])>0 + check(metrics_valid, "declared counters cover zero/native bypass and positive scopes; ordered eleven phases observed") + check(int(metrics["runtime"]["_project_guest_candidates_without_native"]["calls"])==0, "every projected candidate call selected current native pipeline; no whole fallback") + var metric_pin := typed("inclusive-residual-metrics", metrics) + var report := {"plan_id":"P23-02", "candidate":candidate, "sample":OS.get_environment("THE_TREE_PAIRED_SAMPLE"), "pid":OS.get_process_id(), "observed_instrumented_tick_us":elapsed, "metrics":metric_pin, "diagnostic_only":true, "after647":after_pin, "cache_hits":runtime.path_service.cache_hits, "cache_misses":runtime.path_service.cache_misses, "checks":checks, "failures":failures, "passed":failures.is_empty(), "unit_accepted":false, "performance_budget_accepted":false, "normal_OS_accepted":false, "Windows_accepted":false, "candidate_adopted":false, "limits":["One instrumented r274/library275 cold646 tick. Original bodies retained, typed state oracle equality required. Nested inclusive durations include diagnostic overhead and children; do not sum/subtract for pure CPU or compare against uninstrumented timings; no performance acceptance.", "No Main, rendering, OS input or realtime x3. Timed interval contains builtin production callbacks; snapshot verification and compression occur after timing."]} + var file := FileAccess.open(output.path_join("report.json"), FileAccess.WRITE) + if file == null: quit(98); return + file.store_string(JSON.stringify(report, "\t")); file.close() + print("Residual diagnostic whole647: %d checks, %d failures" % [checks, failures.size()]) + quit(0 if failures.is_empty() else 1) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02.py b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02.py new file mode 100644 index 0000000..af16062 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02.py @@ -0,0 +1,73 @@ +# coding: utf-8 +"""One adjacent cold whole647 pair; equivalence and timing observation only.""" +from pathlib import Path +import hashlib,importlib.util,json,os,shutil,subprocess,sys,uuid +sys.dont_write_bytecode=True +R=Path(__file__).resolve().parents[2];A=R/'artifacts/original-completion-2026-10-02' +O=A/'p23-02-current-residual-diagnostic-r311-r02';D=R/'docs/plans/original-completion-2026-10-02' +NAMES=['IMPLEMENTATION_PLAN.md','PROGRESS_INTEGRATION.md','work_packages.json','progress_snapshot.json'] +def mod(name,path): + s=importlib.util.spec_from_file_location(name,path);m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m +def unpack(path):return subprocess.run(['/opt/homebrew/bin/zstd','-d','-q','-c',str(path)],check=True,capture_output=True,timeout=10).stdout +def main(): + r=mod('pair_runner',R/'tools/run_all_tests.py');outer=mod('pair_owned',r.SUPPORT/'owned_outer.py');plan=r.read(O/'input.json') + assert not (O/'execution.json').exists() + fixed=plan['pins'];source=r.source_refs(R);player=r.default_player(R);docs={n:r.sha(D/n) for n in NAMES} + pre_path=A/'p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json' + pre=r.read(pre_path);assert pre['execution_allowed'] and not pre['blockers'] + for group in ['evidence_sha256','canonical_doc4_context_pins']: + for q in pre[group].values(): + p=Path(q['path']);assert p.stat().st_size==q['bytes'] and r.sha(p)==q['sha256'] + root=r.read(O/'preexecution-root-verification.json');assert root['passed'] and root['review_sha256']==r.sha(pre_path) + assert source==plan['source_before'] and player==plan['default_before'] and docs==plan['doc4_before'] + stages={k:Path(v) for k,v in plan['stages'].items()};public={k:(p/'project.godot').read_bytes() for k,p in stages.items()} + def protect(): + assert r.source_refs(R)==source and r.default_player(R)==player and {n:r.sha(D/n) for n in NAMES}==docs + assert r.inventory(r.SUPPORT)==plan['support_inventory'] + for k,p in stages.items():assert r.inventory(p,stage=True)==plan['stage_inventory'] + for k,p in plan['parents'].items():assert r.inventory(Path(p),stage=True)==plan['inventories'][k] + for k,q in fixed.items(): + p=Path(q['path']);assert p.stat().st_size==q['bytes'] and r.sha(p)==q['sha256'],k + protect() + assert r.read(Path(fixed['local_review']['path']))['finite_local_equivalence_accepted'] + assert r.read(Path(fixed['whole_review']['path']))['finite_whole647_equivalence_accepted'] + phases=[];samples=[];error=None;cleanup=[];cleanup_errors=[] + oracle=unpack(fixed['oracle']['path']);assert len(oracle)==11487732 and hashlib.sha256(oracle).hexdigest()=='9df3c1b6f65dfd8be944cd5cab8c631f7533530dfef3820d9fa5d74a5b1ac30f' + try: + for k in ['r274']: + protect();assert not outer.native.helper['live_engines']() and shutil.disk_usage(A).free>=plan['capacity_floor_bytes'] + stage=stages[k];output=O/(k+'-measurement');output.mkdir();ident=uuid.uuid4().hex + startup='TheTree-PCK-tests-'+ident+'-whole-startup';profile='TheTree-PCK-tests-'+ident+'-whole-runtime' + assert not r.profile_path(startup).exists() and not r.profile_path(profile).exists() + env=r.fresh_environment(os.environ) + env.update(THE_TREE_PACK_PROFILE_NAME=profile,THE_TREE_PACK_PROFILE_EXPECTED=str(r.profile_path(profile)),THE_TREE_PACK_PROFILE_REPORT=str(O/(k+'-profile.json')),THE_TREE_RUNTIME_MONITOR_OUTPUT=str(output),THE_TREE_REPLAY_SNAPSHOT=fixed['fixture']['path'],THE_TREE_CANDIDATE_ORACLE=fixed['oracle']['path'],THE_TREE_PAIRED_CANDIDATE=k,THE_TREE_PAIRED_SAMPLE=k) + (stage/'project.godot').write_bytes(r.private_project(public[k],startup));phase=O/k + argv=[fixed['engine']['path'],'--headless','--path',str(stage),'--script',fixed['starter_'+k]['path'],'--verbose','--log-file',str(phase/'engine-native.log')] + result,capture=outer.run_phase(argv,phase,90,env,now_fn=r.now,dump_fn=r.write,sha_fn=r.sha,live_engines_fn=outer.native.helper['live_engines']) + row=dict(candidate=k,result=result,capture=capture);phases.append(row);r.write(O/(k+'-phase.json'),row) + report_path=output/'report.json';report=r.read(report_path) if report_path.exists() else None + if report is not None:samples.append(report) + assert result is not None and result['exit_code']==0 and not result['error_lines'] and not result['timed_out'] and capture['passed'] + logs=''.join((phase/n).read_text() for n in ['stdout.log','stderr.log','engine-native.log']) + assert 'Orphan StringName:' not in logs and 'unclaimed string names' not in logs + assert report and report['passed'] and not report['failures'] and report['pid']==result['pid'] and report['candidate']==k and report['sample']==k and report['checks']==18 + assert (phase/'stdout.log').read_text().count('Residual diagnostic whole647: 18 checks, 0 failures')==1 and (phase/'stdout.log').read_text().count('NATIVE_ADAPTER_LIBRARY_REGISTERED')==1 + r.profile_gate(r.profile_path(profile),O/(k+'-profile.json'),profile) + ref=report['after647'];raw=unpack(ref['path']);assert raw==oracle and len(raw)==ref['uncompressed_bytes'] and hashlib.sha256(raw).hexdigest()==ref['uncompressed_sha256'] + metric_ref=report['metrics'];metric_raw=unpack(metric_ref['path']);assert len(metric_raw)==metric_ref['uncompressed_bytes'] and hashlib.sha256(metric_raw).hexdigest()==metric_ref['uncompressed_sha256'] + (stage/'project.godot').write_bytes(public[k]);protect() + except BaseException as caught:error=type(caught).__name__+': '+str(caught) + finally: + cleanup,cleanup_errors=outer.finish_captured(outer.OWNED) + if all(q['engine_ended'] is True for q in cleanup): + for k,p in stages.items():(p/'project.godot').write_bytes(public[k]) + else:cleanup_errors.append('Project restoration refused while owned child remains live') + guard_errors=[] + try:protect() + except BaseException as caught:guard_errors.append(type(caught).__name__+': '+str(caught)) + assert sum(p.stat().st_size for p in O.rglob('*') if p.is_file() and 'stage' not in p.relative_to(O).parts)<=16*1048576 + pairs=[] # A diagnostic observation cannot support an uninstrumented speed comparison. + passed=error is None and not guard_errors and not cleanup_errors and len(samples)==1 and len(phases)==1 + r.write(O/'execution.json',dict(passed=passed,error=error,guard_errors=guard_errors,phases=phases,samples=samples,diagnostic_only=True,cleanup=cleanup,cleanup_errors=cleanup_errors,input_source_default_doc4_preserved=not guard_errors,candidate_adopted=False,unit_accepted=False,performance_accepted=False,normal_OS_accepted=False,Windows_accepted=False,limitations=['One instrumented whole647 equivalence and nested inclusive residual metrics only. No sums/subtractions as pure CPU, no uninstrumented speed comparisons. Stable gain, P95, budget, final regression, realtime x3/Main/render/OS/Windows remain unaccepted.'])) + print(json.dumps(dict(passed=passed,error=error,guard_errors=guard_errors,samples=len(samples))),flush=True);return 0 if passed else 1 +if __name__=='__main__':raise SystemExit(main()) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json new file mode 100644 index 0000000..3ad9929 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json @@ -0,0 +1,388 @@ +{ + "passed": true, + "review_sha256": "a38dae71afd2b5db0591ecca16b65abc3158f080460e9c0b09a265f339967d09", + "verified_entries": [ + { + "path": "/Applications/Godot.app/Contents/MacOS/Godot", + "bytes": 351312912, + "sha256": "c7cccbf8fb143e34e02fd6521e09be2c2b974f0d5db080b19071c9c570718ccf" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd", + "bytes": 17582, + "sha256": "92d5e1956f4e613e12555d756de4f71fef03678cde159ac68fac3188ce3f336e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py", + "bytes": 26296, + "sha256": "320ca668732b4ff72fc4449998af2327d4e5c527b06896740806aaf0487282b4" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd", + "bytes": 2276, + "sha256": "597696c705cc8f0e79a35265ca3ef8df55f7fc3c4e0e5a2ce9a4e20e29e29a6f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst", + "bytes": 240032, + "sha256": "1a88f7ed27d1d32102c6fe3a9533221d2565191712ed15b631190479d1d41505" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-whole647-native-r02/diagnostic-measurement/after647.varbytes.zst", + "bytes": 246720, + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension", + "bytes": 323, + "sha256": "04c4311764ab9d75be3df884f960f0944cd474847fb1ca061224ce4c1bc2aef7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + { + "path": "/private/tmp/TheTree-pure-tags-r278-r04-72046c25b9384bcf8ea8ec91123462e1/candidate.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json", + "bytes": 21552, + "sha256": "54576596f82b8aceca440c1a5514ce811125e977c64c210675feecbb3901929f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/execution.json", + "bytes": 7196, + "sha256": "bb756aef33e7b7a6eaaabd5c662b5b1c5c4e37735c703b411064033d8911f23f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.gd", + "bytes": 7578, + "sha256": "a544b96710d6dcc36528a6e2e08d872dda92590651d7ab60cb49372cfbc46b33" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.py", + "bytes": 7321, + "sha256": "fb4dab44a00e7e375532a2c5395850c1324f75aca79ecb79fd6e06277988801a" + }, + { + "path": "/private/tmp/thetree-prepare-current-residual-r311-r02.py", + "bytes": 3005, + "sha256": "fb48f0edd617f8f31ae0784585755ece6c902850ba7205665d94d53df34ee3b8" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/instrumentation.json", + "bytes": 46887, + "sha256": "b34033d2bb7f23322c60becda562b22b0fe897bb822f891a910ce87590d134e2" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "bytes": 1439, + "sha256": "81c4abc24624a7f68642c5c4e27626f003762c4b52b47e9cb2c566a2e0599045" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd", + "bytes": 1445, + "sha256": "a7c3f9c4d744e49808f4b3be1e9e105dec6b7e3ede4c83627986c459d67bbb91" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.gd", + "bytes": 7894, + "sha256": "2c4fe483fcebce41a8d1e24637cb87c4cc8cb2b894159fa2affa0ffa54b9eeb0" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.py", + "bytes": 7024, + "sha256": "d76ca75cca9d11b60729e6aea172f5a316ddcb94befc128dc0787becb0ca37ad" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238/instrumentation.json", + "bytes": 47200, + "sha256": "16deb99a23600581b71d7cf8c35a6102cb0a8352992aab75fef88345dd398c30" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-actual-independent-review-r278-r04.json", + "bytes": 28145, + "sha256": "671f15fa542465cf6a7e88ee272a2ce67049fffcca2483205f999cfeb2075253" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/actual-root-verification.json", + "bytes": 17143, + "sha256": "00e01cce5240ebd3accddbfc88f8776ac4cd4dfa887df3b8ee319eb16c45913f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-actual-independent-review-r281.json", + "bytes": 46359, + "sha256": "1876c883e898fdfb8c1c4fb84ee5950930719d0e623b3f010fad0312402166b4" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/actual-root-verification.json", + "bytes": 28310, + "sha256": "1d3d3a0d804d508e7daf11551c30997b0ef048660ceaafb814fd7e07104ae292" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json", + "bytes": 976234, + "sha256": "0ec0212b04a1f16bbe8789976a359d62a69d68035063558a0e7e0250a381b3e5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json", + "bytes": 759469, + "sha256": "7f2403a6d4bd1dbff44f246bced74e810bf515f187f65c1a2dd3ef947c0445af" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json", + "bytes": 70364, + "sha256": "41085a75190fdb67ba44ac7f6893d42c18ee797762d4b00e7eda546ed025c460" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/performance_budget.candidate.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp", + "bytes": 54002, + "sha256": "ce20a90adb8a410dc1b6cbf607b7bfa8bf21eaef158c5c6bfc7a9bbcc703d2b2" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json", + "bytes": 23230, + "sha256": "75f9e4e4a4ea9286372ebf0f016e796067c9460e0815e0ef3e24988a702f04d5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/input.json", + "bytes": 981463, + "sha256": "c32c2f748c6dd91a2d35b2fd747582cd235fbabe0d7417446b8d67d8fb2d6dd5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.gd", + "bytes": 7611, + "sha256": "625e9cfb56464d6f2b2e08966d00d96bfb366062777caea509c7826599833278" + }, + { + "path": "/private/tmp/thetree-prepare-current-residual-r311.py", + "bytes": 9212, + "sha256": "a5f24807c541753294896efb7f5d973d4d9176efc668bfd81810aa1391d54c9d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.py", + "bytes": 7313, + "sha256": "fda8480371c3041e5a583263259998132f7ec70b3f78f850bb32553db5bcaac3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/guarded-r274.gd", + "bytes": 1435, + "sha256": "84c5aca653f1a19217890bc257545d8f5d7a299c9b22c59a677ecdc9b2905bb7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/autoload/simulation_runtime.gd", + "bytes": 619011, + "sha256": "3da67f9c2c446ac9f4e26725cd48f9694cd0973646330f6bccc9e4aacfca64cd" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/performance_budget.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/simulation_kernel.gd", + "bytes": 8282, + "sha256": "5d578d7b845522388bd48a4a6e0c3a60e628498ec2da6aba722d8c6e2fc40a20" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/guest/guest_service.gd", + "bytes": 63573, + "sha256": "39986d98720d37dfd8c437b7043848df3b14120b307e99fef877428abd26b07d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/world/path_service.gd", + "bytes": 139394, + "sha256": "c96dc7b3ae6ed7107d410631e9d7501c5e25d0c4696a76d621e6bcd7ff2f7a97" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/input.json", + "bytes": 982794, + "sha256": "f1550159618411d9461c7ed8ab03e8066eaa5a9a7c683cc3982564a5ef261d16" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311-r02.json", + "bytes": 25780, + "sha256": "eaadb3792770364bbf7245fb94c43e979c06c3b754f955f1a736e9ab81d2abc9" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-ai-r03-typed-difference-independent-review-r01/finite_variant_codec.py", + "bytes": 5438, + "sha256": "8c7077b53e28da4054bdf7dd88e82de02a51149269a8fce59bae0e74f95b4734" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r238.json", + "bytes": 36734, + "sha256": "e41634755f116006c91ad251b48eb8b71286a53a6a687d6f371366f3140cc66d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-phase.json", + "bytes": 8150, + "sha256": "4024cd99a6811f95e689125250358add350cea21e96d9cececdaa6f4b7d5c6dc" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/preexecution-root-verification.json", + "bytes": 17075, + "sha256": "e31bab0f147236db1e6540751d19ca5029e75f8d03b3929042a9555d9191006f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json", + "bytes": 4566, + "sha256": "54e2e7aa9c6304b8d1ead5853eb78eafaad4cdeffb2dd3e4784643992a4d319f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-profile.json", + "bytes": 907, + "sha256": "c338fd2e8eeb69746719c9a3f67a6cbd847b9667bdc139194e8a2d384cc09d10" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/execution.json", + "bytes": 12462, + "sha256": "c356c803ebe6320f3f4f9b034c2e796b309e8660151bda489a6a21313196386c" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/ended.json", + "bytes": 1782, + "sha256": "772e2819688f9015ff251aba7a808eefc330515b057566af3792a19c76f3d71b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/adapter-owned-cleanup.json", + "bytes": 351, + "sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log", + "bytes": 13481, + "sha256": "abd5468739d8a5be58478e8793c7247dff293c239063d965f888bb0bb4aae112" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/stdout.log", + "bytes": 13631, + "sha256": "084f2763ea5568d13da47b7008824e18ad7251df7f5c0060b60bbafa75fb964a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/started.json", + "bytes": 2407, + "sha256": "106918d386dc406070da3a4ef62923abda5f085adf0b3040a0c4b809b7ffda05" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/process.json", + "bytes": 6691, + "sha256": "814b9eaeb258d34eda9d5d9e3b41b560dc4fe3dc1dc4bf12c6f8c49b0e7bde3b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/outer-owned-finally.json", + "bytes": 964, + "sha256": "f7fa9a10130aacee3e6f801a2e1cb3a1bb5b6d91ffde88f1ea3b764e1dd347bb" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/report.json", + "bytes": 1962, + "sha256": "cc170c8dc21900560d12d703dc7035e38012936e64285f2f5a4bd5e96322a8b1" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst", + "bytes": 819, + "sha256": "2f2335353deec30ffa934cb7fe2c1002f83ec50edcc325a87543dcd481915639" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst", + "bytes": 246720, + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 492770, + "sha256": "1dd710cb48626884c5692d230c1ace21291a4107d0148a11f020b6b7bd9c127a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 410834, + "sha256": "c30ce7db6dbe85ac16b551105f239f5657e97e0dca1b293993684b100668c5fa" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1198450, + "sha256": "66d0a29d003c7d6a055669df0f79412f3bed09263f540855951251f69609a169" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 570488, + "sha256": "d7e746554b709b9d8408eee2550ee8a0b9bdb58975797c5cbd05467bdc59dc93" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/IMPLEMENTATION_PLAN.md", + "bytes": 511898, + "sha256": "de1f65be5107f297b6737749b89f93c066beb39f223689a27be3698611fdb9bc" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/PROGRESS_INTEGRATION.md", + "bytes": 429962, + "sha256": "b259f86fe8d9709cf8f943b90aabae4e2ea2457dfce82eaa51a7edf23160b66b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/work_packages.json", + "bytes": 1247101, + "sha256": "d058f5d00a98bc162ffefa362c9dce2602adf7ce4cfac0317d5d9de580e96977" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/progress_snapshot.json", + "bytes": 524354, + "sha256": "99e45a9ae230926987de481123e977a9b0d49fdcc21f1e450d74fc1e2467ccc5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/IMPLEMENTATION_PLAN.md", + "bytes": 491600, + "sha256": "b9c3e8ed33905f217afd1e5d80bb406a0cdb84a38ae9f77d604caac5be1e3df3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/PROGRESS_INTEGRATION.md", + "bytes": 409664, + "sha256": "d31d96e0ece5db7731cc26004dd006e156b2c6724ba4070267a34c0d9d6a77b2" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/work_packages.json", + "bytes": 1171359, + "sha256": "ff213501d783d63a2cdaed9a19d2171ee00e8af3603a24ccad6a38372393b999" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/progress_snapshot.json", + "bytes": 516395, + "sha256": "c9a96907d79c80fe469635dbfac26f5b4d6995c56a9c8f90e14ed9e80912ef6e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/IMPLEMENTATION_PLAN.md", + "bytes": 492167, + "sha256": "f0a719c77547db888e52bd09be53313a97118d19d46a8948599fef5694716aef" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/PROGRESS_INTEGRATION.md", + "bytes": 410231, + "sha256": "674b882256016af3d7072d32a0bdd13f5e0ce2aa374694c37442354d224d8758" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/work_packages.json", + "bytes": 1175313, + "sha256": "5441490631fbe73baebc95029a75af50ccb71a8962a5b913a710b6763a8ee763" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/progress_snapshot.json", + "bytes": 521884, + "sha256": "8fd37b051cd48d55bde8dda2947f59918d1c8dbe37831e15951b1324e5218c3d" + } + ], + "unit_accepted": false, + "performance_accepted": false +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/execution.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/execution.json new file mode 100644 index 0000000..c643e9c --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/execution.json @@ -0,0 +1,278 @@ +{ + "passed": true, + "error": null, + "guard_errors": [], + "phases": [ + { + "candidate": "r274", + "result": { + "argv": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "pid": 84968, + "started_utc": "2026-10-12T01:28:23.989473+00:00", + "ended_utc": "2026-10-12T01:28:29.750087+00:00", + "wall_seconds": 5.759995875, + "exit_code": 0, + "helper_exit_code": 0, + "timed_out": false, + "stdout_sha256": "084f2763ea5568d13da47b7008824e18ad7251df7f5c0060b60bbafa75fb964a", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "error_lines": [], + "owned_popen_ended": true, + "old_helper_engine_ended": true, + "start_receipt_written": true, + "end_receipt_written": true, + "lifecycle_error": null, + "old_helper_lifecycle_error": null, + "actual_start_binding": { + "scope": "isolated diagnostic owned child", + "event": "ENGINE_STARTED", + "actual_pid": 84968, + "owner_pid": 84940, + "command": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "monotonic_ns": 3009952041, + "pid": 84968, + "argv": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "started_utc": "2026-10-12T01:28:23.989473+00:00", + "current_process_identity": { + "pid": 84968, + "ppid": 84940, + "pgid": 84968, + "args": "/Applications/Godot.app/Contents/MacOS/Godot --headless --path /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage --script /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd --verbose --log-file /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + }, + "live_identity_exact": true, + "tracked_child_ended_before_initial_probe": false, + "signal_scope": "tracked Popen child only; no external group signal" + }, + "actual_end_binding": { + "scope": "isolated diagnostic owned child", + "event": "ENGINE_ENDED", + "actual_pid": 84968, + "owner_pid": 84940, + "command": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "monotonic_ns": 8762236083, + "exit_code": 0, + "actual_process_exit_code": 0, + "engine_ended": true, + "timed_out": false, + "lifecycle_error": null, + "start_receipt_written": true, + "pid": 84968, + "argv": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "ended_utc": "2026-10-12T01:28:29.747235+00:00", + "signal_scope": "tracked Popen child only; no external group signal" + }, + "strict_native_diagnostics": { + "errors": [], + "banner_count": 1, + "known_unicode_diagnostic_count": 0, + "unrecognized_unicode_diagnostic_count": 0, + "exit_leak_diagnostic_lines": [] + }, + "external_process_or_group_signals": 0, + "owned_child_process_helper_sha256": "c007e712c281573254faa1233c2ac92e100ab87393256a6dc096b35283e43037", + "adapter_owned_cleanup": { + "owned_child_created": true, + "engine_ended": true, + "actual_process_exit_code": 0, + "attempts": [ + { + "attempt": 1, + "kill_attempted": false, + "wait_timeout_seconds": 5, + "wait_completed": true, + "errors": [], + "poll_before": 0, + "wait_returned_code": 0, + "poll_after": 0 + } + ], + "errors": [] + }, + "adapter_error": null, + "old_helper_bytes_preserved": true, + "helper_wait_None_maps_to_actual_timeout_seconds": 5, + "explicit_helper_wait_timeouts_preserved": true, + "additional_cleanup_wait_timeout_seconds": 5, + "additional_cleanup_max_attempts": 3 + }, + "capture": { + "actual_captured_pids": [ + 84968 + ], + "cleanup": [ + { + "pid": 84968, + "cleanup": { + "owned_child_created": true, + "engine_ended": true, + "actual_process_exit_code": 0, + "attempts": [ + { + "attempt": 1, + "kill_attempted": false, + "wait_timeout_seconds": 5, + "wait_completed": true, + "errors": [], + "poll_before": 0, + "wait_returned_code": 0, + "poll_after": 0 + } + ], + "errors": [] + }, + "outer_cleanup_errors": [], + "engine_ended": true, + "outer_maximum_helper_invocations": 3, + "helper_maximum_waits": 3, + "per_wait_timeout_seconds": 5, + "foreign_process_or_group_signals": 0 + } + ], + "adapter_exception": null, + "all_captured_ended": true, + "outer_cleanup_errors": [], + "foreign_process_or_group_signals": 0, + "all_cleanup_before_outer_receipt": true, + "outer_receipt_written": true, + "outer_receipt_error": null, + "passed": true + } + } + ], + "samples": [ + { + "Windows_accepted": false, + "after647": { + "bytes": 246720, + "codec": "zstd", + "field_deletions": 0, + "file_envelope": false, + "full_bytes_roundtrip": true, + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst", + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880", + "uncompressed_bytes": 11487732, + "uncompressed_sha256": "9df3c1b6f65dfd8be944cd5cab8c631f7533530dfef3820d9fa5d74a5b1ac30f" + }, + "cache_hits": 0, + "cache_misses": 9311, + "candidate": "r274", + "candidate_adopted": false, + "checks": 18, + "diagnostic_only": true, + "failures": [], + "limits": [ + "One instrumented r274/library275 cold646 tick. Original bodies retained, typed state oracle equality required. Nested inclusive durations include diagnostic overhead and children; do not sum/subtract for pure CPU or compare against uninstrumented timings; no performance acceptance.", + "No Main, rendering, OS input or realtime x3. Timed interval contains builtin production callbacks; snapshot verification and compression occur after timing." + ], + "metrics": { + "bytes": 819, + "codec": "zstd", + "field_deletions": 0, + "file_envelope": false, + "full_bytes_roundtrip": true, + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst", + "sha256": "2f2335353deec30ffa934cb7fe2c1002f83ec50edcc325a87543dcd481915639", + "uncompressed_bytes": 3896, + "uncompressed_sha256": "cb81ef4cde41b7b3296e88a866367bb2fad42b159438895ee69ae074699c1ffe" + }, + "normal_OS_accepted": false, + "observed_instrumented_tick_us": 1268510, + "passed": true, + "performance_budget_accepted": false, + "pid": 84968, + "plan_id": "P23-02", + "sample": "r274", + "unit_accepted": false + } + ], + "diagnostic_only": true, + "cleanup": [ + { + "pid": 84968, + "cleanup": { + "owned_child_created": true, + "engine_ended": true, + "actual_process_exit_code": 0, + "attempts": [ + { + "attempt": 1, + "kill_attempted": false, + "wait_timeout_seconds": 5, + "wait_completed": true, + "errors": [], + "poll_before": 0, + "wait_returned_code": 0, + "poll_after": 0 + } + ], + "errors": [] + }, + "outer_cleanup_errors": [], + "engine_ended": true, + "outer_maximum_helper_invocations": 3, + "helper_maximum_waits": 3, + "per_wait_timeout_seconds": 5, + "foreign_process_or_group_signals": 0 + } + ], + "cleanup_errors": [], + "input_source_default_doc4_preserved": true, + "candidate_adopted": false, + "unit_accepted": false, + "performance_accepted": false, + "normal_OS_accepted": false, + "Windows_accepted": false, + "limitations": [ + "One instrumented whole647 equivalence and nested inclusive residual metrics only. No sums/subtractions as pure CPU, no uninstrumented speed comparisons. Stable gain, P95, budget, final regression, realtime x3/Main/render/OS/Windows remain unaccepted." + ] +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd new file mode 100644 index 0000000..7fbbd69 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd @@ -0,0 +1,16 @@ +extends "/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.gd" +const Guard := preload("/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd") +func _initialize() -> void: + if not Guard.activate(): quit(97); return + super._initialize() +func run() -> void: + var loaded := GDExtensionManager.load_extension("/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension") + var exact_api := false + if loaded == GDExtensionManager.LOAD_STATUS_OK and ClassDB.class_exists(&"TheTreeNumericCore"): + var probe: Variant = ClassDB.instantiate(&"TheTreeNumericCore") + exact_api = probe != null and probe.has_method(&"guest_tree_edge_rows") == true + probe = null + check(loaded == GDExtensionManager.LOAD_STATUS_OK and ClassDB.class_exists(&"TheTreeNumericCore") and exact_api, "exact native extension registered before diagnostic") + if loaded != GDExtensionManager.LOAD_STATUS_OK or not ClassDB.class_exists(&"TheTreeNumericCore") or not exact_api: quit(96); return + print("NATIVE_ADAPTER_LIBRARY_REGISTERED") + super.run() diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/input.json.gz b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/input.json.gz new file mode 100644 index 0000000..e6575a1 Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/input.json.gz differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json new file mode 100644 index 0000000..231ffaa --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json @@ -0,0 +1,199 @@ +{ + "passed": true, + "codec_path": "/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p28-ai-r03-typed-difference-independent-review-r01/finite_variant_codec.py", + "codec_sha256": "8c7077b53e28da4054bdf7dd88e82de02a51149269a8fce59bae0e74f95b4734", + "codec_proof": { + "nodes": 281, + "headers": { + "27": 39, + "4": 140, + "2": 102 + }, + "file_envelope_bytes": 0, + "all_bytes_roundtrip": true + }, + "metrics": { + "runtime": { + "_project_guest_candidates": { + "calls": 50, + "inclusive_us": 656139, + "max_us": 45760 + }, + "_decide_guest_with_log": { + "calls": 50, + "inclusive_us": 230065, + "max_us": 4795 + }, + "_find_facility_access_path": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_estimated_actor_path_minutes": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_facility_access_candidates": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_guest_access_batch_can_select": { + "calls": 50, + "inclusive_us": 195, + "max_us": 6 + }, + "_project_guest_candidates_without_native": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_need_relief_for_facility_tags": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_service_category_for_tags": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "get_facility_business_price": { + "calls": 7500, + "inclusive_us": 14899, + "max_us": 21 + }, + "_publish_snapshot": { + "calls": 1, + "inclusive_us": 76851, + "max_us": 76851 + } + }, + "path": { + "begin_guest_path_query_batch": { + "calls": 50, + "inclusive_us": 24721, + "max_us": 689 + }, + "query_nearest_guest_access": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_build_guest_query_tree_shared_result": { + "calls": 50, + "inclusive_us": 111700, + "max_us": 35777 + }, + "_resolve_ready_guest_batch_point": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_guest_tree_reconstruct_path": { + "calls": 10675, + "inclusive_us": 62826, + "max_us": 51 + }, + "_cache_key": { + "calls": 2586, + "inclusive_us": 4019, + "max_us": 8 + }, + "_copy_path": { + "calls": 6811, + "inclusive_us": 15742, + "max_us": 38 + }, + "_guest_tree_cost": { + "calls": 4000, + "inclusive_us": 1584, + "max_us": 1 + }, + "_guest_batch_has_permitted_layer_crossing": { + "calls": 32500, + "inclusive_us": 14707, + "max_us": 20 + } + }, + "kernel_phases": { + "0": { + "calls": 1, + "inclusive_us": 13, + "max_us": 13 + }, + "1": { + "calls": 1, + "inclusive_us": 1121, + "max_us": 1121 + }, + "2": { + "calls": 1, + "inclusive_us": 340, + "max_us": 340 + }, + "3": { + "calls": 1, + "inclusive_us": 118618, + "max_us": 118618 + }, + "4": { + "calls": 1, + "inclusive_us": 89293, + "max_us": 89293 + }, + "5": { + "calls": 1, + "inclusive_us": 970, + "max_us": 970 + }, + "6": { + "calls": 1, + "inclusive_us": 1063, + "max_us": 1063 + }, + "7": { + "calls": 1, + "inclusive_us": 218, + "max_us": 218 + }, + "8": { + "calls": 1, + "inclusive_us": 180, + "max_us": 180 + }, + "9": { + "calls": 1, + "inclusive_us": 979790, + "max_us": 979790 + }, + "10": { + "calls": 1, + "inclusive_us": 76865, + "max_us": 76865 + } + }, + "guest": { + "extract_candidates": { + "calls": 50, + "inclusive_us": 95575, + "max_us": 2002 + }, + "rank_candidates": { + "calls": 50, + "inclusive_us": 124620, + "max_us": 2600 + }, + "evaluate_candidate": { + "calls": 5000, + "inclusive_us": 106351, + "max_us": 44 + } + } + }, + "raw_sha256": "cb81ef4cde41b7b3296e88a866367bb2fad42b159438895ee69ae074699c1ffe", + "diagnostic_only": true, + "pure_CPU_supported": false, + "unit_accepted": false +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/preexecution-root-verification.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/preexecution-root-verification.json new file mode 100644 index 0000000..16a5fa9 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/preexecution-root-verification.json @@ -0,0 +1,293 @@ +{ + "passed": true, + "review_sha256": "eaadb3792770364bbf7245fb94c43e979c06c3b754f955f1a736e9ab81d2abc9", + "verified_entries": [ + { + "path": "/Applications/Godot.app/Contents/MacOS/Godot", + "bytes": 351312912, + "sha256": "c7cccbf8fb143e34e02fd6521e09be2c2b974f0d5db080b19071c9c570718ccf" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd", + "bytes": 17582, + "sha256": "92d5e1956f4e613e12555d756de4f71fef03678cde159ac68fac3188ce3f336e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py", + "bytes": 26296, + "sha256": "320ca668732b4ff72fc4449998af2327d4e5c527b06896740806aaf0487282b4" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd", + "bytes": 2276, + "sha256": "597696c705cc8f0e79a35265ca3ef8df55f7fc3c4e0e5a2ce9a4e20e29e29a6f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst", + "bytes": 240032, + "sha256": "1a88f7ed27d1d32102c6fe3a9533221d2565191712ed15b631190479d1d41505" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-whole647-native-r02/diagnostic-measurement/after647.varbytes.zst", + "bytes": 246720, + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension", + "bytes": 323, + "sha256": "04c4311764ab9d75be3df884f960f0944cd474847fb1ca061224ce4c1bc2aef7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + { + "path": "/private/tmp/TheTree-pure-tags-r278-r04-72046c25b9384bcf8ea8ec91123462e1/candidate.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json", + "bytes": 21552, + "sha256": "54576596f82b8aceca440c1a5514ce811125e977c64c210675feecbb3901929f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275/execution.json", + "bytes": 7196, + "sha256": "bb756aef33e7b7a6eaaabd5c662b5b1c5c4e37735c703b411064033d8911f23f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.gd", + "bytes": 7578, + "sha256": "a544b96710d6dcc36528a6e2e08d872dda92590651d7ab60cb49372cfbc46b33" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02.py", + "bytes": 7321, + "sha256": "fb4dab44a00e7e375532a2c5395850c1324f75aca79ecb79fd6e06277988801a" + }, + { + "path": "/private/tmp/thetree-prepare-current-residual-r311-r02.py", + "bytes": 3005, + "sha256": "fb48f0edd617f8f31ae0784585755ece6c902850ba7205665d94d53df34ee3b8" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/instrumentation.json", + "bytes": 46887, + "sha256": "b34033d2bb7f23322c60becda562b22b0fe897bb822f891a910ce87590d134e2" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "bytes": 1439, + "sha256": "81c4abc24624a7f68642c5c4e27626f003762c4b52b47e9cb2c566a2e0599045" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd", + "bytes": 1445, + "sha256": "a7c3f9c4d744e49808f4b3be1e9e105dec6b7e3ede4c83627986c459d67bbb91" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.gd", + "bytes": 7894, + "sha256": "2c4fe483fcebce41a8d1e24637cb87c4cc8cb2b894159fa2affa0ffa54b9eeb0" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238.py", + "bytes": 7024, + "sha256": "d76ca75cca9d11b60729e6aea172f5a316ddcb94befc128dc0787becb0ca37ad" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r238/instrumentation.json", + "bytes": 47200, + "sha256": "16deb99a23600581b71d7cf8c35a6102cb0a8352992aab75fef88345dd398c30" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-actual-independent-review-r278-r04.json", + "bytes": 28145, + "sha256": "671f15fa542465cf6a7e88ee272a2ce67049fffcca2483205f999cfeb2075253" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/actual-root-verification.json", + "bytes": 17143, + "sha256": "00e01cce5240ebd3accddbfc88f8776ac4cd4dfa887df3b8ee319eb16c45913f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-actual-independent-review-r281.json", + "bytes": 46359, + "sha256": "1876c883e898fdfb8c1c4fb84ee5950930719d0e623b3f010fad0312402166b4" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/actual-root-verification.json", + "bytes": 28310, + "sha256": "1d3d3a0d804d508e7daf11551c30997b0ef048660ceaafb814fd7e07104ae292" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json", + "bytes": 976234, + "sha256": "0ec0212b04a1f16bbe8789976a359d62a69d68035063558a0e7e0250a381b3e5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json", + "bytes": 759469, + "sha256": "7f2403a6d4bd1dbff44f246bced74e810bf515f187f65c1a2dd3ef947c0445af" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json", + "bytes": 70364, + "sha256": "41085a75190fdb67ba44ac7f6893d42c18ee797762d4b00e7eda546ed025c460" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/performance_budget.candidate.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp", + "bytes": 54002, + "sha256": "ce20a90adb8a410dc1b6cbf607b7bfa8bf21eaef158c5c6bfc7a9bbcc703d2b2" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json", + "bytes": 23230, + "sha256": "75f9e4e4a4ea9286372ebf0f016e796067c9460e0815e0ef3e24988a702f04d5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/input.json", + "bytes": 981463, + "sha256": "c32c2f748c6dd91a2d35b2fd747582cd235fbabe0d7417446b8d67d8fb2d6dd5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.gd", + "bytes": 7611, + "sha256": "625e9cfb56464d6f2b2e08966d00d96bfb366062777caea509c7826599833278" + }, + { + "path": "/private/tmp/thetree-prepare-current-residual-r311.py", + "bytes": 9212, + "sha256": "a5f24807c541753294896efb7f5d973d4d9176efc668bfd81810aa1391d54c9d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.py", + "bytes": 7313, + "sha256": "fda8480371c3041e5a583263259998132f7ec70b3f78f850bb32553db5bcaac3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/guarded-r274.gd", + "bytes": 1435, + "sha256": "84c5aca653f1a19217890bc257545d8f5d7a299c9b22c59a677ecdc9b2905bb7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/autoload/simulation_runtime.gd", + "bytes": 619011, + "sha256": "3da67f9c2c446ac9f4e26725cd48f9694cd0973646330f6bccc9e4aacfca64cd" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/performance_budget.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/core/simulation_kernel.gd", + "bytes": 8282, + "sha256": "5d578d7b845522388bd48a4a6e0c3a60e628498ec2da6aba722d8c6e2fc40a20" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/guest/guest_service.gd", + "bytes": 63573, + "sha256": "39986d98720d37dfd8c437b7043848df3b14120b307e99fef877428abd26b07d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage/scripts/world/path_service.gd", + "bytes": 139394, + "sha256": "c96dc7b3ae6ed7107d410631e9d7501c5e25d0c4696a76d621e6bcd7ff2f7a97" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/input.json", + "bytes": 982794, + "sha256": "f1550159618411d9461c7ed8ab03e8066eaa5a9a7c683cc3982564a5ef261d16" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 492770, + "sha256": "1dd710cb48626884c5692d230c1ace21291a4107d0148a11f020b6b7bd9c127a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 410834, + "sha256": "c30ce7db6dbe85ac16b551105f239f5657e97e0dca1b293993684b100668c5fa" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1198450, + "sha256": "66d0a29d003c7d6a055669df0f79412f3bed09263f540855951251f69609a169" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 570488, + "sha256": "d7e746554b709b9d8408eee2550ee8a0b9bdb58975797c5cbd05467bdc59dc93" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/IMPLEMENTATION_PLAN.md", + "bytes": 511898, + "sha256": "de1f65be5107f297b6737749b89f93c066beb39f223689a27be3698611fdb9bc" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/PROGRESS_INTEGRATION.md", + "bytes": 429962, + "sha256": "b259f86fe8d9709cf8f943b90aabae4e2ea2457dfce82eaa51a7edf23160b66b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/work_packages.json", + "bytes": 1247101, + "sha256": "d058f5d00a98bc162ffefa362c9dce2602adf7ce4cfac0317d5d9de580e96977" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/progress_snapshot.json", + "bytes": 524354, + "sha256": "99e45a9ae230926987de481123e977a9b0d49fdcc21f1e450d74fc1e2467ccc5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/IMPLEMENTATION_PLAN.md", + "bytes": 491600, + "sha256": "b9c3e8ed33905f217afd1e5d80bb406a0cdb84a38ae9f77d604caac5be1e3df3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/PROGRESS_INTEGRATION.md", + "bytes": 409664, + "sha256": "d31d96e0ece5db7731cc26004dd006e156b2c6724ba4070267a34c0d9d6a77b2" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/work_packages.json", + "bytes": 1171359, + "sha256": "ff213501d783d63a2cdaed9a19d2171ee00e8af3603a24ccad6a38372393b999" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r279/before/progress_snapshot.json", + "bytes": 516395, + "sha256": "c9a96907d79c80fe469635dbfac26f5b4d6995c56a9c8f90e14ed9e80912ef6e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/IMPLEMENTATION_PLAN.md", + "bytes": 492167, + "sha256": "f0a719c77547db888e52bd09be53313a97118d19d46a8948599fef5694716aef" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/PROGRESS_INTEGRATION.md", + "bytes": 410231, + "sha256": "674b882256016af3d7072d32a0bdd13f5e0ce2aa374694c37442354d224d8758" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/work_packages.json", + "bytes": 1175313, + "sha256": "5441490631fbe73baebc95029a75af50ccb71a8962a5b913a710b6763a8ee763" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r282/before/progress_snapshot.json", + "bytes": 521884, + "sha256": "8fd37b051cd48d55bde8dda2947f59918d1c8dbe37831e15951b1324e5218c3d" + } + ], + "unit_accepted": false, + "performance_accepted": false +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst new file mode 100644 index 0000000..84c74b4 Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst new file mode 100644 index 0000000..f02ae7d Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/report.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/report.json new file mode 100644 index 0000000..2911daf --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/report.json @@ -0,0 +1,44 @@ +{ + "Windows_accepted": false, + "after647": { + "bytes": 246720, + "codec": "zstd", + "field_deletions": 0, + "file_envelope": false, + "full_bytes_roundtrip": true, + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/after647.varbytes.zst", + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880", + "uncompressed_bytes": 11487732, + "uncompressed_sha256": "9df3c1b6f65dfd8be944cd5cab8c631f7533530dfef3820d9fa5d74a5b1ac30f" + }, + "cache_hits": 0, + "cache_misses": 9311, + "candidate": "r274", + "candidate_adopted": false, + "checks": 18, + "diagnostic_only": true, + "failures": [], + "limits": [ + "One instrumented r274/library275 cold646 tick. Original bodies retained, typed state oracle equality required. Nested inclusive durations include diagnostic overhead and children; do not sum/subtract for pure CPU or compare against uninstrumented timings; no performance acceptance.", + "No Main, rendering, OS input or realtime x3. Timed interval contains builtin production callbacks; snapshot verification and compression occur after timing." + ], + "metrics": { + "bytes": 819, + "codec": "zstd", + "field_deletions": 0, + "file_envelope": false, + "full_bytes_roundtrip": true, + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274-measurement/inclusive-residual-metrics.varbytes.zst", + "sha256": "2f2335353deec30ffa934cb7fe2c1002f83ec50edcc325a87543dcd481915639", + "uncompressed_bytes": 3896, + "uncompressed_sha256": "cb81ef4cde41b7b3296e88a866367bb2fad42b159438895ee69ae074699c1ffe" + }, + "normal_OS_accepted": false, + "observed_instrumented_tick_us": 1268510, + "passed": true, + "performance_budget_accepted": false, + "pid": 84968, + "plan_id": "P23-02", + "sample": "r274", + "unit_accepted": false +} \ No newline at end of file diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-phase.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-phase.json new file mode 100644 index 0000000..030327e --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-phase.json @@ -0,0 +1,185 @@ +{ + "candidate": "r274", + "result": { + "argv": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "pid": 84968, + "started_utc": "2026-10-12T01:28:23.989473+00:00", + "ended_utc": "2026-10-12T01:28:29.750087+00:00", + "wall_seconds": 5.759995875, + "exit_code": 0, + "helper_exit_code": 0, + "timed_out": false, + "stdout_sha256": "084f2763ea5568d13da47b7008824e18ad7251df7f5c0060b60bbafa75fb964a", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "error_lines": [], + "owned_popen_ended": true, + "old_helper_engine_ended": true, + "start_receipt_written": true, + "end_receipt_written": true, + "lifecycle_error": null, + "old_helper_lifecycle_error": null, + "actual_start_binding": { + "scope": "isolated diagnostic owned child", + "event": "ENGINE_STARTED", + "actual_pid": 84968, + "owner_pid": 84940, + "command": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "monotonic_ns": 3009952041, + "pid": 84968, + "argv": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "started_utc": "2026-10-12T01:28:23.989473+00:00", + "current_process_identity": { + "pid": 84968, + "ppid": 84940, + "pgid": 84968, + "args": "/Applications/Godot.app/Contents/MacOS/Godot --headless --path /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage --script /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd --verbose --log-file /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + }, + "live_identity_exact": true, + "tracked_child_ended_before_initial_probe": false, + "signal_scope": "tracked Popen child only; no external group signal" + }, + "actual_end_binding": { + "scope": "isolated diagnostic owned child", + "event": "ENGINE_ENDED", + "actual_pid": 84968, + "owner_pid": 84940, + "command": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "monotonic_ns": 8762236083, + "exit_code": 0, + "actual_process_exit_code": 0, + "engine_ended": true, + "timed_out": false, + "lifecycle_error": null, + "start_receipt_written": true, + "pid": 84968, + "argv": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "ended_utc": "2026-10-12T01:28:29.747235+00:00", + "signal_scope": "tracked Popen child only; no external group signal" + }, + "strict_native_diagnostics": { + "errors": [], + "banner_count": 1, + "known_unicode_diagnostic_count": 0, + "unrecognized_unicode_diagnostic_count": 0, + "exit_leak_diagnostic_lines": [] + }, + "external_process_or_group_signals": 0, + "owned_child_process_helper_sha256": "c007e712c281573254faa1233c2ac92e100ab87393256a6dc096b35283e43037", + "adapter_owned_cleanup": { + "owned_child_created": true, + "engine_ended": true, + "actual_process_exit_code": 0, + "attempts": [ + { + "attempt": 1, + "kill_attempted": false, + "wait_timeout_seconds": 5, + "wait_completed": true, + "errors": [], + "poll_before": 0, + "wait_returned_code": 0, + "poll_after": 0 + } + ], + "errors": [] + }, + "adapter_error": null, + "old_helper_bytes_preserved": true, + "helper_wait_None_maps_to_actual_timeout_seconds": 5, + "explicit_helper_wait_timeouts_preserved": true, + "additional_cleanup_wait_timeout_seconds": 5, + "additional_cleanup_max_attempts": 3 + }, + "capture": { + "actual_captured_pids": [ + 84968 + ], + "cleanup": [ + { + "pid": 84968, + "cleanup": { + "owned_child_created": true, + "engine_ended": true, + "actual_process_exit_code": 0, + "attempts": [ + { + "attempt": 1, + "kill_attempted": false, + "wait_timeout_seconds": 5, + "wait_completed": true, + "errors": [], + "poll_before": 0, + "wait_returned_code": 0, + "poll_after": 0 + } + ], + "errors": [] + }, + "outer_cleanup_errors": [], + "engine_ended": true, + "outer_maximum_helper_invocations": 3, + "helper_maximum_waits": 3, + "per_wait_timeout_seconds": 5, + "foreign_process_or_group_signals": 0 + } + ], + "adapter_exception": null, + "all_captured_ended": true, + "outer_cleanup_errors": [], + "foreign_process_or_group_signals": 0, + "all_cleanup_before_outer_receipt": true, + "outer_receipt_written": true, + "outer_receipt_error": null, + "passed": true + } +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-profile.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-profile.json new file mode 100644 index 0000000..93ec65e --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274-profile.json @@ -0,0 +1,20 @@ +{ + "actual_user_data_dir": "/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-78ad148f9cab4fe08f7fdc00306faebf-whole-runtime", + "before": "/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-78ad148f9cab4fe08f7fdc00306faebf-whole-startup", + "conditions": [ + true, + true, + true, + true, + true + ], + "conditions_checked": 5, + "custom_user_dir_name": "TheTree-PCK-tests-78ad148f9cab4fe08f7fdc00306faebf-whole-runtime", + "expected_user_data_dir": "/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-78ad148f9cab4fe08f7fdc00306faebf-whole-runtime", + "fresh_before_parent_initialize": true, + "globalized_probe": "/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-78ad148f9cab4fe08f7fdc00306faebf-whole-runtime/guard-probe", + "profile_writes_before_guard": 0, + "project_settings_persisted": false, + "runtime_settings_only": true, + "verified": true +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/adapter-owned-cleanup.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/adapter-owned-cleanup.json new file mode 100644 index 0000000..f44709a --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/adapter-owned-cleanup.json @@ -0,0 +1,18 @@ +{ + "owned_child_created": true, + "engine_ended": true, + "actual_process_exit_code": 0, + "attempts": [ + { + "attempt": 1, + "kill_attempted": false, + "wait_timeout_seconds": 5, + "wait_completed": true, + "errors": [], + "poll_before": 0, + "wait_returned_code": 0, + "poll_after": 0 + } + ], + "errors": [] +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/ended.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/ended.json new file mode 100644 index 0000000..b15e838 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/ended.json @@ -0,0 +1,38 @@ +{ + "scope": "isolated diagnostic owned child", + "event": "ENGINE_ENDED", + "actual_pid": 84968, + "owner_pid": 84940, + "command": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "monotonic_ns": 8762236083, + "exit_code": 0, + "actual_process_exit_code": 0, + "engine_ended": true, + "timed_out": false, + "lifecycle_error": null, + "start_receipt_written": true, + "pid": 84968, + "argv": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "ended_utc": "2026-10-12T01:28:29.747235+00:00", + "signal_scope": "tracked Popen child only; no external group signal" +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log new file mode 100644 index 0000000..92b32ea --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log @@ -0,0 +1,116 @@ +Godot Engine v4.7.2.stable.official.ed1daf0bf - https://godotengine.org +TextServer: Added interface "Dummy" +TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)" +SDL: Init OK! +Using "default" pen tablet driver... + +TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)". +CORE API HASH: 2004498165 +EDITOR API HASH: 1696660745 +Loading resource: /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd remapped: /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd +Completed load for: '/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd' remapped '/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd' at thread -1 +SceneTreeFTI: traversal method DEFAULT +Loading resource: res://autoload/event_bus.gd remapped: res://autoload/event_bus.gd +Completed load for: 'res://autoload/event_bus.gd' remapped 'res://autoload/event_bus.gd' at thread -1 +Loading resource: res://autoload/game_clock.gd remapped: res://autoload/game_clock.gd +Completed load for: 'res://autoload/game_clock.gd' remapped 'res://autoload/game_clock.gd' at thread -1 +Loading resource: res://autoload/game_state.gd remapped: res://autoload/game_state.gd +Completed load for: 'res://autoload/game_state.gd' remapped 'res://autoload/game_state.gd' at thread -1 +Loading resource: res://autoload/simulation_runtime.gd remapped: res://autoload/simulation_runtime.gd +Completed load for: 'res://autoload/simulation_runtime.gd' remapped 'res://autoload/simulation_runtime.gd' at thread -1 +Loaded system CA certificates +PACK_PROFILE_GUARD verified=true +Loading resource: res://data/facilities/adult_private_room.tres remapped: res://data/facilities/adult_private_room.tres +Completed load for: 'res://data/facilities/adult_private_room.tres' remapped 'res://data/facilities/adult_private_room.tres' at thread -1 +Loading resource: res://data/facilities/cafeteria.tres remapped: res://data/facilities/cafeteria.tres +Completed load for: 'res://data/facilities/cafeteria.tres' remapped 'res://data/facilities/cafeteria.tres' at thread -1 +Loading resource: res://data/facilities/expansion/chapel.tres remapped: res://data/facilities/expansion/chapel.tres +Completed load for: 'res://data/facilities/expansion/chapel.tres' remapped 'res://data/facilities/expansion/chapel.tres' at thread -1 +Loading resource: res://data/facilities/expansion/cleaning_room.tres remapped: res://data/facilities/expansion/cleaning_room.tres +Completed load for: 'res://data/facilities/expansion/cleaning_room.tres' remapped 'res://data/facilities/expansion/cleaning_room.tres' at thread -1 +Loading resource: res://data/facilities/expansion/premium_room.tres remapped: res://data/facilities/expansion/premium_room.tres +Completed load for: 'res://data/facilities/expansion/premium_room.tres' remapped 'res://data/facilities/expansion/premium_room.tres' at thread -1 +Loading resource: res://data/facilities/expansion/staff_dormitory.tres remapped: res://data/facilities/expansion/staff_dormitory.tres +Completed load for: 'res://data/facilities/expansion/staff_dormitory.tres' remapped 'res://data/facilities/expansion/staff_dormitory.tres' at thread -1 +Loading resource: res://data/facilities/guest_corridor.tres remapped: res://data/facilities/guest_corridor.tres +Completed load for: 'res://data/facilities/guest_corridor.tres' remapped 'res://data/facilities/guest_corridor.tres' at thread -1 +Loading resource: res://data/facilities/guest_elevator.tres remapped: res://data/facilities/guest_elevator.tres +Completed load for: 'res://data/facilities/guest_elevator.tres' remapped 'res://data/facilities/guest_elevator.tres' at thread -1 +Loading resource: res://data/facilities/infrastructure/guest_stairs.tres remapped: res://data/facilities/infrastructure/guest_stairs.tres +Completed load for: 'res://data/facilities/infrastructure/guest_stairs.tres' remapped 'res://data/facilities/infrastructure/guest_stairs.tres' at thread -1 +Loading resource: res://data/facilities/infrastructure/service_stairs.tres remapped: res://data/facilities/infrastructure/service_stairs.tres +Completed load for: 'res://data/facilities/infrastructure/service_stairs.tres' remapped 'res://data/facilities/infrastructure/service_stairs.tres' at thread -1 +Loading resource: res://data/facilities/kitchen.tres remapped: res://data/facilities/kitchen.tres +Completed load for: 'res://data/facilities/kitchen.tres' remapped 'res://data/facilities/kitchen.tres' at thread -1 +Loading resource: res://data/facilities/massage_room.tres remapped: res://data/facilities/massage_room.tres +Completed load for: 'res://data/facilities/massage_room.tres' remapped 'res://data/facilities/massage_room.tres' at thread -1 +Loading resource: res://data/facilities/public_bath.tres remapped: res://data/facilities/public_bath.tres +Completed load for: 'res://data/facilities/public_bath.tres' remapped 'res://data/facilities/public_bath.tres' at thread -1 +Loading resource: res://data/facilities/reception.tres remapped: res://data/facilities/reception.tres +Completed load for: 'res://data/facilities/reception.tres' remapped 'res://data/facilities/reception.tres' at thread -1 +Loading resource: res://data/facilities/rescue/infirmary.tres remapped: res://data/facilities/rescue/infirmary.tres +Completed load for: 'res://data/facilities/rescue/infirmary.tres' remapped 'res://data/facilities/rescue/infirmary.tres' at thread -1 +Loading resource: res://data/facilities/security_station.tres remapped: res://data/facilities/security_station.tres +Completed load for: 'res://data/facilities/security_station.tres' remapped 'res://data/facilities/security_station.tres' at thread -1 +Loading resource: res://data/facilities/service_corridor.tres remapped: res://data/facilities/service_corridor.tres +Completed load for: 'res://data/facilities/service_corridor.tres' remapped 'res://data/facilities/service_corridor.tres' at thread -1 +Loading resource: res://data/facilities/service_elevator.tres remapped: res://data/facilities/service_elevator.tres +Completed load for: 'res://data/facilities/service_elevator.tres' remapped 'res://data/facilities/service_elevator.tres' at thread -1 +Loading resource: res://data/facilities/staff_door.tres remapped: res://data/facilities/staff_door.tres +Completed load for: 'res://data/facilities/staff_door.tres' remapped 'res://data/facilities/staff_door.tres' at thread -1 +Loading resource: res://data/facilities/staff_waiting_room.tres remapped: res://data/facilities/staff_waiting_room.tres +Completed load for: 'res://data/facilities/staff_waiting_room.tres' remapped 'res://data/facilities/staff_waiting_room.tres' at thread -1 +Loading resource: res://data/facilities/standard_room.tres remapped: res://data/facilities/standard_room.tres +Completed load for: 'res://data/facilities/standard_room.tres' remapped 'res://data/facilities/standard_room.tres' at thread -1 +Loading resource: res://data/facilities/tavern.tres remapped: res://data/facilities/tavern.tres +Completed load for: 'res://data/facilities/tavern.tres' remapped 'res://data/facilities/tavern.tres' at thread -1 +Loading resource: res://data/facilities/warehouse.tres remapped: res://data/facilities/warehouse.tres +Completed load for: 'res://data/facilities/warehouse.tres' remapped 'res://data/facilities/warehouse.tres' at thread -1 +NATIVE_ADAPTER_LIBRARY_REGISTERED +Loading resource: res://data/facilities/adult_private_room.tres remapped: res://data/facilities/adult_private_room.tres +Completed load for: 'res://data/facilities/adult_private_room.tres' remapped 'res://data/facilities/adult_private_room.tres' at thread -1 +Loading resource: res://data/facilities/cafeteria.tres remapped: res://data/facilities/cafeteria.tres +Completed load for: 'res://data/facilities/cafeteria.tres' remapped 'res://data/facilities/cafeteria.tres' at thread -1 +Loading resource: res://data/facilities/expansion/chapel.tres remapped: res://data/facilities/expansion/chapel.tres +Completed load for: 'res://data/facilities/expansion/chapel.tres' remapped 'res://data/facilities/expansion/chapel.tres' at thread -1 +Loading resource: res://data/facilities/expansion/cleaning_room.tres remapped: res://data/facilities/expansion/cleaning_room.tres +Completed load for: 'res://data/facilities/expansion/cleaning_room.tres' remapped 'res://data/facilities/expansion/cleaning_room.tres' at thread -1 +Loading resource: res://data/facilities/expansion/premium_room.tres remapped: res://data/facilities/expansion/premium_room.tres +Completed load for: 'res://data/facilities/expansion/premium_room.tres' remapped 'res://data/facilities/expansion/premium_room.tres' at thread -1 +Loading resource: res://data/facilities/expansion/staff_dormitory.tres remapped: res://data/facilities/expansion/staff_dormitory.tres +Completed load for: 'res://data/facilities/expansion/staff_dormitory.tres' remapped 'res://data/facilities/expansion/staff_dormitory.tres' at thread -1 +Loading resource: res://data/facilities/guest_corridor.tres remapped: res://data/facilities/guest_corridor.tres +Completed load for: 'res://data/facilities/guest_corridor.tres' remapped 'res://data/facilities/guest_corridor.tres' at thread -1 +Loading resource: res://data/facilities/guest_elevator.tres remapped: res://data/facilities/guest_elevator.tres +Completed load for: 'res://data/facilities/guest_elevator.tres' remapped 'res://data/facilities/guest_elevator.tres' at thread -1 +Loading resource: res://data/facilities/infrastructure/guest_stairs.tres remapped: res://data/facilities/infrastructure/guest_stairs.tres +Completed load for: 'res://data/facilities/infrastructure/guest_stairs.tres' remapped 'res://data/facilities/infrastructure/guest_stairs.tres' at thread -1 +Loading resource: res://data/facilities/infrastructure/service_stairs.tres remapped: res://data/facilities/infrastructure/service_stairs.tres +Completed load for: 'res://data/facilities/infrastructure/service_stairs.tres' remapped 'res://data/facilities/infrastructure/service_stairs.tres' at thread -1 +Loading resource: res://data/facilities/kitchen.tres remapped: res://data/facilities/kitchen.tres +Completed load for: 'res://data/facilities/kitchen.tres' remapped 'res://data/facilities/kitchen.tres' at thread -1 +Loading resource: res://data/facilities/massage_room.tres remapped: res://data/facilities/massage_room.tres +Completed load for: 'res://data/facilities/massage_room.tres' remapped 'res://data/facilities/massage_room.tres' at thread -1 +Loading resource: res://data/facilities/public_bath.tres remapped: res://data/facilities/public_bath.tres +Completed load for: 'res://data/facilities/public_bath.tres' remapped 'res://data/facilities/public_bath.tres' at thread -1 +Loading resource: res://data/facilities/reception.tres remapped: res://data/facilities/reception.tres +Completed load for: 'res://data/facilities/reception.tres' remapped 'res://data/facilities/reception.tres' at thread -1 +Loading resource: res://data/facilities/rescue/infirmary.tres remapped: res://data/facilities/rescue/infirmary.tres +Completed load for: 'res://data/facilities/rescue/infirmary.tres' remapped 'res://data/facilities/rescue/infirmary.tres' at thread -1 +Loading resource: res://data/facilities/security_station.tres remapped: res://data/facilities/security_station.tres +Completed load for: 'res://data/facilities/security_station.tres' remapped 'res://data/facilities/security_station.tres' at thread -1 +Loading resource: res://data/facilities/service_corridor.tres remapped: res://data/facilities/service_corridor.tres +Completed load for: 'res://data/facilities/service_corridor.tres' remapped 'res://data/facilities/service_corridor.tres' at thread -1 +Loading resource: res://data/facilities/service_elevator.tres remapped: res://data/facilities/service_elevator.tres +Completed load for: 'res://data/facilities/service_elevator.tres' remapped 'res://data/facilities/service_elevator.tres' at thread -1 +Loading resource: res://data/facilities/staff_door.tres remapped: res://data/facilities/staff_door.tres +Completed load for: 'res://data/facilities/staff_door.tres' remapped 'res://data/facilities/staff_door.tres' at thread -1 +Loading resource: res://data/facilities/staff_waiting_room.tres remapped: res://data/facilities/staff_waiting_room.tres +Completed load for: 'res://data/facilities/staff_waiting_room.tres' remapped 'res://data/facilities/staff_waiting_room.tres' at thread -1 +Loading resource: res://data/facilities/standard_room.tres remapped: res://data/facilities/standard_room.tres +Completed load for: 'res://data/facilities/standard_room.tres' remapped 'res://data/facilities/standard_room.tres' at thread -1 +Loading resource: res://data/facilities/tavern.tres remapped: res://data/facilities/tavern.tres +Completed load for: 'res://data/facilities/tavern.tres' remapped 'res://data/facilities/tavern.tres' at thread -1 +Loading resource: res://data/facilities/warehouse.tres remapped: res://data/facilities/warehouse.tres +Completed load for: 'res://data/facilities/warehouse.tres' remapped 'res://data/facilities/warehouse.tres' at thread -1 +Residual diagnostic whole647: 18 checks, 0 failures diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/outer-owned-finally.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/outer-owned-finally.json new file mode 100644 index 0000000..3baa145 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/outer-owned-finally.json @@ -0,0 +1,39 @@ +{ + "actual_captured_pids": [ + 84968 + ], + "cleanup": [ + { + "pid": 84968, + "cleanup": { + "owned_child_created": true, + "engine_ended": true, + "actual_process_exit_code": 0, + "attempts": [ + { + "attempt": 1, + "kill_attempted": false, + "wait_timeout_seconds": 5, + "wait_completed": true, + "errors": [], + "poll_before": 0, + "wait_returned_code": 0, + "poll_after": 0 + } + ], + "errors": [] + }, + "outer_cleanup_errors": [], + "engine_ended": true, + "outer_maximum_helper_invocations": 3, + "helper_maximum_waits": 3, + "per_wait_timeout_seconds": 5, + "foreign_process_or_group_signals": 0 + } + ], + "adapter_exception": null, + "all_captured_ended": true, + "outer_cleanup_errors": [], + "foreign_process_or_group_signals": 0, + "all_cleanup_before_outer_receipt": true +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/process.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/process.json new file mode 100644 index 0000000..a9b7124 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/process.json @@ -0,0 +1,140 @@ +{ + "argv": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "pid": 84968, + "started_utc": "2026-10-12T01:28:23.989473+00:00", + "ended_utc": "2026-10-12T01:28:29.750087+00:00", + "wall_seconds": 5.759995875, + "exit_code": 0, + "helper_exit_code": 0, + "timed_out": false, + "stdout_sha256": "084f2763ea5568d13da47b7008824e18ad7251df7f5c0060b60bbafa75fb964a", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "error_lines": [], + "owned_popen_ended": true, + "old_helper_engine_ended": true, + "start_receipt_written": true, + "end_receipt_written": true, + "lifecycle_error": null, + "old_helper_lifecycle_error": null, + "actual_start_binding": { + "scope": "isolated diagnostic owned child", + "event": "ENGINE_STARTED", + "actual_pid": 84968, + "owner_pid": 84940, + "command": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "monotonic_ns": 3009952041, + "pid": 84968, + "argv": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "started_utc": "2026-10-12T01:28:23.989473+00:00", + "current_process_identity": { + "pid": 84968, + "ppid": 84940, + "pgid": 84968, + "args": "/Applications/Godot.app/Contents/MacOS/Godot --headless --path /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage --script /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd --verbose --log-file /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + }, + "live_identity_exact": true, + "tracked_child_ended_before_initial_probe": false, + "signal_scope": "tracked Popen child only; no external group signal" + }, + "actual_end_binding": { + "scope": "isolated diagnostic owned child", + "event": "ENGINE_ENDED", + "actual_pid": 84968, + "owner_pid": 84940, + "command": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "monotonic_ns": 8762236083, + "exit_code": 0, + "actual_process_exit_code": 0, + "engine_ended": true, + "timed_out": false, + "lifecycle_error": null, + "start_receipt_written": true, + "pid": 84968, + "argv": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "ended_utc": "2026-10-12T01:28:29.747235+00:00", + "signal_scope": "tracked Popen child only; no external group signal" + }, + "strict_native_diagnostics": { + "errors": [], + "banner_count": 1, + "known_unicode_diagnostic_count": 0, + "unrecognized_unicode_diagnostic_count": 0, + "exit_leak_diagnostic_lines": [] + }, + "external_process_or_group_signals": 0, + "owned_child_process_helper_sha256": "c007e712c281573254faa1233c2ac92e100ab87393256a6dc096b35283e43037", + "adapter_owned_cleanup": { + "owned_child_created": true, + "engine_ended": true, + "actual_process_exit_code": 0, + "attempts": [ + { + "attempt": 1, + "kill_attempted": false, + "wait_timeout_seconds": 5, + "wait_completed": true, + "errors": [], + "poll_before": 0, + "wait_returned_code": 0, + "poll_after": 0 + } + ], + "errors": [] + }, + "adapter_error": null, + "old_helper_bytes_preserved": true, + "helper_wait_None_maps_to_actual_timeout_seconds": 5, + "explicit_helper_wait_timeouts_preserved": true, + "additional_cleanup_wait_timeout_seconds": 5, + "additional_cleanup_max_attempts": 3 +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/started.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/started.json new file mode 100644 index 0000000..ad8f756 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/started.json @@ -0,0 +1,40 @@ +{ + "scope": "isolated diagnostic owned child", + "event": "ENGINE_STARTED", + "actual_pid": 84968, + "owner_pid": 84940, + "command": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "monotonic_ns": 3009952041, + "pid": 84968, + "argv": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + ], + "started_utc": "2026-10-12T01:28:23.989473+00:00", + "current_process_identity": { + "pid": 84968, + "ppid": 84940, + "pgid": 84968, + "args": "/Applications/Godot.app/Contents/MacOS/Godot --headless --path /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311/stage --script /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd --verbose --log-file /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/r274/engine-native.log" + }, + "live_identity_exact": true, + "tracked_child_ended_before_initial_probe": false, + "signal_scope": "tracked Popen child only; no external group signal" +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/stderr.log b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/stderr.log new file mode 100644 index 0000000..e69de29 diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/stdout.log b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/stdout.log new file mode 100644 index 0000000..4078c29 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311-r02/r274/stdout.log @@ -0,0 +1,120 @@ +WorkerThreadPool: 10 threads, 3 max low-priority. +Godot Engine v4.7.2.stable.official.ed1daf0bf - https://godotengine.org +TextServer: Added interface "Dummy" +TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)" +SDL: Init OK! +Using "default" pen tablet driver... + +TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)". +CORE API HASH: 2004498165 +EDITOR API HASH: 1696660745 +Loading resource: /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd remapped: /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd +Completed load for: '/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd' remapped '/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/guarded-r274.gd' at thread -1 +SceneTreeFTI: traversal method DEFAULT +Loading resource: res://autoload/event_bus.gd remapped: res://autoload/event_bus.gd +Completed load for: 'res://autoload/event_bus.gd' remapped 'res://autoload/event_bus.gd' at thread -1 +Loading resource: res://autoload/game_clock.gd remapped: res://autoload/game_clock.gd +Completed load for: 'res://autoload/game_clock.gd' remapped 'res://autoload/game_clock.gd' at thread -1 +Loading resource: res://autoload/game_state.gd remapped: res://autoload/game_state.gd +Completed load for: 'res://autoload/game_state.gd' remapped 'res://autoload/game_state.gd' at thread -1 +Loading resource: res://autoload/simulation_runtime.gd remapped: res://autoload/simulation_runtime.gd +Completed load for: 'res://autoload/simulation_runtime.gd' remapped 'res://autoload/simulation_runtime.gd' at thread -1 +Loaded system CA certificates +PACK_PROFILE_GUARD verified=true +Loading resource: res://data/facilities/adult_private_room.tres remapped: res://data/facilities/adult_private_room.tres +Completed load for: 'res://data/facilities/adult_private_room.tres' remapped 'res://data/facilities/adult_private_room.tres' at thread -1 +Loading resource: res://data/facilities/cafeteria.tres remapped: res://data/facilities/cafeteria.tres +Completed load for: 'res://data/facilities/cafeteria.tres' remapped 'res://data/facilities/cafeteria.tres' at thread -1 +Loading resource: res://data/facilities/expansion/chapel.tres remapped: res://data/facilities/expansion/chapel.tres +Completed load for: 'res://data/facilities/expansion/chapel.tres' remapped 'res://data/facilities/expansion/chapel.tres' at thread -1 +Loading resource: res://data/facilities/expansion/cleaning_room.tres remapped: res://data/facilities/expansion/cleaning_room.tres +Completed load for: 'res://data/facilities/expansion/cleaning_room.tres' remapped 'res://data/facilities/expansion/cleaning_room.tres' at thread -1 +Loading resource: res://data/facilities/expansion/premium_room.tres remapped: res://data/facilities/expansion/premium_room.tres +Completed load for: 'res://data/facilities/expansion/premium_room.tres' remapped 'res://data/facilities/expansion/premium_room.tres' at thread -1 +Loading resource: res://data/facilities/expansion/staff_dormitory.tres remapped: res://data/facilities/expansion/staff_dormitory.tres +Completed load for: 'res://data/facilities/expansion/staff_dormitory.tres' remapped 'res://data/facilities/expansion/staff_dormitory.tres' at thread -1 +Loading resource: res://data/facilities/guest_corridor.tres remapped: res://data/facilities/guest_corridor.tres +Completed load for: 'res://data/facilities/guest_corridor.tres' remapped 'res://data/facilities/guest_corridor.tres' at thread -1 +Loading resource: res://data/facilities/guest_elevator.tres remapped: res://data/facilities/guest_elevator.tres +Completed load for: 'res://data/facilities/guest_elevator.tres' remapped 'res://data/facilities/guest_elevator.tres' at thread -1 +Loading resource: res://data/facilities/infrastructure/guest_stairs.tres remapped: res://data/facilities/infrastructure/guest_stairs.tres +Completed load for: 'res://data/facilities/infrastructure/guest_stairs.tres' remapped 'res://data/facilities/infrastructure/guest_stairs.tres' at thread -1 +Loading resource: res://data/facilities/infrastructure/service_stairs.tres remapped: res://data/facilities/infrastructure/service_stairs.tres +Completed load for: 'res://data/facilities/infrastructure/service_stairs.tres' remapped 'res://data/facilities/infrastructure/service_stairs.tres' at thread -1 +Loading resource: res://data/facilities/kitchen.tres remapped: res://data/facilities/kitchen.tres +Completed load for: 'res://data/facilities/kitchen.tres' remapped 'res://data/facilities/kitchen.tres' at thread -1 +Loading resource: res://data/facilities/massage_room.tres remapped: res://data/facilities/massage_room.tres +Completed load for: 'res://data/facilities/massage_room.tres' remapped 'res://data/facilities/massage_room.tres' at thread -1 +Loading resource: res://data/facilities/public_bath.tres remapped: res://data/facilities/public_bath.tres +Completed load for: 'res://data/facilities/public_bath.tres' remapped 'res://data/facilities/public_bath.tres' at thread -1 +Loading resource: res://data/facilities/reception.tres remapped: res://data/facilities/reception.tres +Completed load for: 'res://data/facilities/reception.tres' remapped 'res://data/facilities/reception.tres' at thread -1 +Loading resource: res://data/facilities/rescue/infirmary.tres remapped: res://data/facilities/rescue/infirmary.tres +Completed load for: 'res://data/facilities/rescue/infirmary.tres' remapped 'res://data/facilities/rescue/infirmary.tres' at thread -1 +Loading resource: res://data/facilities/security_station.tres remapped: res://data/facilities/security_station.tres +Completed load for: 'res://data/facilities/security_station.tres' remapped 'res://data/facilities/security_station.tres' at thread -1 +Loading resource: res://data/facilities/service_corridor.tres remapped: res://data/facilities/service_corridor.tres +Completed load for: 'res://data/facilities/service_corridor.tres' remapped 'res://data/facilities/service_corridor.tres' at thread -1 +Loading resource: res://data/facilities/service_elevator.tres remapped: res://data/facilities/service_elevator.tres +Completed load for: 'res://data/facilities/service_elevator.tres' remapped 'res://data/facilities/service_elevator.tres' at thread -1 +Loading resource: res://data/facilities/staff_door.tres remapped: res://data/facilities/staff_door.tres +Completed load for: 'res://data/facilities/staff_door.tres' remapped 'res://data/facilities/staff_door.tres' at thread -1 +Loading resource: res://data/facilities/staff_waiting_room.tres remapped: res://data/facilities/staff_waiting_room.tres +Completed load for: 'res://data/facilities/staff_waiting_room.tres' remapped 'res://data/facilities/staff_waiting_room.tres' at thread -1 +Loading resource: res://data/facilities/standard_room.tres remapped: res://data/facilities/standard_room.tres +Completed load for: 'res://data/facilities/standard_room.tres' remapped 'res://data/facilities/standard_room.tres' at thread -1 +Loading resource: res://data/facilities/tavern.tres remapped: res://data/facilities/tavern.tres +Completed load for: 'res://data/facilities/tavern.tres' remapped 'res://data/facilities/tavern.tres' at thread -1 +Loading resource: res://data/facilities/warehouse.tres remapped: res://data/facilities/warehouse.tres +Completed load for: 'res://data/facilities/warehouse.tres' remapped 'res://data/facilities/warehouse.tres' at thread -1 +NATIVE_ADAPTER_LIBRARY_REGISTERED +Loading resource: res://data/facilities/adult_private_room.tres remapped: res://data/facilities/adult_private_room.tres +Completed load for: 'res://data/facilities/adult_private_room.tres' remapped 'res://data/facilities/adult_private_room.tres' at thread -1 +Loading resource: res://data/facilities/cafeteria.tres remapped: res://data/facilities/cafeteria.tres +Completed load for: 'res://data/facilities/cafeteria.tres' remapped 'res://data/facilities/cafeteria.tres' at thread -1 +Loading resource: res://data/facilities/expansion/chapel.tres remapped: res://data/facilities/expansion/chapel.tres +Completed load for: 'res://data/facilities/expansion/chapel.tres' remapped 'res://data/facilities/expansion/chapel.tres' at thread -1 +Loading resource: res://data/facilities/expansion/cleaning_room.tres remapped: res://data/facilities/expansion/cleaning_room.tres +Completed load for: 'res://data/facilities/expansion/cleaning_room.tres' remapped 'res://data/facilities/expansion/cleaning_room.tres' at thread -1 +Loading resource: res://data/facilities/expansion/premium_room.tres remapped: res://data/facilities/expansion/premium_room.tres +Completed load for: 'res://data/facilities/expansion/premium_room.tres' remapped 'res://data/facilities/expansion/premium_room.tres' at thread -1 +Loading resource: res://data/facilities/expansion/staff_dormitory.tres remapped: res://data/facilities/expansion/staff_dormitory.tres +Completed load for: 'res://data/facilities/expansion/staff_dormitory.tres' remapped 'res://data/facilities/expansion/staff_dormitory.tres' at thread -1 +Loading resource: res://data/facilities/guest_corridor.tres remapped: res://data/facilities/guest_corridor.tres +Completed load for: 'res://data/facilities/guest_corridor.tres' remapped 'res://data/facilities/guest_corridor.tres' at thread -1 +Loading resource: res://data/facilities/guest_elevator.tres remapped: res://data/facilities/guest_elevator.tres +Completed load for: 'res://data/facilities/guest_elevator.tres' remapped 'res://data/facilities/guest_elevator.tres' at thread -1 +Loading resource: res://data/facilities/infrastructure/guest_stairs.tres remapped: res://data/facilities/infrastructure/guest_stairs.tres +Completed load for: 'res://data/facilities/infrastructure/guest_stairs.tres' remapped 'res://data/facilities/infrastructure/guest_stairs.tres' at thread -1 +Loading resource: res://data/facilities/infrastructure/service_stairs.tres remapped: res://data/facilities/infrastructure/service_stairs.tres +Completed load for: 'res://data/facilities/infrastructure/service_stairs.tres' remapped 'res://data/facilities/infrastructure/service_stairs.tres' at thread -1 +Loading resource: res://data/facilities/kitchen.tres remapped: res://data/facilities/kitchen.tres +Completed load for: 'res://data/facilities/kitchen.tres' remapped 'res://data/facilities/kitchen.tres' at thread -1 +Loading resource: res://data/facilities/massage_room.tres remapped: res://data/facilities/massage_room.tres +Completed load for: 'res://data/facilities/massage_room.tres' remapped 'res://data/facilities/massage_room.tres' at thread -1 +Loading resource: res://data/facilities/public_bath.tres remapped: res://data/facilities/public_bath.tres +Completed load for: 'res://data/facilities/public_bath.tres' remapped 'res://data/facilities/public_bath.tres' at thread -1 +Loading resource: res://data/facilities/reception.tres remapped: res://data/facilities/reception.tres +Completed load for: 'res://data/facilities/reception.tres' remapped 'res://data/facilities/reception.tres' at thread -1 +Loading resource: res://data/facilities/rescue/infirmary.tres remapped: res://data/facilities/rescue/infirmary.tres +Completed load for: 'res://data/facilities/rescue/infirmary.tres' remapped 'res://data/facilities/rescue/infirmary.tres' at thread -1 +Loading resource: res://data/facilities/security_station.tres remapped: res://data/facilities/security_station.tres +Completed load for: 'res://data/facilities/security_station.tres' remapped 'res://data/facilities/security_station.tres' at thread -1 +Loading resource: res://data/facilities/service_corridor.tres remapped: res://data/facilities/service_corridor.tres +Completed load for: 'res://data/facilities/service_corridor.tres' remapped 'res://data/facilities/service_corridor.tres' at thread -1 +Loading resource: res://data/facilities/service_elevator.tres remapped: res://data/facilities/service_elevator.tres +Completed load for: 'res://data/facilities/service_elevator.tres' remapped 'res://data/facilities/service_elevator.tres' at thread -1 +Loading resource: res://data/facilities/staff_door.tres remapped: res://data/facilities/staff_door.tres +Completed load for: 'res://data/facilities/staff_door.tres' remapped 'res://data/facilities/staff_door.tres' at thread -1 +Loading resource: res://data/facilities/staff_waiting_room.tres remapped: res://data/facilities/staff_waiting_room.tres +Completed load for: 'res://data/facilities/staff_waiting_room.tres' remapped 'res://data/facilities/staff_waiting_room.tres' at thread -1 +Loading resource: res://data/facilities/standard_room.tres remapped: res://data/facilities/standard_room.tres +Completed load for: 'res://data/facilities/standard_room.tres' remapped 'res://data/facilities/standard_room.tres' at thread -1 +Loading resource: res://data/facilities/tavern.tres remapped: res://data/facilities/tavern.tres +Completed load for: 'res://data/facilities/tavern.tres' remapped 'res://data/facilities/tavern.tres' at thread -1 +Loading resource: res://data/facilities/warehouse.tres remapped: res://data/facilities/warehouse.tres +Completed load for: 'res://data/facilities/warehouse.tres' remapped 'res://data/facilities/warehouse.tres' at thread -1 +Residual diagnostic whole647: 18 checks, 0 failures +XR: Clearing primary interface +XR: Removed interface "Native mobile" +XR: Removed interface "OpenXR" diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311.gd b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311.gd new file mode 100644 index 0000000..bf38870 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311.gd @@ -0,0 +1,63 @@ +extends "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd" +# One instrumented r274/library275 tick. Freeze counters immediately after the synchronous tick. +func run() -> void: + output = OS.get_environment("THE_TREE_RUNTIME_MONITOR_OUTPUT") + var input_path := OS.get_environment("THE_TREE_REPLAY_SNAPSHOT") + var candidate := OS.get_environment("THE_TREE_PAIRED_CANDIDATE") + if not output.is_absolute_path() or not input_path.is_absolute_path() or candidate != "r274": quit(98); return + var original := FileAccess.get_file_as_bytes(input_path).decompress(11411840, FileAccess.COMPRESSION_ZSTD) + var initial: Dictionary = bytes_to_var(original) + runtime = root.get_node("SimulationRuntime") + clock = root.get_node("GameClock") + runtime.initialize(clock, root.get_node("GameState"), int(initial[&"systems"][&"runtime"][&"world_seed"])) + check(runtime.restore_snapshot(initial), "fixed646 public restore") + check(var_to_bytes(runtime.create_snapshot()) == original, "complete input bytes identical") + check(clock.absolute_minute == 646 and clock.paused and clock.speed == 1, "same paused646 speed1") + var path_listeners: Array = runtime.path_service.get_signal_connection_list(&"path_query_measured") + check(path_listeners.size() == 1 and path_listeners[0]["callable"] == Callable(runtime, "_on_path_query_measured") and int(path_listeners[0]["flags"]) == 0, "only builtin path listener") + check(clock.performance_budget.get_signal_connection_list(&"budget_exceeded").is_empty(), "no external budget listener") + check(clock.get_signal_connection_list(&"tick_phase_started").is_empty() and clock.get_signal_connection_list(&"tick_completed").is_empty(), "no phase or completion instrumentation") + check(runtime.path_service.cache_hits == 0 and runtime.path_service.cache_misses == 0 and runtime.path_service.cached_path_count() == 0, "same cold derived cache") + check(runtime.path_service._query_batch.is_empty() and runtime.path_service._guest_tree_workspace.is_empty() and runtime.path_service._guest_step_connector_memo.is_empty(), "same cold tree/native-edge/step workspace") + check(runtime._guest_access_batch_can_select(), "current builtin active fast guard") + runtime._p23r311_metrics.clear() + runtime.path_service._p23r311_metrics.clear() + clock._p23r311_metrics.clear() + runtime.guest_service._p23r311_metrics.clear() + check(runtime._p23r311_metrics.is_empty() and runtime.path_service._p23r311_metrics.is_empty() and clock._p23r311_metrics.is_empty() and runtime.guest_service._p23r311_metrics.is_empty(), "diagnostic counters reset after restore") + var declared: Dictionary = {"runtime": ["_project_guest_candidates", "_decide_guest_with_log", "_find_facility_access_path", "_estimated_actor_path_minutes", "_facility_access_candidates", "_guest_access_batch_can_select", "_project_guest_candidates_without_native", "_need_relief_for_facility_tags", "_service_category_for_tags", "get_facility_business_price", "_publish_snapshot"], "path": ["begin_guest_path_query_batch", "query_nearest_guest_access", "_build_guest_query_tree_shared_result", "_resolve_ready_guest_batch_point", "_guest_tree_reconstruct_path", "_cache_key", "_copy_path", "_guest_tree_cost", "_guest_batch_has_permitted_layer_crossing"], "guest": ["extract_candidates", "rank_candidates", "evaluate_candidate"], "kernel_phases": ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]} + var targets: Dictionary = {"runtime":runtime, "path":runtime.path_service, "guest":runtime.guest_service, "kernel_phases":clock} + for group: String in declared: + var counters: Dictionary = targets[group]._p23r311_metrics + for key: String in declared[group]: counters[key] = {"calls":0,"inclusive_us":0,"max_us":0} + var started := Time.get_ticks_usec() + clock.advance_minutes(1) + var elapsed := Time.get_ticks_usec() - started + var metrics: Dictionary = {"runtime":runtime._p23r311_metrics.duplicate(true), "path":runtime.path_service._p23r311_metrics.duplicate(true), "kernel_phases":clock._p23r311_metrics.duplicate(true)._p23r311_metrics.duplicate(true), "guest":runtime.guest_service._p23r311_metrics.duplicate(true)} + check(clock.absolute_minute == 647 and clock.paused, "tick returns at paused647") + var after: Dictionary = runtime.create_snapshot() + var oracle := FileAccess.get_file_as_bytes(OS.get_environment("THE_TREE_CANDIDATE_ORACLE")).decompress(11487732, FileAccess.COMPRESSION_ZSTD) + check(var_to_bytes(after) == oracle, "complete after647 equals pinned r32 oracle") + var after_pin := typed("after647", after) + check(after_pin["uncompressed_sha256"] == "9df3c1b6f65dfd8be944cd5cab8c631f7533530dfef3820d9fa5d74a5b1ac30f", "complete output digest identical") + var metrics_valid: bool = true + for group: String in declared: + metrics_valid = metrics_valid and metrics[group].size() == declared[group].size() + for key: String in declared[group]: + var row: Dictionary = metrics[group].get(key,{}) + var count := int(row.get("calls",-1)) + metrics_valid = metrics_valid and count>=0 and int(row.get("inclusive_us",-1)) >= int(row.get("max_us",-1)) and int(row.get("max_us",-1)) >= 0 + if count==0: metrics_valid = metrics_valid and int(row["inclusive_us"])==0 and int(row["max_us"])==0 + for phase_index: int in range(11): metrics_valid = metrics_valid and int(metrics["kernel_phases"][str(phase_index)]["calls"]) == 1 + for key: String in ["extract_candidates","rank_candidates","evaluate_candidate"]: metrics_valid = metrics_valid and int(metrics["guest"][key]["calls"])>0 + for key: String in ["_project_guest_candidates","_decide_guest_with_log","get_facility_business_price","_publish_snapshot"]: metrics_valid = metrics_valid and int(metrics["runtime"][key]["calls"])>0 + metrics_valid = metrics_valid and int(metrics["path"]["begin_guest_path_query_batch"]["calls"])>0 and int(metrics["path"]["_build_guest_query_tree_shared_result"]["calls"])>0 + check(metrics_valid, "declared counters cover zero/native bypass and positive scopes; ordered eleven phases observed") + check(int(metrics["runtime"]["_project_guest_candidates_without_native"]["calls"])==0, "every projected candidate call selected current native pipeline; no whole fallback") + var metric_pin := typed("inclusive-residual-metrics", metrics) + var report := {"plan_id":"P23-02", "candidate":candidate, "sample":OS.get_environment("THE_TREE_PAIRED_SAMPLE"), "pid":OS.get_process_id(), "observed_instrumented_tick_us":elapsed, "metrics":metric_pin, "diagnostic_only":true, "after647":after_pin, "cache_hits":runtime.path_service.cache_hits, "cache_misses":runtime.path_service.cache_misses, "checks":checks, "failures":failures, "passed":failures.is_empty(), "unit_accepted":false, "performance_budget_accepted":false, "normal_OS_accepted":false, "Windows_accepted":false, "candidate_adopted":false, "limits":["One instrumented r274/library275 cold646 tick. Original bodies retained, typed state oracle equality required. Nested inclusive durations include diagnostic overhead and children; do not sum/subtract for pure CPU or compare against uninstrumented timings; no performance acceptance.", "No Main, rendering, OS input or realtime x3. Timed interval contains builtin production callbacks; snapshot verification and compression occur after timing."]} + var file := FileAccess.open(output.path_join("report.json"), FileAccess.WRITE) + if file == null: quit(98); return + file.store_string(JSON.stringify(report, "\t")); file.close() + print("Residual diagnostic whole647: %d checks, %d failures" % [checks, failures.size()]) + quit(0 if failures.is_empty() else 1) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311.py b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311.py new file mode 100644 index 0000000..669f238 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311.py @@ -0,0 +1,73 @@ +# coding: utf-8 +"""One adjacent cold whole647 pair; equivalence and timing observation only.""" +from pathlib import Path +import hashlib,importlib.util,json,os,shutil,subprocess,sys,uuid +sys.dont_write_bytecode=True +R=Path(__file__).resolve().parents[2];A=R/'artifacts/original-completion-2026-10-02' +O=A/'p23-02-current-residual-diagnostic-r311';D=R/'docs/plans/original-completion-2026-10-02' +NAMES=['IMPLEMENTATION_PLAN.md','PROGRESS_INTEGRATION.md','work_packages.json','progress_snapshot.json'] +def mod(name,path): + s=importlib.util.spec_from_file_location(name,path);m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m +def unpack(path):return subprocess.run(['/opt/homebrew/bin/zstd','-d','-q','-c',str(path)],check=True,capture_output=True,timeout=10).stdout +def main(): + r=mod('pair_runner',R/'tools/run_all_tests.py');outer=mod('pair_owned',r.SUPPORT/'owned_outer.py');plan=r.read(O/'input.json') + assert not (O/'execution.json').exists() + fixed=plan['pins'];source=r.source_refs(R);player=r.default_player(R);docs={n:r.sha(D/n) for n in NAMES} + pre_path=A/'p23-02-current-residual-diagnostic-preexecution-independent-review-r311.json' + pre=r.read(pre_path);assert pre['execution_allowed'] and not pre['blockers'] + for group in ['evidence_sha256','canonical_doc4_context_pins']: + for q in pre[group].values(): + p=Path(q['path']);assert p.stat().st_size==q['bytes'] and r.sha(p)==q['sha256'] + root=r.read(O/'preexecution-root-verification.json');assert root['passed'] and root['review_sha256']==r.sha(pre_path) + assert source==plan['source_before'] and player==plan['default_before'] and docs==plan['doc4_before'] + stages={k:Path(v) for k,v in plan['stages'].items()};public={k:(p/'project.godot').read_bytes() for k,p in stages.items()} + def protect(): + assert r.source_refs(R)==source and r.default_player(R)==player and {n:r.sha(D/n) for n in NAMES}==docs + assert r.inventory(r.SUPPORT)==plan['support_inventory'] + for k,p in stages.items():assert r.inventory(p,stage=True)==plan['stage_inventory'] + for k,p in plan['parents'].items():assert r.inventory(Path(p),stage=True)==plan['inventories'][k] + for k,q in fixed.items(): + p=Path(q['path']);assert p.stat().st_size==q['bytes'] and r.sha(p)==q['sha256'],k + protect() + assert r.read(Path(fixed['local_review']['path']))['finite_local_equivalence_accepted'] + assert r.read(Path(fixed['whole_review']['path']))['finite_whole647_equivalence_accepted'] + phases=[];samples=[];error=None;cleanup=[];cleanup_errors=[] + oracle=unpack(fixed['oracle']['path']);assert len(oracle)==11487732 and hashlib.sha256(oracle).hexdigest()=='9df3c1b6f65dfd8be944cd5cab8c631f7533530dfef3820d9fa5d74a5b1ac30f' + try: + for k in ['r274']: + protect();assert not outer.native.helper['live_engines']() and shutil.disk_usage(A).free>=plan['capacity_floor_bytes'] + stage=stages[k];output=O/(k+'-measurement');output.mkdir();ident=uuid.uuid4().hex + startup='TheTree-PCK-tests-'+ident+'-whole-startup';profile='TheTree-PCK-tests-'+ident+'-whole-runtime' + assert not r.profile_path(startup).exists() and not r.profile_path(profile).exists() + env=r.fresh_environment(os.environ) + env.update(THE_TREE_PACK_PROFILE_NAME=profile,THE_TREE_PACK_PROFILE_EXPECTED=str(r.profile_path(profile)),THE_TREE_PACK_PROFILE_REPORT=str(O/(k+'-profile.json')),THE_TREE_RUNTIME_MONITOR_OUTPUT=str(output),THE_TREE_REPLAY_SNAPSHOT=fixed['fixture']['path'],THE_TREE_CANDIDATE_ORACLE=fixed['oracle']['path'],THE_TREE_PAIRED_CANDIDATE=k,THE_TREE_PAIRED_SAMPLE=k) + (stage/'project.godot').write_bytes(r.private_project(public[k],startup));phase=O/k + argv=[fixed['engine']['path'],'--headless','--path',str(stage),'--script',fixed['starter_'+k]['path'],'--verbose','--log-file',str(phase/'engine-native.log')] + result,capture=outer.run_phase(argv,phase,90,env,now_fn=r.now,dump_fn=r.write,sha_fn=r.sha,live_engines_fn=outer.native.helper['live_engines']) + row=dict(candidate=k,result=result,capture=capture);phases.append(row);r.write(O/(k+'-phase.json'),row) + report_path=output/'report.json';report=r.read(report_path) if report_path.exists() else None + if report is not None:samples.append(report) + assert result is not None and result['exit_code']==0 and not result['error_lines'] and not result['timed_out'] and capture['passed'] + logs=''.join((phase/n).read_text() for n in ['stdout.log','stderr.log','engine-native.log']) + assert 'Orphan StringName:' not in logs and 'unclaimed string names' not in logs + assert report and report['passed'] and not report['failures'] and report['pid']==result['pid'] and report['candidate']==k and report['sample']==k and report['checks']==18 + assert (phase/'stdout.log').read_text().count('Residual diagnostic whole647: 18 checks, 0 failures')==1 and (phase/'stdout.log').read_text().count('NATIVE_ADAPTER_LIBRARY_REGISTERED')==1 + r.profile_gate(r.profile_path(profile),O/(k+'-profile.json'),profile) + ref=report['after647'];raw=unpack(ref['path']);assert raw==oracle and len(raw)==ref['uncompressed_bytes'] and hashlib.sha256(raw).hexdigest()==ref['uncompressed_sha256'] + metric_ref=report['metrics'];metric_raw=unpack(metric_ref['path']);assert len(metric_raw)==metric_ref['uncompressed_bytes'] and hashlib.sha256(metric_raw).hexdigest()==metric_ref['uncompressed_sha256'] + (stage/'project.godot').write_bytes(public[k]);protect() + except BaseException as caught:error=type(caught).__name__+': '+str(caught) + finally: + cleanup,cleanup_errors=outer.finish_captured(outer.OWNED) + if all(q['engine_ended'] is True for q in cleanup): + for k,p in stages.items():(p/'project.godot').write_bytes(public[k]) + else:cleanup_errors.append('Project restoration refused while owned child remains live') + guard_errors=[] + try:protect() + except BaseException as caught:guard_errors.append(type(caught).__name__+': '+str(caught)) + assert sum(p.stat().st_size for p in O.rglob('*') if p.is_file() and 'stage' not in p.relative_to(O).parts)<=16*1048576 + pairs=[] # A diagnostic observation cannot support an uninstrumented speed comparison. + passed=error is None and not guard_errors and not cleanup_errors and len(samples)==1 and len(phases)==1 + r.write(O/'execution.json',dict(passed=passed,error=error,guard_errors=guard_errors,phases=phases,samples=samples,diagnostic_only=True,cleanup=cleanup,cleanup_errors=cleanup_errors,input_source_default_doc4_preserved=not guard_errors,candidate_adopted=False,unit_accepted=False,performance_accepted=False,normal_OS_accepted=False,Windows_accepted=False,limitations=['One instrumented whole647 equivalence and nested inclusive residual metrics only. No sums/subtractions as pure CPU, no uninstrumented speed comparisons. Stable gain, P95, budget, final regression, realtime x3/Main/render/OS/Windows remain unaccepted.'])) + print(json.dumps(dict(passed=passed,error=error,guard_errors=guard_errors,samples=len(samples))),flush=True);return 0 if passed else 1 +if __name__=='__main__':raise SystemExit(main()) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/guarded-r274.gd b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/guarded-r274.gd new file mode 100644 index 0000000..969db20 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/guarded-r274.gd @@ -0,0 +1,16 @@ +extends "/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311.gd" +const Guard := preload("/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd") +func _initialize() -> void: + if not Guard.activate(): quit(97); return + super._initialize() +func run() -> void: + var loaded := GDExtensionManager.load_extension("/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension") + var exact_api := false + if loaded == GDExtensionManager.LOAD_STATUS_OK and ClassDB.class_exists(&"TheTreeNumericCore"): + var probe: Variant = ClassDB.instantiate(&"TheTreeNumericCore") + exact_api = probe != null and probe.has_method(&"guest_tree_edge_rows") == true + probe = null + check(loaded == GDExtensionManager.LOAD_STATUS_OK and ClassDB.class_exists(&"TheTreeNumericCore") and exact_api, "exact native extension registered before diagnostic") + if loaded != GDExtensionManager.LOAD_STATUS_OK or not ClassDB.class_exists(&"TheTreeNumericCore") or not exact_api: quit(96); return + print("NATIVE_ADAPTER_LIBRARY_REGISTERED") + super.run() diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/input.json.gz b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/input.json.gz new file mode 100644 index 0000000..614d97d Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/input.json.gz differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/instrumentation.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/instrumentation.json new file mode 100644 index 0000000..33929f7 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-current-residual-diagnostic-r311/instrumentation.json @@ -0,0 +1,243 @@ +{ + "scope": "24 original bodies preserved under signature rename+wrappers in four files; existing accepted native Budget dependency reused without new budget wrapper. Current275 only, nested inclusive durations include children/overhead.", + "files": { + "autoload/simulation_runtime.gd": { + "before": { + "bytes": 611530, + "sha256": "b4201726a735e9d979bd1ffae626ecd43ad2b76e4c7d1b51430884609bf2f4dc" + }, + "after": { + "bytes": 619011, + "sha256": "3da67f9c2c446ac9f4e26725cd48f9694cd0973646330f6bccc9e4aacfca64cd" + }, + "wrappers": [ + { + "name": "_project_guest_candidates", + "renamed": "_p23r311_original_project_guest_candidates", + "signature": "func _project_guest_candidates(guest_id: StringName) -> Array:\n", + "renamed_signature": "func _p23r311_original_project_guest_candidates(guest_id: StringName) -> Array:\n", + "wrapper": "func _project_guest_candidates(guest_id: StringName) -> Array:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array = _p23r311_original_project_guest_candidates(guest_id)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_project_guest_candidates\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_decide_guest_with_log", + "renamed": "_p23r311_original_decide_guest_with_log", + "signature": "func _decide_guest_with_log(guest_id: StringName, candidates: Array, minute: int, context: Dictionary) -> Dictionary:\n", + "renamed_signature": "func _p23r311_original_decide_guest_with_log(guest_id: StringName, candidates: Array, minute: int, context: Dictionary) -> Dictionary:\n", + "wrapper": "func _decide_guest_with_log(guest_id: StringName, candidates: Array, minute: int, context: Dictionary) -> Dictionary:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Dictionary = _p23r311_original_decide_guest_with_log(guest_id, candidates, minute, context)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_decide_guest_with_log\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_find_facility_access_path", + "renamed": "_p23r311_original_find_facility_access_path", + "signature": "func _find_facility_access_path(start: Vector3i, facility: FacilityInstance) -> Dictionary:\n", + "renamed_signature": "func _p23r311_original_find_facility_access_path(start: Vector3i, facility: FacilityInstance) -> Dictionary:\n", + "wrapper": "func _find_facility_access_path(start: Vector3i, facility: FacilityInstance) -> Dictionary:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Dictionary = _p23r311_original_find_facility_access_path(start, facility)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_find_facility_access_path\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_estimated_actor_path_minutes", + "renamed": "_p23r311_original_estimated_actor_path_minutes", + "signature": "func _estimated_actor_path_minutes(path: Array, access: Array[StringName]) -> int:\n", + "renamed_signature": "func _p23r311_original_estimated_actor_path_minutes(path: Array, access: Array[StringName]) -> int:\n", + "wrapper": "func _estimated_actor_path_minutes(path: Array, access: Array[StringName]) -> int:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: int = _p23r311_original_estimated_actor_path_minutes(path, access)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_estimated_actor_path_minutes\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_facility_access_candidates", + "renamed": "_p23r311_original_facility_access_candidates", + "signature": "func _facility_access_candidates(facility: FacilityInstance) -> Array:\n", + "renamed_signature": "func _p23r311_original_facility_access_candidates(facility: FacilityInstance) -> Array:\n", + "wrapper": "func _facility_access_candidates(facility: FacilityInstance) -> Array:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array = _p23r311_original_facility_access_candidates(facility)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_facility_access_candidates\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_guest_access_batch_can_select", + "renamed": "_p23r311_original_guest_access_batch_can_select", + "signature": "func _guest_access_batch_can_select() -> bool:\n", + "renamed_signature": "func _p23r311_original_guest_access_batch_can_select() -> bool:\n", + "wrapper": "func _guest_access_batch_can_select() -> bool:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: bool = _p23r311_original_guest_access_batch_can_select()\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_guest_access_batch_can_select\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_project_guest_candidates_without_native", + "renamed": "_p23r311_original__project_guest_candidates_without_native", + "signature": "func _project_guest_candidates_without_native(guest_id: StringName) -> Array:\n", + "renamed_signature": "func _p23r311_original__project_guest_candidates_without_native(guest_id: StringName) -> Array:\n", + "wrapper": "func _project_guest_candidates_without_native(guest_id: StringName) -> Array:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array = _p23r311_original__project_guest_candidates_without_native(guest_id)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_project_guest_candidates_without_native\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_need_relief_for_facility_tags", + "renamed": "_p23r311_original__need_relief_for_facility_tags", + "signature": "func _need_relief_for_facility_tags(tags: Array[StringName]) -> Dictionary:\n", + "renamed_signature": "func _p23r311_original__need_relief_for_facility_tags(tags: Array[StringName]) -> Dictionary:\n", + "wrapper": "func _need_relief_for_facility_tags(tags: Array[StringName]) -> Dictionary:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Dictionary = _p23r311_original__need_relief_for_facility_tags(tags)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_need_relief_for_facility_tags\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_service_category_for_tags", + "renamed": "_p23r311_original__service_category_for_tags", + "signature": "func _service_category_for_tags(tags: Array[StringName]) -> StringName:\n", + "renamed_signature": "func _p23r311_original__service_category_for_tags(tags: Array[StringName]) -> StringName:\n", + "wrapper": "func _service_category_for_tags(tags: Array[StringName]) -> StringName:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: StringName = _p23r311_original__service_category_for_tags(tags)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_service_category_for_tags\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "get_facility_business_price", + "renamed": "_p23r311_original_get_facility_business_price", + "signature": "func get_facility_business_price(facility: FacilityInstance) -> int:\n", + "renamed_signature": "func _p23r311_original_get_facility_business_price(facility: FacilityInstance) -> int:\n", + "wrapper": "func get_facility_business_price(facility: FacilityInstance) -> int:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: int = _p23r311_original_get_facility_business_price(facility)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"get_facility_business_price\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_publish_snapshot", + "renamed": "_p23r311_original__publish_snapshot", + "signature": "func _publish_snapshot(_absolute_minute: int) -> void:\n", + "renamed_signature": "func _p23r311_original__publish_snapshot(_absolute_minute: int) -> void:\n", + "wrapper": "func _publish_snapshot(_absolute_minute: int) -> void:\n\tvar p23_started: int = Time.get_ticks_usec()\n\t_p23r311_original__publish_snapshot(_absolute_minute)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_publish_snapshot\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n" + } + ], + "added_suffix": "\n# Private r311 diagnostic fields only; never serialized. Timings are nested/inclusive.\nvar _p23r311_metrics: Dictionary = {}\n\nfunc _project_guest_candidates(guest_id: StringName) -> Array:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array = _p23r311_original_project_guest_candidates(guest_id)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_project_guest_candidates\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc _decide_guest_with_log(guest_id: StringName, candidates: Array, minute: int, context: Dictionary) -> Dictionary:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Dictionary = _p23r311_original_decide_guest_with_log(guest_id, candidates, minute, context)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_decide_guest_with_log\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc _find_facility_access_path(start: Vector3i, facility: FacilityInstance) -> Dictionary:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Dictionary = _p23r311_original_find_facility_access_path(start, facility)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_find_facility_access_path\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc _estimated_actor_path_minutes(path: Array, access: Array[StringName]) -> int:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: int = _p23r311_original_estimated_actor_path_minutes(path, access)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_estimated_actor_path_minutes\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\n\nfunc _facility_access_candidates(facility: FacilityInstance) -> Array:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array = _p23r311_original_facility_access_candidates(facility)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_facility_access_candidates\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc _guest_access_batch_can_select() -> bool:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: bool = _p23r311_original_guest_access_batch_can_select()\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_guest_access_batch_can_select\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc _project_guest_candidates_without_native(guest_id: StringName) -> Array:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array = _p23r311_original__project_guest_candidates_without_native(guest_id)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_project_guest_candidates_without_native\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc _need_relief_for_facility_tags(tags: Array[StringName]) -> Dictionary:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Dictionary = _p23r311_original__need_relief_for_facility_tags(tags)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_need_relief_for_facility_tags\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc _service_category_for_tags(tags: Array[StringName]) -> StringName:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: StringName = _p23r311_original__service_category_for_tags(tags)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_service_category_for_tags\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc get_facility_business_price(facility: FacilityInstance) -> int:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: int = _p23r311_original_get_facility_business_price(facility)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"get_facility_business_price\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc _publish_snapshot(_absolute_minute: int) -> void:\n\tvar p23_started: int = Time.get_ticks_usec()\n\t_p23r311_original__publish_snapshot(_absolute_minute)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_publish_snapshot\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n", + "inverse_original_equal": true + }, + "scripts/world/path_service.gd": { + "before": { + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + "after": { + "bytes": 139394, + "sha256": "c96dc7b3ae6ed7107d410631e9d7501c5e25d0c4696a76d621e6bcd7ff2f7a97" + }, + "wrappers": [ + { + "name": "begin_guest_path_query_batch", + "renamed": "_p23r311_originalbegin_guest_path_query_batch", + "signature": "func begin_guest_path_query_batch(start: Vector3i, goals: Array) -> void:\n", + "renamed_signature": "func _p23r311_originalbegin_guest_path_query_batch(start: Vector3i, goals: Array) -> void:\n", + "wrapper": "func begin_guest_path_query_batch(start: Vector3i, goals: Array) -> void:\n\tvar p23_started: int = Time.get_ticks_usec()\n\t_p23r311_originalbegin_guest_path_query_batch(start, goals)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"begin_guest_path_query_batch\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n" + }, + { + "name": "query_nearest_guest_access", + "renamed": "_p23r311_originalquery_nearest_guest_access", + "signature": "func query_nearest_guest_access(start: Vector3i, goals: Array, fallback_target: Vector3i) -> Dictionary:\n", + "renamed_signature": "func _p23r311_originalquery_nearest_guest_access(start: Vector3i, goals: Array, fallback_target: Vector3i) -> Dictionary:\n", + "wrapper": "func query_nearest_guest_access(start: Vector3i, goals: Array, fallback_target: Vector3i) -> Dictionary:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Dictionary = _p23r311_originalquery_nearest_guest_access(start, goals, fallback_target)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"query_nearest_guest_access\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_build_guest_query_tree_shared_result", + "renamed": "_p23r311_original_build_guest_query_tree_shared_result", + "signature": "func _build_guest_query_tree_shared_result(start: Vector3i, goals: Dictionary, layers: Array[int], access: Array[StringName], compact_result: bool) -> Dictionary:\n", + "renamed_signature": "func _p23r311_original_build_guest_query_tree_shared_result(start: Vector3i, goals: Dictionary, layers: Array[int], access: Array[StringName], compact_result: bool) -> Dictionary:\n", + "wrapper": "func _build_guest_query_tree_shared_result(start: Vector3i, goals: Dictionary, layers: Array[int], access: Array[StringName], compact_result: bool) -> Dictionary:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Dictionary = _p23r311_original_build_guest_query_tree_shared_result(start, goals, layers, access, compact_result)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_build_guest_query_tree_shared_result\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_resolve_ready_guest_batch_point", + "renamed": "_p23r311_original_resolve_ready_guest_batch_point", + "signature": "func _resolve_ready_guest_batch_point(start: Vector3i, goal: Vector3i, tree: Dictionary) -> Array[Vector3i]:\n", + "renamed_signature": "func _p23r311_original_resolve_ready_guest_batch_point(start: Vector3i, goal: Vector3i, tree: Dictionary) -> Array[Vector3i]:\n", + "wrapper": "func _resolve_ready_guest_batch_point(start: Vector3i, goal: Vector3i, tree: Dictionary) -> Array[Vector3i]:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array[Vector3i] = _p23r311_original_resolve_ready_guest_batch_point(start, goal, tree)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_resolve_ready_guest_batch_point\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_guest_tree_reconstruct_path", + "renamed": "_p23r311_original_guest_tree_reconstruct_path", + "signature": "func _guest_tree_reconstruct_path(tree: Dictionary, goal: Vector3i) -> Array[Vector3i]:\n", + "renamed_signature": "func _p23r311_original_guest_tree_reconstruct_path(tree: Dictionary, goal: Vector3i) -> Array[Vector3i]:\n", + "wrapper": "func _guest_tree_reconstruct_path(tree: Dictionary, goal: Vector3i) -> Array[Vector3i]:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array[Vector3i] = _p23r311_original_guest_tree_reconstruct_path(tree, goal)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_guest_tree_reconstruct_path\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_cache_key", + "renamed": "_p23r311_original_cache_key", + "signature": "func _cache_key(\n\tstart: Vector3i,\n\tgoal: Vector3i,\n\tallowed_layers: Array[int],\n\tallowed_access_ids: Array[StringName]\n) -> String:\n", + "renamed_signature": "func _p23r311_original_cache_key(\n\tstart: Vector3i,\n\tgoal: Vector3i,\n\tallowed_layers: Array[int],\n\tallowed_access_ids: Array[StringName]\n) -> String:\n", + "wrapper": "func _cache_key(\n\tstart: Vector3i,\n\tgoal: Vector3i,\n\tallowed_layers: Array[int],\n\tallowed_access_ids: Array[StringName]\n) -> String:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: String = _p23r311_original_cache_key(start, goal, allowed_layers, allowed_access_ids)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_cache_key\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_copy_path", + "renamed": "_p23r311_original_copy_path", + "signature": "func _copy_path(path: Array) -> Array[Vector3i]:\n", + "renamed_signature": "func _p23r311_original_copy_path(path: Array) -> Array[Vector3i]:\n", + "wrapper": "func _copy_path(path: Array) -> Array[Vector3i]:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array[Vector3i] = _p23r311_original_copy_path(path)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_copy_path\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_guest_tree_cost", + "renamed": "_p23r311_original_guest_tree_cost", + "signature": "func _guest_tree_cost(tree: Dictionary, cell: Vector3i) -> int:\n", + "renamed_signature": "func _p23r311_original_guest_tree_cost(tree: Dictionary, cell: Vector3i) -> int:\n", + "wrapper": "func _guest_tree_cost(tree: Dictionary, cell: Vector3i) -> int:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: int = _p23r311_original_guest_tree_cost(tree, cell)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_guest_tree_cost\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "_guest_batch_has_permitted_layer_crossing", + "renamed": "_p23r311_original_guest_batch_has_permitted_layer_crossing", + "signature": "func _guest_batch_has_permitted_layer_crossing(start: Vector3i, goal: Vector3i, layers: Array[int], access: Array[StringName]) -> bool:\n", + "renamed_signature": "func _p23r311_original_guest_batch_has_permitted_layer_crossing(start: Vector3i, goal: Vector3i, layers: Array[int], access: Array[StringName]) -> bool:\n", + "wrapper": "func _guest_batch_has_permitted_layer_crossing(start: Vector3i, goal: Vector3i, layers: Array[int], access: Array[StringName]) -> bool:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: bool = _p23r311_original_guest_batch_has_permitted_layer_crossing(start, goal, layers, access)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_guest_batch_has_permitted_layer_crossing\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + } + ], + "added_suffix": "\n# Private r311 diagnostic fields only; never serialized. Timings are nested/inclusive.\nvar _p23r311_metrics: Dictionary = {}\n\nfunc begin_guest_path_query_batch(start: Vector3i, goals: Array) -> void:\n\tvar p23_started: int = Time.get_ticks_usec()\n\t_p23r311_originalbegin_guest_path_query_batch(start, goals)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"begin_guest_path_query_batch\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\nfunc query_nearest_guest_access(start: Vector3i, goals: Array, fallback_target: Vector3i) -> Dictionary:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Dictionary = _p23r311_originalquery_nearest_guest_access(start, goals, fallback_target)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"query_nearest_guest_access\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc _build_guest_query_tree_shared_result(start: Vector3i, goals: Dictionary, layers: Array[int], access: Array[StringName], compact_result: bool) -> Dictionary:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Dictionary = _p23r311_original_build_guest_query_tree_shared_result(start, goals, layers, access, compact_result)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_build_guest_query_tree_shared_result\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc _resolve_ready_guest_batch_point(start: Vector3i, goal: Vector3i, tree: Dictionary) -> Array[Vector3i]:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array[Vector3i] = _p23r311_original_resolve_ready_guest_batch_point(start, goal, tree)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_resolve_ready_guest_batch_point\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc _guest_tree_reconstruct_path(tree: Dictionary, goal: Vector3i) -> Array[Vector3i]:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array[Vector3i] = _p23r311_original_guest_tree_reconstruct_path(tree, goal)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_guest_tree_reconstruct_path\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\n\nfunc _cache_key(\n\tstart: Vector3i,\n\tgoal: Vector3i,\n\tallowed_layers: Array[int],\n\tallowed_access_ids: Array[StringName]\n) -> String:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: String = _p23r311_original_cache_key(start, goal, allowed_layers, allowed_access_ids)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_cache_key\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc _copy_path(path: Array) -> Array[Vector3i]:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array[Vector3i] = _p23r311_original_copy_path(path)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_copy_path\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc _guest_tree_cost(tree: Dictionary, cell: Vector3i) -> int:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: int = _p23r311_original_guest_tree_cost(tree, cell)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_guest_tree_cost\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc _guest_batch_has_permitted_layer_crossing(start: Vector3i, goal: Vector3i, layers: Array[int], access: Array[StringName]) -> bool:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: bool = _p23r311_original_guest_batch_has_permitted_layer_crossing(start, goal, layers, access)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"_guest_batch_has_permitted_layer_crossing\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n", + "inverse_original_equal": true + }, + "scripts/core/simulation_kernel.gd": { + "before": { + "bytes": 7602, + "sha256": "341c0c878c4894adbac628d0db6362ff69fc3347bdd9e61e50936e15dc2d1edb" + }, + "after": { + "bytes": 8282, + "sha256": "5d578d7b845522388bd48a4a6e0c3a60e628498ec2da6aba722d8c6e2fc40a20" + }, + "wrappers": [ + { + "name": "_run_phase", + "renamed": "_p23r311_original_run_phase", + "signature": "func _run_phase(phase: TickPhase) -> void:\n", + "renamed_signature": "func _p23r311_original_run_phase(phase: TickPhase) -> void:\n", + "wrapper": "func _run_phase(phase: TickPhase) -> void:\n\tvar p23_started: int = Time.get_ticks_usec()\n\t_p23r311_original_run_phase(phase)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = str(phase)\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n" + } + ], + "added_suffix": "\n# Private r311 diagnostic fields only; never serialized. Timings are nested/inclusive.\nvar _p23r311_metrics: Dictionary = {}\n\nfunc _run_phase(phase: TickPhase) -> void:\n\tvar p23_started: int = Time.get_ticks_usec()\n\t_p23r311_original_run_phase(phase)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = str(phase)\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\n", + "inverse_original_equal": true + }, + "scripts/guest/guest_service.gd": { + "before": { + "bytes": 61414, + "sha256": "56880410e9a00816f9a95d30821982955532de8dd976980934e12016a9f2b21e" + }, + "after": { + "bytes": 63573, + "sha256": "39986d98720d37dfd8c437b7043848df3b14120b307e99fef877428abd26b07d" + }, + "wrappers": [ + { + "name": "extract_candidates", + "renamed": "_p23r311_originalextract_candidates", + "signature": "func extract_candidates(\n\tguest_id: StringName,\n\tfacilities: Array,\n\tcontext: Dictionary = {}\n) -> Array[Dictionary]:\n", + "renamed_signature": "func _p23r311_originalextract_candidates(\n\tguest_id: StringName,\n\tfacilities: Array,\n\tcontext: Dictionary = {}\n) -> Array[Dictionary]:\n", + "wrapper": "func extract_candidates(\n\tguest_id: StringName,\n\tfacilities: Array,\n\tcontext: Dictionary = {}\n) -> Array[Dictionary]:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array[Dictionary] = _p23r311_originalextract_candidates(guest_id, facilities, context)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"extract_candidates\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "rank_candidates", + "renamed": "_p23r311_originalrank_candidates", + "signature": "func rank_candidates(guest_id: StringName, candidates: Array) -> Array[Dictionary]:\n", + "renamed_signature": "func _p23r311_originalrank_candidates(guest_id: StringName, candidates: Array) -> Array[Dictionary]:\n", + "wrapper": "func rank_candidates(guest_id: StringName, candidates: Array) -> Array[Dictionary]:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array[Dictionary] = _p23r311_originalrank_candidates(guest_id, candidates)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"rank_candidates\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + }, + { + "name": "evaluate_candidate", + "renamed": "_p23r311_originalevaluate_candidate", + "signature": "func evaluate_candidate(guest_id: StringName, candidate: Dictionary) -> Dictionary:\n", + "renamed_signature": "func _p23r311_originalevaluate_candidate(guest_id: StringName, candidate: Dictionary) -> Dictionary:\n", + "wrapper": "func evaluate_candidate(guest_id: StringName, candidate: Dictionary) -> Dictionary:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Dictionary = _p23r311_originalevaluate_candidate(guest_id, candidate)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"evaluate_candidate\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n" + } + ], + "added_suffix": "\n# Private diagnostic only; never serialized.\nvar _p23r311_metrics: Dictionary = {}\n\nfunc extract_candidates(\n\tguest_id: StringName,\n\tfacilities: Array,\n\tcontext: Dictionary = {}\n) -> Array[Dictionary]:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array[Dictionary] = _p23r311_originalextract_candidates(guest_id, facilities, context)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"extract_candidates\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc rank_candidates(guest_id: StringName, candidates: Array) -> Array[Dictionary]:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Array[Dictionary] = _p23r311_originalrank_candidates(guest_id, candidates)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"rank_candidates\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n\nfunc evaluate_candidate(guest_id: StringName, candidate: Dictionary) -> Dictionary:\n\tvar p23_started: int = Time.get_ticks_usec()\n\tvar p23_result: Dictionary = _p23r311_originalevaluate_candidate(guest_id, candidate)\n\tvar p23_elapsed: int = Time.get_ticks_usec() - p23_started\n\tvar p23_key: String = \"evaluate_candidate\"\n\tvar p23_row: Dictionary = _p23r311_metrics.get(p23_key, {\"calls\":0, \"inclusive_us\":0, \"max_us\":0})\n\tp23_row[\"calls\"] = int(p23_row[\"calls\"]) + 1\n\tp23_row[\"inclusive_us\"] = int(p23_row[\"inclusive_us\"]) + p23_elapsed\n\tp23_row[\"max_us\"] = maxi(int(p23_row[\"max_us\"]), p23_elapsed)\n\t_p23r311_metrics[p23_key] = p23_row\n\treturn p23_result\n", + "inverse_original_equal": true + } + }, + "changed_stage_files": [ + "autoload/simulation_runtime.gd", + "scripts/core/performance_budget.gd", + "scripts/core/simulation_kernel.gd", + "scripts/guest/guest_service.gd", + "scripts/world/path_service.gd" + ], + "original_parent": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage", + "budget_dependency": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/performance_budget.candidate.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + "no_pure_CPU_or_speed_comparison": true +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-guest-bulk-work-contract-r312.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-guest-bulk-work-contract-r312.json new file mode 100644 index 0000000..02990a5 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-guest-bulk-work-contract-r312.json @@ -0,0 +1,310 @@ +{ + "plan_id": "P23-02", + "status": "implementation_contract_not_implementation_or_acceptance", + "selection": "one coherent builtin guest candidate extraction/evaluation/ranking after existing native projection", + "reason": "Current275 instrumented observations retain a substantial unconverted Guest portion. Existing native projection is reused; another isolated key/copy/price/tag/need-normalization timing chain is not selected. Choosing a coherent conversion does not assert its benefit or sufficiency for50ms.", + "observed_instrumented_tick_us": 1268510, + "observed_metrics": { + "runtime": { + "_project_guest_candidates": { + "calls": 50, + "inclusive_us": 656139, + "max_us": 45760 + }, + "_decide_guest_with_log": { + "calls": 50, + "inclusive_us": 230065, + "max_us": 4795 + }, + "_find_facility_access_path": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_estimated_actor_path_minutes": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_facility_access_candidates": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_guest_access_batch_can_select": { + "calls": 50, + "inclusive_us": 195, + "max_us": 6 + }, + "_project_guest_candidates_without_native": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_need_relief_for_facility_tags": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_service_category_for_tags": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "get_facility_business_price": { + "calls": 7500, + "inclusive_us": 14899, + "max_us": 21 + }, + "_publish_snapshot": { + "calls": 1, + "inclusive_us": 76851, + "max_us": 76851 + } + }, + "path": { + "begin_guest_path_query_batch": { + "calls": 50, + "inclusive_us": 24721, + "max_us": 689 + }, + "query_nearest_guest_access": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_build_guest_query_tree_shared_result": { + "calls": 50, + "inclusive_us": 111700, + "max_us": 35777 + }, + "_resolve_ready_guest_batch_point": { + "calls": 0, + "inclusive_us": 0, + "max_us": 0 + }, + "_guest_tree_reconstruct_path": { + "calls": 10675, + "inclusive_us": 62826, + "max_us": 51 + }, + "_cache_key": { + "calls": 2586, + "inclusive_us": 4019, + "max_us": 8 + }, + "_copy_path": { + "calls": 6811, + "inclusive_us": 15742, + "max_us": 38 + }, + "_guest_tree_cost": { + "calls": 4000, + "inclusive_us": 1584, + "max_us": 1 + }, + "_guest_batch_has_permitted_layer_crossing": { + "calls": 32500, + "inclusive_us": 14707, + "max_us": 20 + } + }, + "kernel_phases": { + "0": { + "calls": 1, + "inclusive_us": 13, + "max_us": 13 + }, + "1": { + "calls": 1, + "inclusive_us": 1121, + "max_us": 1121 + }, + "2": { + "calls": 1, + "inclusive_us": 340, + "max_us": 340 + }, + "3": { + "calls": 1, + "inclusive_us": 118618, + "max_us": 118618 + }, + "4": { + "calls": 1, + "inclusive_us": 89293, + "max_us": 89293 + }, + "5": { + "calls": 1, + "inclusive_us": 970, + "max_us": 970 + }, + "6": { + "calls": 1, + "inclusive_us": 1063, + "max_us": 1063 + }, + "7": { + "calls": 1, + "inclusive_us": 218, + "max_us": 218 + }, + "8": { + "calls": 1, + "inclusive_us": 180, + "max_us": 180 + }, + "9": { + "calls": 1, + "inclusive_us": 979790, + "max_us": 979790 + }, + "10": { + "calls": 1, + "inclusive_us": 76865, + "max_us": 76865 + } + }, + "guest": { + "extract_candidates": { + "calls": 50, + "inclusive_us": 95575, + "max_us": 2002 + }, + "rank_candidates": { + "calls": 50, + "inclusive_us": 124620, + "max_us": 2600 + }, + "evaluate_candidate": { + "calls": 5000, + "inclusive_us": 106351, + "max_us": 44 + } + } + }, + "timing_rules": [ + "nested inclusive durations include children and probes", + "do not add evaluation to ranking", + "no pureCPU allocation, no uninstrumented comparison or predicted gain", + "normal OS/x3/performance criteria remain mandatory" + ], + "reuse": { + "implementation_parent": "r274/library275", + "held_unadopted_trial": "r302/library303", + "ordinary_guest_body": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/guest/guest_service.gd", + "declined_need_normalization": "r298 remains unadopted; do not restart it or duplicate GDScript normalization implementation" + }, + "implementation_scope": [ + "Keep original public Guest extraction/evaluation/ranking/decide as fallback and direct-call oracle. Add one per-call pure native transformation for builtin canonical default game candidates; Runtime integrates only after support has been proved before observable mutation.", + "Preserve extraction facility-id order, rejection reason precedence/list, ranked need-priority/utility/urgency/travel/facility-id ordering, signed integer arithmetic and exact original weights/defaults/thresholds.", + "Reuse current native projection, produce original raw/accepted/ranked ordered typed values and owned deep copies; no saved state, persistent across-guest cache, formula changes, candidate pruning or frame slicing.", + "Retain original reservation callback and state transition body. Unsupported/custom scripts, inputs requiring original conversions, arbitrary callback/reentry contexts must use original whole processing with no duplicate error/rejection effects.", + "Make get_observation/logging/last_error/rejection publication and all callback-visible order explicit before implementation; do not precompute across callbacks." + ], + "allowed_product_references": [ + "existing native tree_numeric_core.cpp/header candidate sources", + "scripts/guest/guest_service.gd", + "autoload/simulation_runtime.gd" + ], + "required_before_implementation": [ + "Inspect every original filtering/scoring helper and current definition/runtime fields; identify whether a pure canonical fast path covers ordinary current projection.", + "Define API/result fields and unsupported-before-mutation gate; fixed script/source version, data types, ownership, aliases and signed conversions must be explicit.", + "Do not change unconfirmed D01-D10 settings, pricing or game-time scale." + ], + "validation_plan": [ + "Static original-body/branch order and deep-copy/typed ownership comparison first; independent review before engine.", + "One targeted local pure Guest suite covering normal projected data, rejection precedence, rankings/ties, signed limits, original fallback/custom/callback behavior and owner mutation isolation.", + "Original Guest/lifecycle integration plus full cold646→647 ordered typed original oracle on exactly assembled candidate. Reuse valid fixed input/library/script proof scopes only.", + "After related changes and supported selection are complete, mandatory final172/normalOS/x3/exit/small-screen and same Windows distribution/device/P95/D10/50ms. No old-version full regression reuse as current acceptance." + ], + "source_pins": { + "scripts/guest/guest_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/guest/guest_service.gd", + "bytes": 61414, + "sha256": "56880410e9a00816f9a95d30821982955532de8dd976980934e12016a9f2b21e" + }, + "scripts/guest/guest_definition.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/guest/guest_definition.gd", + "bytes": 9374, + "sha256": "082aa3f33b9cb17daf10a2cf8a1dece7b79dd80c2ae21e1a424d1b2ceb52b918" + }, + "scripts/guest/guest_runtime.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/guest/guest_runtime.gd", + "bytes": 14267, + "sha256": "57ba99e5d977b5302987f4359a19056f1ab09c8fb7e4762ee8d79cbb9316741a" + }, + "scripts/core/simulation_kernel.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/scripts/core/simulation_kernel.gd", + "bytes": 7602, + "sha256": "341c0c878c4894adbac628d0db6362ff69fc3347bdd9e61e50936e15dc2d1edb" + }, + "docs/traceability/original/BASELINE.txt": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/traceability/original/BASELINE.txt", + "bytes": 23494, + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + }, + "evidence_pins": { + "execution": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/execution.json", + "bytes": 12462, + "sha256": "c356c803ebe6320f3f4f9b034c2e796b309e8660151bda489a6a21313196386c" + }, + "metrics": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json", + "bytes": 4566, + "sha256": "54e2e7aa9c6304b8d1ead5853eb78eafaad4cdeffb2dd3e4784643992a4d319f" + }, + "review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json", + "bytes": 39941, + "sha256": "a38dae71afd2b5db0591ecca16b65abc3158f080460e9c0b09a265f339967d09" + }, + "root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json", + "bytes": 22991, + "sha256": "5373708a07d92323146615deb8663fa9b6e101e28df9821c4e5129312f63b57f" + }, + "current_matrix": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json", + "bytes": 70364, + "sha256": "41085a75190fdb67ba44ac7f6893d42c18ee797762d4b00e7eda546ed025c460" + } + }, + "formal_completed_added": 0, + "candidate_implemented": false, + "candidate_selected": false, + "candidate_adopted": false, + "performance_accepted": false, + "unit_accepted": false, + "assembly_source_pins": { + "autoload/simulation_runtime.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd", + "bytes": 611530, + "sha256": "b4201726a735e9d979bd1ffae626ecd43ad2b76e4c7d1b51430884609bf2f4dc" + }, + "scripts/world/path_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + "scripts/guest/guest_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/guest/guest_service.gd", + "bytes": 61414, + "sha256": "56880410e9a00816f9a95d30821982955532de8dd976980934e12016a9f2b21e" + }, + "native_cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp", + "bytes": 54002, + "sha256": "ce20a90adb8a410dc1b6cbf607b7bfa8bf21eaef158c5c6bfc7a9bbcc703d2b2" + }, + "native_hpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + } + }, + "assembly_scope": "Production32 retained. New native work starts from existing274/275 isolated assembly, not from an assumed identical production Runtime. Guest source bytes are identical in both." +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/IMPLEMENTATION_PLAN.md.gz b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/IMPLEMENTATION_PLAN.md.gz new file mode 100644 index 0000000..116a1bc Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/IMPLEMENTATION_PLAN.md.gz differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/PROGRESS_INTEGRATION.md.gz b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/PROGRESS_INTEGRATION.md.gz new file mode 100644 index 0000000..cc2db3e Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/PROGRESS_INTEGRATION.md.gz differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/progress_snapshot.json.gz b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/progress_snapshot.json.gz new file mode 100644 index 0000000..e35771a Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/progress_snapshot.json.gz differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/work_packages.json.gz b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/work_packages.json.gz new file mode 100644 index 0000000..0777c09 Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/after/work_packages.json.gz differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/IMPLEMENTATION_PLAN.md.gz b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/IMPLEMENTATION_PLAN.md.gz new file mode 100644 index 0000000..cbbe908 Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/IMPLEMENTATION_PLAN.md.gz differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/PROGRESS_INTEGRATION.md.gz b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/PROGRESS_INTEGRATION.md.gz new file mode 100644 index 0000000..6a58b68 Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/PROGRESS_INTEGRATION.md.gz differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/progress_snapshot.json.gz b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/progress_snapshot.json.gz new file mode 100644 index 0000000..04253be Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/progress_snapshot.json.gz differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/work_packages.json.gz b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/work_packages.json.gz new file mode 100644 index 0000000..3557597 Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/before/work_packages.json.gz differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/input.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/input.json new file mode 100644 index 0000000..a329f0b --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-candidate-r312/input.json @@ -0,0 +1,79 @@ +{ + "before": { + "IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/IMPLEMENTATION_PLAN.md", + "bytes": 492770, + "sha256": "1dd710cb48626884c5692d230c1ace21291a4107d0148a11f020b6b7bd9c127a" + }, + "PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/PROGRESS_INTEGRATION.md", + "bytes": 410834, + "sha256": "c30ce7db6dbe85ac16b551105f239f5657e97e0dca1b293993684b100668c5fa" + }, + "work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/work_packages.json", + "bytes": 1198450, + "sha256": "66d0a29d003c7d6a055669df0f79412f3bed09263f540855951251f69609a169" + }, + "progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/before/progress_snapshot.json", + "bytes": 570488, + "sha256": "d7e746554b709b9d8408eee2550ee8a0b9bdb58975797c5cbd05467bdc59dc93" + } + }, + "after": { + "IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/IMPLEMENTATION_PLAN.md", + "bytes": 493994, + "sha256": "66be3f790b8ad802dbbf83ebe3374648d282df6b742d0962fbd7aff2507c9112" + }, + "PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/PROGRESS_INTEGRATION.md", + "bytes": 412058, + "sha256": "f74196dbd2a88ce131975d2bea02a339a9077316327d2caa3c0add64460ec31f" + }, + "work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/work_packages.json", + "bytes": 1203655, + "sha256": "13b5c5dd54cede6de8ff797659a6f931926bb5c0195a2a2a3727f616d65a122c" + }, + "progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r312/after/progress_snapshot.json", + "bytes": 576820, + "sha256": "dca289ae7560af4fa5c2da981cd6c760f37930672cc032dfb35c88a49f65a7ea" + } + }, + "proofs": [ + { + "review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json", + "bytes": 39941, + "sha256": "a38dae71afd2b5db0591ecca16b65abc3158f080460e9c0b09a265f339967d09" + }, + "root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json", + "bytes": 22991, + "sha256": "5373708a07d92323146615deb8663fa9b6e101e28df9821c4e5129312f63b57f" + } + } + ], + "matrix": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r312.json", + "bytes": 73046, + "sha256": "f1f675e37f3782c2fadd1cc398528a2f517ecb69d386bcbfeae70f07b9801201" + }, + "author": { + "path": "/private/tmp/thetree-integrate-current-residual-r312.py", + "bytes": 9289, + "sha256": "e2ee37570c2befa5e8fc766e27f5074b8a7a22e4a2b6e6e6e3c1b5786bf21e5d" + }, + "counts": { + "completed": 9, + "in_progress": 19, + "planned": 60 + }, + "summary_before": "P23-02は着手中・次に閉じる1件。30パッケージ/88成果、正式9/着手19/予定60、部分点なし。制作r32、選定済み未採用作業r62、実装親r274/library275を保持。原17条件C01-C09/X1-X8は全て未受入、Windows実機C08/X8だけブロック。候補r302/library303の静的・host・局所304-r02の252/0と原S6/whole305の24/0・各15/0・全11,487,732 bytes原oracle同値・復元はr306証拠を保持。同期時間1213031→1185064us(約2.305547%短い)は隣接単発のみで安定利益・P95/D10/50msを認定せず、約1.185秒の同期停止が残る。追加r307-r02は同じ303の新1engineのみ、再build/library複製/stage clone0。67/0でcompact整数・index浮動小数・cellVector3の3変換条件を原nearest helperへ比較し、全ordered typed結果・全Runtime/Path状態・型と所有/変更分離を独立有限受理。ticks初回で実set_scriptしたcustom Pathは原script変数復元・全状態保持後、custom reconstruct/copy順序とtyped writable経路/cache分離をactualとoracle双方で比較。置換oracleは同じ置換後の原ready resolverであり、初期customを原nearestが受理する証拠ではない。oracle通知duration0は全PerformanceBudget履歴同値を主張しない。不正形状・一般再入の全域は未受入。以下r309-r03の列挙条件のみ有限検証。旧15+8/tag1028・wholeを重複実行しない。r307準備は日本語エスケープpath置換anchor不一致でengine0/input無し停止、失敗記録を保持してr02参照修復。1所有PID68102正常終了・strict/private・source/default/D4/SUPPORT/共有親stage/project復元を独立有限受理。r302/library303は未採用・選定保留。料金/重み/閾値/論理時刻/行動/会計/乱数/保存を変更しない。Guest298/codec290非採用・旧履歴を保持。最終172・通常OS/Windows・全原条件未受入、正式完了追加0。追加r309-r03は既存親275/候補303各1所有engine、各44/0、同じ入力の6fixture全ordered typed bytes一致。goal index欠落/負/範囲外3件は変更compact helperへ入る前の拒否と全状態不変を確認。parents Array[int]/cells PackedVector3Arrayの2原変換形状は結果・全Runtime/Path状態・型・writable・cacheとの別identity・相互変更隔離を比較。ticks初回に同core/samegoalへ1回再入し、nested miss/outer hit、通知2回、結果一致と所有を比較した。supplied ticksと追加observerの有限synthetic条件でありRuntime通常適用・全Budget duration履歴・任意再入・壊れparent/cellの元errorを受入しない。r309の親library誤参照準備失敗とr02のpre-review参照名拒否はengine0で保持しr03修復。新build/libraryコピー/stageclone/旧全回帰0、strict/private・所有終了後project復元・source/default/D4/SUPPORT/共有親stage保護を独立有限受理。原17条件未受入、正式完了追加0。次は候補303は未採用・選定保留。親275と同じ6境界条件・有限同goal再入の互換証拠を保持する。境界ケースを際限なく追加せず、残る約1.185秒の同期停止について既存帰属証拠から支配処理と依存関係を1件選び、関連変更をまとめる。正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。", + "summary_after": "P23-02は着手中・次に閉じる1件。30パッケージ/88成果、正式9/着手19/予定60、部分点なし。制作r32、選定済み未採用作業r62、実装親r274/library275を保持。原17条件C01-C09/X1-X8は全て未受入、Windows実機C08/X8だけブロック。候補r302/library303の静的・host・局所304-r02の252/0と原S6/whole305の24/0・各15/0・全11,487,732 bytes原oracle同値・復元はr306証拠を保持。同期時間1213031→1185064us(約2.305547%短い)は隣接単発のみで安定利益・P95/D10/50msを認定せず、約1.185秒の同期停止が残る。追加r307-r02は同じ303の新1engineのみ、再build/library複製/stage clone0。67/0でcompact整数・index浮動小数・cellVector3の3変換条件を原nearest helperへ比較し、全ordered typed結果・全Runtime/Path状態・型と所有/変更分離を独立有限受理。ticks初回で実set_scriptしたcustom Pathは原script変数復元・全状態保持後、custom reconstruct/copy順序とtyped writable経路/cache分離をactualとoracle双方で比較。置換oracleは同じ置換後の原ready resolverであり、初期customを原nearestが受理する証拠ではない。oracle通知duration0は全PerformanceBudget履歴同値を主張しない。不正形状・一般再入の全域は未受入。以下r309-r03の列挙条件のみ有限検証。旧15+8/tag1028・wholeを重複実行しない。r307準備は日本語エスケープpath置換anchor不一致でengine0/input無し停止、失敗記録を保持してr02参照修復。1所有PID68102正常終了・strict/private・source/default/D4/SUPPORT/共有親stage/project復元を独立有限受理。r302/library303は未採用・選定保留。料金/重み/閾値/論理時刻/行動/会計/乱数/保存を変更しない。Guest298/codec290非採用・旧履歴を保持。最終172・通常OS/Windows・全原条件未受入、正式完了追加0。追加r309-r03は既存親275/候補303各1所有engine、各44/0、同じ入力の6fixture全ordered typed bytes一致。goal index欠落/負/範囲外3件は変更compact helperへ入る前の拒否と全状態不変を確認。parents Array[int]/cells PackedVector3Arrayの2原変換形状は結果・全Runtime/Path状態・型・writable・cacheとの別identity・相互変更隔離を比較。ticks初回に同core/samegoalへ1回再入し、nested miss/outer hit、通知2回、結果一致と所有を比較した。supplied ticksと追加observerの有限synthetic条件でありRuntime通常適用・全Budget duration履歴・任意再入・壊れparent/cellの元errorを受入しない。r309の親library誤参照準備失敗とr02のpre-review参照名拒否はengine0で保持しr03修復。新build/libraryコピー/stageclone/旧全回帰0、strict/private・所有終了後project復元・source/default/D4/SUPPORT/共有親stage保護を独立有限受理。原17条件未受入、正式完了追加0。追加r311-r02は現実装親274/library275の1回の帰属診断。隔離4script24wrapperの原本体全文保持、Budget257そのまま、既存library/config再利用。新build/librarycopy0、隔離APFS clone1・r02追加clone0、原r311のmetrics二重field参照をengine0で拒否保持し1式修復。18/0・PID84968 normal終了・strict/private/source/default/current310D4/SUPPORT/親隔離stage/project復元・全after64711487732bytes原oracle同値を独立有限受理。metrics3896bytes/281 partitions・宣言34行を全文照合。計測付きtick1268510us、AI979790us、projection50/656139us、extract50/95575us、rank50/124620us、evaluate5000/106351us、snapshot1/76851usは包含観測のみ。evaluateはrank内で加算せず、zeroはscript wrapper未到達だけでnative仕事/費用0ではない。純CPU/割合/原因/速度比較/50ms/P95/D10を認定しない。次作業Guest一括抽出/評価/順位付けの契約r312を固定し、新候補未実装・性能利益未証明・制作採用0。原17条件未受入・正式完了追加0。次は既存のnative投影を再利用し、Guest候補抽出・評価・順位付けの一括純処理を1関連変更として実装する。r298のGDScript正規化や小さなprice/key/copy変更を再起動しない。全原helper・拒否順・符号整数・型/コピー所有・callback/状態遷移契約を先に照合し、unsupported前無変更の元fallbackを保持する。原重み/閾値/時刻/価格/保存は変更しない。関連変更の正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。", + "formal_completed_added": 0, + "unit_accepted": false +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-r312/execution.json.gz b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-r312/execution.json.gz new file mode 100644 index 0000000..eb8a83c Binary files /dev/null and b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-r312/execution.json.gz differ diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-r312/plan_validation.json b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-r312/plan_validation.json new file mode 100644 index 0000000..32506da --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/current-native-residual-r311-r312/p23-02-progress-integration-r312/plan_validation.json @@ -0,0 +1,259 @@ +{ + "plan_date_jst": "2026-10-02", + "scope": "planning consistency and static baseline reconciliation; not game acceptance", + "passed": true, + "checks": [ + { + "name": "all30_unique_package_ids", + "passed": true + }, + { + "name": "unique_delivery_ids", + "passed": true + }, + { + "name": "delivery_scope_and_acceptance", + "passed": true + }, + { + "name": "valid_delivery_states", + "passed": true + }, + { + "name": "completed_delivery_requires_evidence", + "passed": true + }, + { + "name": "linked_delivery_evidence_exists", + "passed": true + }, + { + "name": "known_dependency_ids", + "passed": true + }, + { + "name": "dependency_graph_acyclic", + "passed": true + }, + { + "name": "all75_original_groups_once", + "passed": true + }, + { + "name": "feature71_schedule4", + "passed": true + }, + { + "name": "coverage_known_packages", + "passed": true + }, + { + "name": "coverage_known_delivery_ids", + "passed": true + }, + { + "name": "coverage_exact_package_deliveries", + "passed": true + }, + { + "name": "package_and_requirement_mapping_agree", + "passed": true + }, + { + "name": "source_lines_preserved", + "passed": true + }, + { + "name": "old_status_not_promoted", + "passed": true + }, + { + "name": "all10_facility_supplements", + "passed": true + }, + { + "name": "P09_owns10_supplements", + "passed": true + }, + { + "name": "all10_pending_decision_groups", + "passed": true + }, + { + "name": "known_decision_references", + "passed": true + }, + { + "name": "all5_confirmed_decisions", + "passed": true + }, + { + "name": "confirmed_decision_references_exist", + "passed": true + }, + { + "name": "valid_package_states", + "passed": true + }, + { + "name": "new_completed_packages_require_evidence", + "passed": true + }, + { + "name": "acceptance_conditions_not_claimed_results", + "passed": true + }, + { + "name": "initial_revision_history_preserved", + "passed": true + }, + { + "name": "progress_contract8_views", + "passed": true + }, + { + "name": "progress_no_partial_credit", + "passed": true + }, + { + "name": "frozen_denominator_has_register", + "passed": true + }, + { + "name": "known_denominator_matches_frozen_register", + "passed": true + }, + { + "name": "progress_register_pin_matches", + "passed": true + }, + { + "name": "evidence_index_register_pin_matches", + "passed": true + }, + { + "name": "progress_index_pin_matches", + "passed": true + }, + { + "name": "known_counts_match_freeze", + "passed": true + }, + { + "name": "unresolved_final_denominator_not_reported_as_total", + "passed": true + }, + { + "name": "static_leads_not_whole_atom_acceptance", + "passed": true + }, + { + "name": "declared_limited_views_whole_atoms_unreviewed", + "passed": true + }, + { + "name": "regression_evidence_pin_matches", + "passed": true + }, + { + "name": "regression_source_time_scope_preserved", + "passed": true + }, + { + "name": "P01_P03_not_whole_package_completed", + "passed": true + }, + { + "name": "progress_schedule_excluded", + "passed": true + }, + { + "name": "baseline_materials_exist", + "passed": true + }, + { + "name": "retained_regression155_12310", + "passed": true + }, + { + "name": "new_game_tests_not_claimed", + "passed": true + }, + { + "name": "all_package_headings", + "passed": true + }, + { + "name": "all_group_rows", + "passed": true + }, + { + "name": "all_delivery_ids_in_document", + "passed": true + }, + { + "name": "encyclopedia_and_hero_rival_scope", + "passed": true + }, + { + "name": "current_native_and_longplay_not_claimed", + "passed": true + } + ], + "failed_checks": [], + "packages": 30, + "remaining_delivery_units": 88, + "current_package_state_counts": { + "completed": 1, + "in_progress": 25, + "planned": 4 + }, + "initial_snapshot_checked": false, + "historical_source_bytes_compared": false, + "covered_original_groups": 75, + "missing_original_group_ids": [], + "facility_supplements": 10, + "atomic_denominator": null, + "known_condition_denominator": 1291, + "final_denominator_established": false, + "total_game_implementation_percent": null, + "total_game_acceptance_percent": null, + "new_game_execution_count": 0, + "document_sha256": { + "ASSETS_PLATFORM_AUDIT.md": "a3a4b8ca0fb39a9abf88692285d26aa879815e092352ba304ef2758e71da50bd", + "ATOMIC_REGISTER.md": "6070143b85b7c3b9b73d7c9768d88d2dae4d20407ad54a563cb6ffd74f2373ae", + "ATOMIC_SEMANTIC_REVIEW.md": "c156b1fb57c2b4a900f27a19049510f3e9616e723d5edb3417f50d733de5be48", + "IMPLEMENTATION_PLAN.md": "66be3f790b8ad802dbbf83ebe3374648d282df6b742d0962fbd7aff2507c9112", + "IMPORT_UNICODE_AUDIT.md": "88b2382bfbb3411fece8be7e6004ba21d8bf6a47e9d1f3cf573ea6638f79c12f", + "P09_VALUE_CONTRACTS.md": "c5abdc4543e54033b1fcfd0943cba266f664d8c10968965fd36ade40da488a25", + "PERFORMANCE_AUDIT.md": "c75e806acf825fc4a61f773a2cce7e71be335a1e25dbb15d98091097e8dc47c1", + "PROGRESS_INTEGRATION.md": "f74196dbd2a88ce131975d2bea02a339a9077316327d2caa3c0add64460ec31f", + "REVIEW.md": "6665259dfd53be86e113aee502818104dbdb5497da9c817790a24338a4689316", + "RUNTIME_SAVE_AUDIT.md": "e88ae014c6154c7aaade5835afc2113f79ee4a4ca5a015c28a4976f8ead68883", + "assets_platform_audit.json": "a9fabd989d03071c6af6dc828fff4f021e1ece9638857c54115997923af68d77", + "atomic_denominator_freeze.json": "467e960eb0fe47241edb217f5fa2044f2de304441daf9e51a7b0cb46ffa9194d", + "atomic_requirements.json": "44530bb929fcc8c68c06d0d94da66dd04b8db7680af731b5037cd44677502938", + "atomic_requirements_validation.json": "8dc300b099cfd90fda862f138b6a528d01e9c488a2c67fe07a00a92a70f99175", + "atomic_semantic_review.json": "e300b57f22ab86aa8029ce97231fcff0d7530fd4a9134988f113a46498ada7ad", + "baseline.json": "750bb3d313cc5e2ce0d4c79e563a995abd7a78f991dee1dd75c627877b02cd7b", + "build_atomic_requirements.py": "6d6ea9e4216372dbd0f9fed3f885a4481b21a3f539a26f64cf98a6830af984c5", + "build_facility_value_contracts.py": "35027b23ce75ce9e4e0cdfc5132fd2eb771ba9f598d97750d7ecf9ecb257f769", + "current_evidence_links.json": "db1837bcc8497201134297e312f4b266a297102285307ec3075d4e23632e26c2", + "decisions.json": "ad0673051b0fa601e525f05128e0b11e2dddd9d4bae6a3e0170bbf47da35efe9", + "facility_value_contracts.json": "447388ba03a29bfac25f2bcd068665aedbb07ba7641ce86f2db93d44f4c9f326", + "facility_value_contracts_validation.json": "bf490a9ca585c48fc318e76c4a069ef244827d828d46e6415399f7710590dd16", + "performance_audit.json": "0b630b15a392c3e0366f1362bfe4ddacb968f915f54549f82e4d6fa315384762", + "progress_contract.json": "ccbdfce8c8365d5c13f59531955708834cce45acd0e136561c95295dfdb5df77", + "progress_snapshot.json": "dca289ae7560af4fa5c2da981cd6c760f37930672cc032dfb35c88a49f65a7ea", + "progress_validator_guard_checks.json": "72ee513fcf1cad85c24bfd0a4b472f425f6acf117928ece0f6b41e29018da627", + "progress_validator_guard_checks.r01.json": "14c26adffa5a1938241db4912e50ea54b660641ee6fee2e412d467dce14d0519", + "requirement_coverage.json": "8b5788b22ae8f49ea7e5cf048a5f0d82b54f6f193623465e0b70496b5aadd09d", + "runtime_save_audit.json": "0c0c3724371c99bc9a2a80378b30d51fec7d3d9499da02e0d6dfeaf99f01de00", + "source_atomic_coverage.json": "2ab7b9e6a2536ef248d4f7ccd695bf75a082b47018aca7a5a1b6b706fe1907bc", + "validate_atomic_requirements.py": "5b2d0b7d72cb124830fbb0a12d1434e6db698148cc5263d33fd5bd7c2953a1e0", + "validate_facility_value_contracts.py": "91640e2a76cd6cc9186f7b85c0bf379b24b6cac0d48962815235ee628e7ae43e", + "validate_plan.py": "23678227d9b3c556f1bd903f4b5b3147c4a82ce5085e10055481026803451b80", + "validator_update_checks.json": "f997d0f3de2cea29550840b1d5cb23647d64f81329de46758551e2b6c8fecc27", + "work_packages.json": "13b5c5dd54cede6de8ff797659a6f931926bb5c0195a2a2a3727f616d65a122c" + } +} diff --git a/docs/plans/original-completion-2026-10-02/progress_snapshot.json b/docs/plans/original-completion-2026-10-02/progress_snapshot.json index dc1d29c..923645c 100644 --- a/docs/plans/original-completion-2026-10-02/progress_snapshot.json +++ b/docs/plans/original-completion-2026-10-02/progress_snapshot.json @@ -5327,7 +5327,7 @@ { "id": "C09", "conditions": [ - "Latest r309-r03 same-input parent275/candidate303 index3/convertible shape2/samegoal nested1 finite accepted; source/host/local304/S6/whole305/conversion-midcall307 retained. Whole single1185064us, stable gain/P95/D10/50ms/final172/arbitrary malformed errors/general reentry/normal OS/realtime x3/exit/small screen/Windows/original17 unaccepted.303 unadopted/unselected;274/library275 retained.", + "Current retained274/library275 r311-r02 instrumented1 tick1268510us/AI979790us, originalwhole647 equality and34 inclusive rows accepted only. Guest bulk contract312 selected as work, not implemented; previous303 boundary/local/whole evidence retained and303 unadopted/unselected. PureCPU/causality/gain/P95/D10/50ms/final172/general malformed/reentry/normal OS/x3/exit/small screen/Windows/original17 remain unaccepted.", "原詳細・旧版条件はhistorical fieldsと旧matrixへ保持。" ], "historical_conditions": [ @@ -5378,7 +5378,7 @@ { "id": "cross-cutting-final-candidate", "conditions": [ - "原17条件を同一最終版で受入。最新版付き有限証拠と未達はr310 matrixへ保持。" + "原17条件を同一最終版で受入。最新版付き有限証拠と未達はr312 matrixへ保持。" ], "historical_conditions": [ "P23-02は着手中・次に閉じる1件。30パッケージ/88成果、正式9/着手19/予定60、部分点なし。制作r32と選定済み未採用作業r62を保持。原17条件C01-C09/X1-X8はすべて未受入、Windows実機を要するC08/X8だけブロック。Ctrl保持wheel/左保持dragは延期・未達・免除なし。最新局所/whole647検証済み実験候補はr274/library275(局所r278-r04、原S6影響/全保存同値r281を有限受理)で、単一同期1139564usは50ms未達・安定利益/P95/D10未証明。未変更版の性能反復と全回帰を増やさない。r272-r02はOS Call graphが空で診断未受入として履歴保持。r272-r03は実sampler開始banner後にreleaseし16threadの部分窓を採取、18/0・正常終了・全11,487,732bytes原oracle同値・source/default/stage/SUPPORT保護/復元を有限受理。r273-r04は既存object/SDKから別link1回、採取版と全14sectionsの配置/内容一致を独立確認し415native frameを88関数へ唯一範囲対応。重複inclusiveの行カウントからCPU比率・恒常原因・速度利益を推定しない。新候補r274/library275は原Runtimeの純粋なNeed relief/categoryタグ判定2メソッドだけを元call位置で直接翻訳、六key挿入順・全値/分岐優先を保持、毎回fresh Dictionary・memoなし。各位置のbuiltin/typed guardと元dynamic fallbackを静的受理し、SDK再コンパイル0・bridge compile1/link1・arm64 host build/strict/owned/保護を有限受理。r278-r04は同一library275をactual loadし、原15境界・タグ1028入力・実callback script変更2経路の局所比較を独立有限受理。全ordered typed候補・各入力の記録Path効果・独立所有を比較し、全Runtimeは原15境界とタグ空/全のみ比較。ticksはstairs150で実切替、pricingは元料金呼出中に実切替し元helper位置のdynamic fallback/countを確認。7358/0・strict0・所有PID16599正常終了・private/制作source/default/共有と親stage保護。r278早期継承拒否、r02 callback未到達の4失敗/SCRIPT ERROR/欠測、r03期待件数拒否は履歴保持。r280は元provider9関数の呼出を監査し、exact builtin・wellformed typed・同期処理内のfallback後context再利用を限定静的支持。並行変更/invalidObject/free/samepath偽装/一般再入所有は未認定。r281は同一274/library275で原S6影響24/0、直前265/266と同cold646/paused/speed1/同Budget257/原Pathのwhole各15/0・全11,487,732bytes原oracle同値・3所有PID正常終了・strict/private/全入力保護復元を独立有限受理。同期時間は直前1169815→新1139564usの隣接単発観測のみで、50ms未達・安定利益/P95/D10未証明。全172・通常OS/Windows・性能・採用・単位完成は未受入、未選定・未採用。料金/重み/閾値/論理時刻/通知順/行動/会計/乱数/保存は変更しない。旧実験の詳細は既存版付き証拠・過去snapshot・今回before/previous_summaryへ保持。正式完了追加0。次はr274/library275の局所・原S6影響・全保存同値証拠を保持し、代表同期処理の50ms未達を解消する必要な関連修正を1件選ぶ。関連変更を固めた同一最終版で必須全172・P95/D10・50ms・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を満たす。人のCtrl保持ホイールと左ボタン保持ドラッグは後回し・免除なし。" @@ -5401,7 +5401,7 @@ "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-01-layer-root-review-r02/related-regression-reuse.json", "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-01-layer-root-review-r02/representative-performance-reuse.json" ], - "progress_evidence": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json", + "progress_evidence": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r312.json", "target_candidate_stage": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-index-lookup-candidate-r62/stage", "production_adopted": true, "working_candidate_adopted": false, @@ -5463,10 +5463,11 @@ "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json", "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-actual-independent-review-r305.json", "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-fallback-actual-independent-review-r307-r02.json", - "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-boundary-actual-independent-review-r309-r03.json" + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-boundary-actual-independent-review-r309-r03.json", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json" ], "unselected_trial_accepted_as_unit": false, - "acceptance_matrix_reference": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json", + "acceptance_matrix_reference": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r312.json", "next_implementation_parent_stage": null, "historical_native_trial_stage_r276": { "unselected_trial_candidate_stage": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-local-names-candidate-r239/stage", @@ -9211,6 +9212,45 @@ "candidate_selected": false, "formal_completed_added": 0, "unit_accepted": false, + "whole_goal_accepted": false, + "superseded_by": "p23_02_current_retained_native_diagnostic_integration_r312" + }, + "p23_02_current_retained_native_diagnostic_integration_r312": { + "previous_summary": "P23-02は着手中・次に閉じる1件。30パッケージ/88成果、正式9/着手19/予定60、部分点なし。制作r32、選定済み未採用作業r62、実装親r274/library275を保持。原17条件C01-C09/X1-X8は全て未受入、Windows実機C08/X8だけブロック。候補r302/library303の静的・host・局所304-r02の252/0と原S6/whole305の24/0・各15/0・全11,487,732 bytes原oracle同値・復元はr306証拠を保持。同期時間1213031→1185064us(約2.305547%短い)は隣接単発のみで安定利益・P95/D10/50msを認定せず、約1.185秒の同期停止が残る。追加r307-r02は同じ303の新1engineのみ、再build/library複製/stage clone0。67/0でcompact整数・index浮動小数・cellVector3の3変換条件を原nearest helperへ比較し、全ordered typed結果・全Runtime/Path状態・型と所有/変更分離を独立有限受理。ticks初回で実set_scriptしたcustom Pathは原script変数復元・全状態保持後、custom reconstruct/copy順序とtyped writable経路/cache分離をactualとoracle双方で比較。置換oracleは同じ置換後の原ready resolverであり、初期customを原nearestが受理する証拠ではない。oracle通知duration0は全PerformanceBudget履歴同値を主張しない。不正形状・一般再入の全域は未受入。以下r309-r03の列挙条件のみ有限検証。旧15+8/tag1028・wholeを重複実行しない。r307準備は日本語エスケープpath置換anchor不一致でengine0/input無し停止、失敗記録を保持してr02参照修復。1所有PID68102正常終了・strict/private・source/default/D4/SUPPORT/共有親stage/project復元を独立有限受理。r302/library303は未採用・選定保留。料金/重み/閾値/論理時刻/行動/会計/乱数/保存を変更しない。Guest298/codec290非採用・旧履歴を保持。最終172・通常OS/Windows・全原条件未受入、正式完了追加0。追加r309-r03は既存親275/候補303各1所有engine、各44/0、同じ入力の6fixture全ordered typed bytes一致。goal index欠落/負/範囲外3件は変更compact helperへ入る前の拒否と全状態不変を確認。parents Array[int]/cells PackedVector3Arrayの2原変換形状は結果・全Runtime/Path状態・型・writable・cacheとの別identity・相互変更隔離を比較。ticks初回に同core/samegoalへ1回再入し、nested miss/outer hit、通知2回、結果一致と所有を比較した。supplied ticksと追加observerの有限synthetic条件でありRuntime通常適用・全Budget duration履歴・任意再入・壊れparent/cellの元errorを受入しない。r309の親library誤参照準備失敗とr02のpre-review参照名拒否はengine0で保持しr03修復。新build/libraryコピー/stageclone/旧全回帰0、strict/private・所有終了後project復元・source/default/D4/SUPPORT/共有親stage保護を独立有限受理。原17条件未受入、正式完了追加0。次は候補303は未採用・選定保留。親275と同じ6境界条件・有限同goal再入の互換証拠を保持する。境界ケースを際限なく追加せず、残る約1.185秒の同期停止について既存帰属証拠から支配処理と依存関係を1件選び、関連変更をまとめる。正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。", + "proofs": [ + { + "review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json", + "bytes": 39941, + "sha256": "a38dae71afd2b5db0591ecca16b65abc3158f080460e9c0b09a265f339967d09" + }, + "root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json", + "bytes": 22991, + "sha256": "5373708a07d92323146615deb8663fa9b6e101e28df9821c4e5129312f63b57f" + } + } + ], + "acceptance_matrix": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r312.json", + "bytes": 73046, + "sha256": "f1f675e37f3782c2fadd1cc398528a2f517ecb69d386bcbfeae70f07b9801201" + }, + "next_action": "既存のnative投影を再利用し、Guest候補抽出・評価・順位付けの一括純処理を1関連変更として実装する。r298のGDScript正規化や小さなprice/key/copy変更を再起動しない。全原helper・拒否順・符号整数・型/コピー所有・callback/状態遷移契約を先に照合し、unsupported前無変更の元fallbackを保持する。原重み/閾値/時刻/価格/保存は変更しない。関連変更の正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。", + "finite_current_native_diagnostic_accepted": true, + "next_work_contract": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-guest-bulk-work-contract-r312.json", + "bytes": 12808, + "sha256": "b87217f716422e0ed845bc9f7d37d1b06656c79d85a5c1f603ffa704172d1c0c" + }, + "next_candidate_implemented": false, + "arbitrary_malformed_or_general_reentry_accepted": false, + "stable_gain_supported": false, + "stall_budget_met": false, + "candidate_adopted": false, + "candidate_selected": false, + "formal_completed_added": 0, + "unit_accepted": false, "whole_goal_accepted": false } } diff --git a/docs/plans/original-completion-2026-10-02/work_packages.json b/docs/plans/original-completion-2026-10-02/work_packages.json index 2f4e358..579e783 100644 --- a/docs/plans/original-completion-2026-10-02/work_packages.json +++ b/docs/plans/original-completion-2026-10-02/work_packages.json @@ -9405,7 +9405,7 @@ }, "legacy_state": "planned", "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", - "current_summary": "P23-02は着手中・次に閉じる1件。30パッケージ/88成果、正式9/着手19/予定60、部分点なし。制作r32、選定済み未採用作業r62、実装親r274/library275を保持。原17条件C01-C09/X1-X8は全て未受入、Windows実機C08/X8だけブロック。候補r302/library303の静的・host・局所304-r02の252/0と原S6/whole305の24/0・各15/0・全11,487,732 bytes原oracle同値・復元はr306証拠を保持。同期時間1213031→1185064us(約2.305547%短い)は隣接単発のみで安定利益・P95/D10/50msを認定せず、約1.185秒の同期停止が残る。追加r307-r02は同じ303の新1engineのみ、再build/library複製/stage clone0。67/0でcompact整数・index浮動小数・cellVector3の3変換条件を原nearest helperへ比較し、全ordered typed結果・全Runtime/Path状態・型と所有/変更分離を独立有限受理。ticks初回で実set_scriptしたcustom Pathは原script変数復元・全状態保持後、custom reconstruct/copy順序とtyped writable経路/cache分離をactualとoracle双方で比較。置換oracleは同じ置換後の原ready resolverであり、初期customを原nearestが受理する証拠ではない。oracle通知duration0は全PerformanceBudget履歴同値を主張しない。不正形状・一般再入の全域は未受入。以下r309-r03の列挙条件のみ有限検証。旧15+8/tag1028・wholeを重複実行しない。r307準備は日本語エスケープpath置換anchor不一致でengine0/input無し停止、失敗記録を保持してr02参照修復。1所有PID68102正常終了・strict/private・source/default/D4/SUPPORT/共有親stage/project復元を独立有限受理。r302/library303は未採用・選定保留。料金/重み/閾値/論理時刻/行動/会計/乱数/保存を変更しない。Guest298/codec290非採用・旧履歴を保持。最終172・通常OS/Windows・全原条件未受入、正式完了追加0。追加r309-r03は既存親275/候補303各1所有engine、各44/0、同じ入力の6fixture全ordered typed bytes一致。goal index欠落/負/範囲外3件は変更compact helperへ入る前の拒否と全状態不変を確認。parents Array[int]/cells PackedVector3Arrayの2原変換形状は結果・全Runtime/Path状態・型・writable・cacheとの別identity・相互変更隔離を比較。ticks初回に同core/samegoalへ1回再入し、nested miss/outer hit、通知2回、結果一致と所有を比較した。supplied ticksと追加observerの有限synthetic条件でありRuntime通常適用・全Budget duration履歴・任意再入・壊れparent/cellの元errorを受入しない。r309の親library誤参照準備失敗とr02のpre-review参照名拒否はengine0で保持しr03修復。新build/libraryコピー/stageclone/旧全回帰0、strict/private・所有終了後project復元・source/default/D4/SUPPORT/共有親stage保護を独立有限受理。原17条件未受入、正式完了追加0。次は候補303は未採用・選定保留。親275と同じ6境界条件・有限同goal再入の互換証拠を保持する。境界ケースを際限なく追加せず、残る約1.185秒の同期停止について既存帰属証拠から支配処理と依存関係を1件選び、関連変更をまとめる。正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。", + "current_summary": "P23-02は着手中・次に閉じる1件。30パッケージ/88成果、正式9/着手19/予定60、部分点なし。制作r32、選定済み未採用作業r62、実装親r274/library275を保持。原17条件C01-C09/X1-X8は全て未受入、Windows実機C08/X8だけブロック。候補r302/library303の静的・host・局所304-r02の252/0と原S6/whole305の24/0・各15/0・全11,487,732 bytes原oracle同値・復元はr306証拠を保持。同期時間1213031→1185064us(約2.305547%短い)は隣接単発のみで安定利益・P95/D10/50msを認定せず、約1.185秒の同期停止が残る。追加r307-r02は同じ303の新1engineのみ、再build/library複製/stage clone0。67/0でcompact整数・index浮動小数・cellVector3の3変換条件を原nearest helperへ比較し、全ordered typed結果・全Runtime/Path状態・型と所有/変更分離を独立有限受理。ticks初回で実set_scriptしたcustom Pathは原script変数復元・全状態保持後、custom reconstruct/copy順序とtyped writable経路/cache分離をactualとoracle双方で比較。置換oracleは同じ置換後の原ready resolverであり、初期customを原nearestが受理する証拠ではない。oracle通知duration0は全PerformanceBudget履歴同値を主張しない。不正形状・一般再入の全域は未受入。以下r309-r03の列挙条件のみ有限検証。旧15+8/tag1028・wholeを重複実行しない。r307準備は日本語エスケープpath置換anchor不一致でengine0/input無し停止、失敗記録を保持してr02参照修復。1所有PID68102正常終了・strict/private・source/default/D4/SUPPORT/共有親stage/project復元を独立有限受理。r302/library303は未採用・選定保留。料金/重み/閾値/論理時刻/行動/会計/乱数/保存を変更しない。Guest298/codec290非採用・旧履歴を保持。最終172・通常OS/Windows・全原条件未受入、正式完了追加0。追加r309-r03は既存親275/候補303各1所有engine、各44/0、同じ入力の6fixture全ordered typed bytes一致。goal index欠落/負/範囲外3件は変更compact helperへ入る前の拒否と全状態不変を確認。parents Array[int]/cells PackedVector3Arrayの2原変換形状は結果・全Runtime/Path状態・型・writable・cacheとの別identity・相互変更隔離を比較。ticks初回に同core/samegoalへ1回再入し、nested miss/outer hit、通知2回、結果一致と所有を比較した。supplied ticksと追加observerの有限synthetic条件でありRuntime通常適用・全Budget duration履歴・任意再入・壊れparent/cellの元errorを受入しない。r309の親library誤参照準備失敗とr02のpre-review参照名拒否はengine0で保持しr03修復。新build/libraryコピー/stageclone/旧全回帰0、strict/private・所有終了後project復元・source/default/D4/SUPPORT/共有親stage保護を独立有限受理。原17条件未受入、正式完了追加0。追加r311-r02は現実装親274/library275の1回の帰属診断。隔離4script24wrapperの原本体全文保持、Budget257そのまま、既存library/config再利用。新build/librarycopy0、隔離APFS clone1・r02追加clone0、原r311のmetrics二重field参照をengine0で拒否保持し1式修復。18/0・PID84968 normal終了・strict/private/source/default/current310D4/SUPPORT/親隔離stage/project復元・全after64711487732bytes原oracle同値を独立有限受理。metrics3896bytes/281 partitions・宣言34行を全文照合。計測付きtick1268510us、AI979790us、projection50/656139us、extract50/95575us、rank50/124620us、evaluate5000/106351us、snapshot1/76851usは包含観測のみ。evaluateはrank内で加算せず、zeroはscript wrapper未到達だけでnative仕事/費用0ではない。純CPU/割合/原因/速度比較/50ms/P95/D10を認定しない。次作業Guest一括抽出/評価/順位付けの契約r312を固定し、新候補未実装・性能利益未証明・制作採用0。原17条件未受入・正式完了追加0。次は既存のnative投影を再利用し、Guest候補抽出・評価・順位付けの一括純処理を1関連変更として実装する。r298のGDScript正規化や小さなprice/key/copy変更を再起動しない。全原helper・拒否順・符号整数・型/コピー所有・callback/状態遷移契約を先に照合し、unsupported前無変更の元fallbackを保持する。原重み/閾値/時刻/価格/保存は変更しない。関連変更の正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。", "remaining_deliverables": [ { "id": "P23-01", @@ -15180,9 +15180,44 @@ "scope": "Finite six boundary/reentry fixtures per receipt only; no general performance/final172/OS/Windows/adoption/unit acceptance", "linked_at_jst": "2026-10-12T10:09:52.328575+09:00", "current_game_acceptance_inferred": false + }, + { + "path": "artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-actual-independent-review-r311-r02.json", + "sha256_at_integration": "a38dae71afd2b5db0591ecca16b65abc3158f080460e9c0b09a265f339967d09", + "scope": "One instrumented retained275 diagnostic and next Guest bulk work contract only; no general performance/final172/OS/Windows/adoption/unit acceptance", + "linked_at_jst": "2026-10-12T10:34:34.806412+09:00", + "current_game_acceptance_inferred": false + }, + { + "path": "artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/actual-root-verification.json", + "sha256_at_integration": "5373708a07d92323146615deb8663fa9b6e101e28df9821c4e5129312f63b57f", + "scope": "One instrumented retained275 diagnostic and next Guest bulk work contract only; no general performance/final172/OS/Windows/adoption/unit acceptance", + "linked_at_jst": "2026-10-12T10:34:34.806412+09:00", + "current_game_acceptance_inferred": false + }, + { + "path": "artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r312.json", + "sha256_at_integration": "f1f675e37f3782c2fadd1cc398528a2f517ecb69d386bcbfeae70f07b9801201", + "scope": "One instrumented retained275 diagnostic and next Guest bulk work contract only; no general performance/final172/OS/Windows/adoption/unit acceptance", + "linked_at_jst": "2026-10-12T10:34:34.806412+09:00", + "current_game_acceptance_inferred": false + }, + { + "path": "artifacts/original-completion-2026-10-02/p23-02-guest-bulk-work-contract-r312.json", + "sha256_at_integration": "b87217f716422e0ed845bc9f7d37d1b06656c79d85a5c1f603ffa704172d1c0c", + "scope": "One instrumented retained275 diagnostic and next Guest bulk work contract only; no general performance/final172/OS/Windows/adoption/unit acceptance", + "linked_at_jst": "2026-10-12T10:34:34.806412+09:00", + "current_game_acceptance_inferred": false + }, + { + "path": "artifacts/original-completion-2026-10-02/p23-02-current-residual-diagnostic-r311-r02/metrics-root-decoded.json", + "sha256_at_integration": "54e2e7aa9c6304b8d1ead5853eb78eafaad4cdeffb2dd3e4784643992a4d319f", + "scope": "One instrumented retained275 diagnostic and next Guest bulk work contract only; no general performance/final172/OS/Windows/adoption/unit acceptance", + "linked_at_jst": "2026-10-12T10:34:34.806412+09:00", + "current_game_acceptance_inferred": false } ], - "progress_summary": "P23-02は着手中・次に閉じる1件。30パッケージ/88成果、正式9/着手19/予定60、部分点なし。制作r32、選定済み未採用作業r62、実装親r274/library275を保持。原17条件C01-C09/X1-X8は全て未受入、Windows実機C08/X8だけブロック。候補r302/library303の静的・host・局所304-r02の252/0と原S6/whole305の24/0・各15/0・全11,487,732 bytes原oracle同値・復元はr306証拠を保持。同期時間1213031→1185064us(約2.305547%短い)は隣接単発のみで安定利益・P95/D10/50msを認定せず、約1.185秒の同期停止が残る。追加r307-r02は同じ303の新1engineのみ、再build/library複製/stage clone0。67/0でcompact整数・index浮動小数・cellVector3の3変換条件を原nearest helperへ比較し、全ordered typed結果・全Runtime/Path状態・型と所有/変更分離を独立有限受理。ticks初回で実set_scriptしたcustom Pathは原script変数復元・全状態保持後、custom reconstruct/copy順序とtyped writable経路/cache分離をactualとoracle双方で比較。置換oracleは同じ置換後の原ready resolverであり、初期customを原nearestが受理する証拠ではない。oracle通知duration0は全PerformanceBudget履歴同値を主張しない。不正形状・一般再入の全域は未受入。以下r309-r03の列挙条件のみ有限検証。旧15+8/tag1028・wholeを重複実行しない。r307準備は日本語エスケープpath置換anchor不一致でengine0/input無し停止、失敗記録を保持してr02参照修復。1所有PID68102正常終了・strict/private・source/default/D4/SUPPORT/共有親stage/project復元を独立有限受理。r302/library303は未採用・選定保留。料金/重み/閾値/論理時刻/行動/会計/乱数/保存を変更しない。Guest298/codec290非採用・旧履歴を保持。最終172・通常OS/Windows・全原条件未受入、正式完了追加0。追加r309-r03は既存親275/候補303各1所有engine、各44/0、同じ入力の6fixture全ordered typed bytes一致。goal index欠落/負/範囲外3件は変更compact helperへ入る前の拒否と全状態不変を確認。parents Array[int]/cells PackedVector3Arrayの2原変換形状は結果・全Runtime/Path状態・型・writable・cacheとの別identity・相互変更隔離を比較。ticks初回に同core/samegoalへ1回再入し、nested miss/outer hit、通知2回、結果一致と所有を比較した。supplied ticksと追加observerの有限synthetic条件でありRuntime通常適用・全Budget duration履歴・任意再入・壊れparent/cellの元errorを受入しない。r309の親library誤参照準備失敗とr02のpre-review参照名拒否はengine0で保持しr03修復。新build/libraryコピー/stageclone/旧全回帰0、strict/private・所有終了後project復元・source/default/D4/SUPPORT/共有親stage保護を独立有限受理。原17条件未受入、正式完了追加0。次は候補303は未採用・選定保留。親275と同じ6境界条件・有限同goal再入の互換証拠を保持する。境界ケースを際限なく追加せず、残る約1.185秒の同期停止について既存帰属証拠から支配処理と依存関係を1件選び、関連変更をまとめる。正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。", + "progress_summary": "P23-02は着手中・次に閉じる1件。30パッケージ/88成果、正式9/着手19/予定60、部分点なし。制作r32、選定済み未採用作業r62、実装親r274/library275を保持。原17条件C01-C09/X1-X8は全て未受入、Windows実機C08/X8だけブロック。候補r302/library303の静的・host・局所304-r02の252/0と原S6/whole305の24/0・各15/0・全11,487,732 bytes原oracle同値・復元はr306証拠を保持。同期時間1213031→1185064us(約2.305547%短い)は隣接単発のみで安定利益・P95/D10/50msを認定せず、約1.185秒の同期停止が残る。追加r307-r02は同じ303の新1engineのみ、再build/library複製/stage clone0。67/0でcompact整数・index浮動小数・cellVector3の3変換条件を原nearest helperへ比較し、全ordered typed結果・全Runtime/Path状態・型と所有/変更分離を独立有限受理。ticks初回で実set_scriptしたcustom Pathは原script変数復元・全状態保持後、custom reconstruct/copy順序とtyped writable経路/cache分離をactualとoracle双方で比較。置換oracleは同じ置換後の原ready resolverであり、初期customを原nearestが受理する証拠ではない。oracle通知duration0は全PerformanceBudget履歴同値を主張しない。不正形状・一般再入の全域は未受入。以下r309-r03の列挙条件のみ有限検証。旧15+8/tag1028・wholeを重複実行しない。r307準備は日本語エスケープpath置換anchor不一致でengine0/input無し停止、失敗記録を保持してr02参照修復。1所有PID68102正常終了・strict/private・source/default/D4/SUPPORT/共有親stage/project復元を独立有限受理。r302/library303は未採用・選定保留。料金/重み/閾値/論理時刻/行動/会計/乱数/保存を変更しない。Guest298/codec290非採用・旧履歴を保持。最終172・通常OS/Windows・全原条件未受入、正式完了追加0。追加r309-r03は既存親275/候補303各1所有engine、各44/0、同じ入力の6fixture全ordered typed bytes一致。goal index欠落/負/範囲外3件は変更compact helperへ入る前の拒否と全状態不変を確認。parents Array[int]/cells PackedVector3Arrayの2原変換形状は結果・全Runtime/Path状態・型・writable・cacheとの別identity・相互変更隔離を比較。ticks初回に同core/samegoalへ1回再入し、nested miss/outer hit、通知2回、結果一致と所有を比較した。supplied ticksと追加observerの有限synthetic条件でありRuntime通常適用・全Budget duration履歴・任意再入・壊れparent/cellの元errorを受入しない。r309の親library誤参照準備失敗とr02のpre-review参照名拒否はengine0で保持しr03修復。新build/libraryコピー/stageclone/旧全回帰0、strict/private・所有終了後project復元・source/default/D4/SUPPORT/共有親stage保護を独立有限受理。原17条件未受入、正式完了追加0。追加r311-r02は現実装親274/library275の1回の帰属診断。隔離4script24wrapperの原本体全文保持、Budget257そのまま、既存library/config再利用。新build/librarycopy0、隔離APFS clone1・r02追加clone0、原r311のmetrics二重field参照をengine0で拒否保持し1式修復。18/0・PID84968 normal終了・strict/private/source/default/current310D4/SUPPORT/親隔離stage/project復元・全after64711487732bytes原oracle同値を独立有限受理。metrics3896bytes/281 partitions・宣言34行を全文照合。計測付きtick1268510us、AI979790us、projection50/656139us、extract50/95575us、rank50/124620us、evaluate5000/106351us、snapshot1/76851usは包含観測のみ。evaluateはrank内で加算せず、zeroはscript wrapper未到達だけでnative仕事/費用0ではない。純CPU/割合/原因/速度比較/50ms/P95/D10を認定しない。次作業Guest一括抽出/評価/順位付けの契約r312を固定し、新候補未実装・性能利益未証明・制作採用0。原17条件未受入・正式完了追加0。次は既存のnative投影を再利用し、Guest候補抽出・評価・順位付けの一括純処理を1関連変更として実装する。r298のGDScript正規化や小さなprice/key/copy変更を再起動しない。全原helper・拒否順・符号整数・型/コピー所有・callback/状態遷移契約を先に照合し、unsupported前無変更の元fallbackを保持する。原重み/閾値/時刻/価格/保存は変更しない。関連変更の正確な最終版で必須全172・50ms/P95/D10・通常OS/x3/終了/小画面・同一Windows配布版実機と原17条件を受入する。手動Ctrl保持wheel/左保持dragは延期・未達・免除なし。", "remaining_gaps": [ { "id": "C01", @@ -15243,7 +15278,7 @@ { "id": "C09", "conditions": [ - "Latest r309-r03 same-input parent275/candidate303 index3/convertible shape2/samegoal nested1 finite accepted; source/host/local304/S6/whole305/conversion-midcall307 retained. Whole single1185064us, stable gain/P95/D10/50ms/final172/arbitrary malformed errors/general reentry/normal OS/realtime x3/exit/small screen/Windows/original17 unaccepted.303 unadopted/unselected;274/library275 retained.", + "Current retained274/library275 r311-r02 instrumented1 tick1268510us/AI979790us, originalwhole647 equality and34 inclusive rows accepted only. Guest bulk contract312 selected as work, not implemented; previous303 boundary/local/whole evidence retained and303 unadopted/unselected. PureCPU/causality/gain/P95/D10/50ms/final172/general malformed/reentry/normal OS/x3/exit/small screen/Windows/original17 remain unaccepted.", "原詳細・旧版条件はhistorical fieldsと旧matrixへ保持。" ], "historical_conditions_before_r230": [ @@ -15294,12 +15329,12 @@ { "id": "cross-cutting-final-candidate", "conditions": [ - "原17条件を同一最終版で受入。最新版付き有限証拠と未達はr310 matrixへ保持。" + "原17条件を同一最終版で受入。最新版付き有限証拠と未達はr312 matrixへ保持。" ] } ], - "updated_at_jst": "2026-10-12T10:09:52.328575+09:00", - "acceptance_matrix_reference": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r310.json" + "updated_at_jst": "2026-10-12T10:34:34.806412+09:00", + "acceptance_matrix_reference": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r312.json" }, { "id": "P23-03", @@ -15382,7 +15417,7 @@ ], "cross_cutting_acceptance_scope": "Completion requirements only, not achieved results. Apply each to relevant slices; non-applicable views require a recorded reason.", "initial_revision_state": "in_progress", - "updated_at_jst": "2026-10-12T10:09:52.328575+09:00" + "updated_at_jst": "2026-10-12T10:34:34.806412+09:00" }, { "id": "P24",