P08-03: 配置の通常操作受入
This commit is contained in:
@@ -57,7 +57,7 @@ and saves outside private profiles. The mock collector supplies a controlled
|
||||
disk-space input; the production disk-admission gate is unchanged.
|
||||
Current native/OS/full regression/review/integration remain pending.
|
||||
|
||||
## r02 whole-model operation repair (current candidate)
|
||||
## r02 whole-model operation repair (retained earlier submission)
|
||||
|
||||
The retained submitted HEAD is `c2b59f04f94dda0a61991ec3bb7f0e946196f995`.
|
||||
`NATIVE_R02_READER_OPERATION_DELTA.json` and `native-r02-reader-stderr.log`
|
||||
@@ -134,3 +134,35 @@ No reused P08-02 PASS is claimed for changed sources. P08-01 and the whole
|
||||
P08 package remain open. Windows same-distribution/device evidence remains
|
||||
open; Mac/Linux results cannot substitute for it. No outside-scope service
|
||||
defect or required permission change has been demonstrated by this worker.
|
||||
|
||||
## r04 initial OS load oracle repair (current submitted candidate)
|
||||
|
||||
The supplied OS_R04_INITIAL_LOAD_ORACLE_FINDING.json and
|
||||
os-r04-writer-engine.log identify the bootstrap-only simple equality failure.
|
||||
The registered build contains 2153 files; its complete read-only inventory is
|
||||
recorded in registered-r04-evidence-manifest.json. Historical raw/PASS evidence
|
||||
is unchanged and no changed-source acceptance is inherited.
|
||||
|
||||
Passive setup now uses the existing verify_operation oracle with bootstrap-
|
||||
prefix. Complete typed JSON and raw Variant formal, checkpoint (postload),
|
||||
returned Dictionary, expected-operation and operation-actual files, plus a
|
||||
separate comparison JSON, remain distinct from writer/reader final proofs.
|
||||
The same source-defined notification logic checks all state, previous events,
|
||||
next event ID/counter and every payload field; no event masking or omissions.
|
||||
The checker binds bootstrap formal/returned models to the recorded read-only
|
||||
inspection and first Runtime return, reconstructs the expectation and checks
|
||||
whole typed state and raw expected/actual identity.
|
||||
|
||||
Static inspection within the allowed fixture/recorder scope found no other
|
||||
postload-versus-formal simple equality oracle. Remaining exact comparisons
|
||||
check presave/formal identity or read-only preservation and are intentional.
|
||||
Seven added semantic controls cover missing/extra notifications, counter,
|
||||
payload and unknown-field drift, missing raw and overwritten bootstrap raw;
|
||||
all 49 earlier tests remain. Final actual results and exact source/input
|
||||
hashes are recorded in local-validation.json and local-source-manifest.json.
|
||||
Only pure Python validation uses the ordinary 900-second subprocess timeout.
|
||||
|
||||
Root native/OS collection for this candidate, final full regression after
|
||||
freeze, separate Opus review and integration/current final verification remain
|
||||
open. All five conditions and the 30/88 denominator are unchanged. No Runtime,
|
||||
UI, SaveService, collector, specification or historical evidence edits.
|
||||
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"candidate": "8e3d79d5f2068fbe71c0ef7252540548d75b3d1e",
|
||||
"native_phase_proof": "complete PASS reused with source/input SHA match, headless repeat0",
|
||||
"OS_writer_pid": 75569,
|
||||
"actual_OS_actions": [
|
||||
"normal manual load",
|
||||
"open normal build palette",
|
||||
"horizontal palette reveal"
|
||||
],
|
||||
"completed_acks": [
|
||||
1,
|
||||
2,
|
||||
3
|
||||
],
|
||||
"active_request_at_stop": 4,
|
||||
"native_diagnostic": "OS initial formal model exact",
|
||||
"source": "passive_placement.gd setup line78 still compares postload live snapshot directly to saved snapshot; ordinary read adds SAVE_RECOVERY_LOADED",
|
||||
"required_scope": "reuse existing placement.gd verify_operation for initial normal OS load; keep full saved/postload states and exact event/counter/payload checks. No Runtime/UI/collector/spec edits or event masking.",
|
||||
"all_owned_ended": true,
|
||||
"cleanup_errors": [],
|
||||
"guard_errors": [],
|
||||
"acceptance": false,
|
||||
"unit_credit": 0,
|
||||
"updated_utc": "2026-10-13T19:44:52.545919+00:00"
|
||||
}
|
||||
+5327
File diff suppressed because it is too large
Load Diff
+37
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"task_id": "P08-03",
|
||||
"started_at": "2026-10-13T19:19:51.362993+00:00",
|
||||
"ended_at": "2026-10-13T19:20:39.117228+00:00",
|
||||
"syntax": {
|
||||
"method": "compile(source, filename, exec); no pyc",
|
||||
"files": {
|
||||
"tools/run_p08_normal_placement.py": "191831b4f684bdd7e99b3be6038c15a6830f544d17c941869b1c2a8fbe4a2aa3",
|
||||
"tools/check_p08_normal_placement_evidence.py": "5baea283760e04f23abefcf576f9a3e8230b96ed30d82569528dcd211a6032cf",
|
||||
"tools/test_p08_normal_placement_evidence.py": "ebf6c0ef2c32dc8fac61d570a7fea99c1ac2499b92399db32afec26147b9d84c",
|
||||
"tests/fixtures/p08-03/checker_fixture.py": "0d12e09e5342a016bc9e61c056b07357e761c29f9d82fbf941ce524f51ff131e"
|
||||
},
|
||||
"passed": true
|
||||
},
|
||||
"checker_tests": {
|
||||
"argv": [
|
||||
"/Applications/Xcode.app/Contents/Developer/usr/bin/python3",
|
||||
"-B",
|
||||
"tools/test_p08_normal_placement_evidence.py"
|
||||
],
|
||||
"exit_code": 0,
|
||||
"log": "repair-r02-local-checker-tests.log",
|
||||
"log_sha256": "0cb0e9deddcd9d90883a9416ecfed346bf1f4337a51247d08a39d49160313129",
|
||||
"synthetic_only": true,
|
||||
"test_count": 49,
|
||||
"retained_previous_tests": 35,
|
||||
"new_semantic_tests": 14
|
||||
},
|
||||
"local_source_manifest": "local-source-manifest.json",
|
||||
"local_source_manifest_sha256": "25b7492044046b5c8498f968b648392b592d42e266b2ff6fdb4773e52ba3e451",
|
||||
"source_and_inputs_unchanged_during_tests": true,
|
||||
"git_diff_check": "pass",
|
||||
"native_engines_started": 0,
|
||||
"OS_operations": 0,
|
||||
"full_regression_executed": false,
|
||||
"acceptance": "pending"
|
||||
}
|
||||
@@ -18,29 +18,32 @@
|
||||
},
|
||||
"final_local_files_sha256": {
|
||||
"docs/plans/original-completion-2026-10-02/execution/completion_marker_contracts.json": "f59f01f65c795057117fda753706a6200928d4954af901fc965cf1a7c09232b5",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/CONDITION_MATRIX.md": "e62103e73c9703f92c9361506aa7f7546a01c95b18eef25f827d249e33fb3a86",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/CONDITION_MATRIX.md": "8ddca3cdd8c1049018baf48c67d1ca90b8f1c59a386e625c2d187f196497e2ba",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_COLLECTION.md": "79944e586fab86096de003fb0f6ad99b2af7f5d6c3043668edc0f9b39addc218",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/passive_os_placement_recorder.gd": "21855e3b32263eb98127202467b770cb1334fa70c6b357825a122db385ffa8d6",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/passive_os_placement_recorder.gd.uid": "d7f97560c8bbdfdaed173b2b48261e65b92847bd0493dd1cc2ebb309d0622314",
|
||||
"scenes/main/main.gd": "e015e18fee8c114ddce39e46a04be139e694a4e3569855065576c0c909b94fc6",
|
||||
"scenes/main/world_preview.gd": "2f0e417ae2ff1745062bdbdcec74b3b058cfcffbbd9001ca3e6a62cd23efb47d",
|
||||
"tests/fixtures/p08-03/checker_fixture.py": "0d12e09e5342a016bc9e61c056b07357e761c29f9d82fbf941ce524f51ff131e",
|
||||
"tests/fixtures/p08-03/passive_placement.gd": "c17a1874fa585ec1ea892b51860f0997176df084b08751ea41e27ea5bc1189e8",
|
||||
"tests/fixtures/p08-03/checker_fixture.py": "062333148bfb570f2191317f1634e5dd1495cf3602221fc9a054dd9243597669",
|
||||
"tests/fixtures/p08-03/passive_placement.gd": "e55ce365aec82f763860564d5065e8a4d3f36b717c92e28fc48ac60657366992",
|
||||
"tests/fixtures/p08-03/passive_placement.gd.uid": "f75e3f2d9555c30cee3a1de882f32225fc624565a78a7ef3f5c604325c578ce3",
|
||||
"tests/fixtures/p08-03/placement.gd": "d47b54189be76b9c8e3a6f99c9ecdcbeb75b790cf4fb03d180be9654baa2548f",
|
||||
"tests/fixtures/p08-03/placement.gd": "299016b07b5e4eab0c269a2efde45908b7ca38bf1259abae3272453f3b7304eb",
|
||||
"tests/fixtures/p08-03/placement.gd.uid": "5caca08c1e627e0ca07e2ab7b13bd82b24a22f77513fe87e30b79023568e1987",
|
||||
"tests/ui/test_p08_normal_placement_ops.gd": "734f4f85d0b0fc45dc31fc23502425b911635667dabc0341ba0d88b0107f4405",
|
||||
"tests/ui/test_p08_normal_placement_ops.gd.uid": "7d168ac50ca82ae1979da31c467f9a5020ca5ec7616b5bf99294413d85b3b299",
|
||||
"tools/check_p08_normal_placement_evidence.py": "5baea283760e04f23abefcf576f9a3e8230b96ed30d82569528dcd211a6032cf",
|
||||
"tools/check_p08_normal_placement_evidence.py": "7fbc115599782b2b7e98f9df855e72b076580b74f6a17aa255d16f2566fe6285",
|
||||
"tools/regression/suite-policy.json": "e875e6b05bbac8dfb98c2af007221436fa558ddb8806b6214689830295b32e8d",
|
||||
"tools/run_p08_normal_placement.py": "191831b4f684bdd7e99b3be6038c15a6830f544d17c941869b1c2a8fbe4a2aa3",
|
||||
"tools/test_p08_normal_placement_evidence.py": "ebf6c0ef2c32dc8fac61d570a7fea99c1ac2499b92399db32afec26147b9d84c",
|
||||
"tools/test_p08_normal_placement_evidence.py": "3a5fb02b944a9eff808458df897574232f9e5609d828031562e93d9920b9cfbb",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/NATIVE_R02_READER_OPERATION_DELTA.json": "60463e735d4f473bdad7b0925c37b9ca71ee34d6f0eb74ea6c07b508b5153e41",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/native-r02-reader-stderr.log": "8079b3dc2ba7b9a9c37fcd9a5a8df0971354027c60def4b95fb15c7310832040"
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/native-r02-reader-stderr.log": "8079b3dc2ba7b9a9c37fcd9a5a8df0971354027c60def4b95fb15c7310832040",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/OS_R04_INITIAL_LOAD_ORACLE_FINDING.json": "6a796bd63f5a16bd0bf0fcf07cec3f4414a5e6704409a79522a2677eae53b417",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/os-r04-writer-engine.log": "f78c28c53460b767e924867f5158787c8497973e6f1c10353cb0f2cb2cbc3a3d",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/registered-r04-evidence-manifest.json": "6189fb2fe983d11faf96f99d6e21eba550be8e89c083c1277ac2ada9fa50cafa"
|
||||
},
|
||||
"executed_source_manifest": {
|
||||
"path": "local-source-manifest.json",
|
||||
"sha256": "25b7492044046b5c8498f968b648392b592d42e266b2ff6fdb4773e52ba3e451",
|
||||
"sha256": "533748d30a8fb7b7e78930cf2c08139e980f75341ba772f062780d2056ec2900",
|
||||
"source_file_count": 1326,
|
||||
"contains": "Complete final local execution source and immutable/fixture/evidence input map; no material-size omission"
|
||||
},
|
||||
@@ -52,23 +55,26 @@
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/passive_os_placement_recorder.gd.uid": "d7f97560c8bbdfdaed173b2b48261e65b92847bd0493dd1cc2ebb309d0622314",
|
||||
"docs/spec/acceptance/P08-03.json": "37a6a581b5a9bbe03c07a3a266b03df1f740ff488da33ecd9bd60f5b32f1efe1",
|
||||
"docs/traceability/original/BASELINE.txt": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a",
|
||||
"tests/fixtures/p08-03/checker_fixture.py": "0d12e09e5342a016bc9e61c056b07357e761c29f9d82fbf941ce524f51ff131e",
|
||||
"tests/fixtures/p08-03/passive_placement.gd": "c17a1874fa585ec1ea892b51860f0997176df084b08751ea41e27ea5bc1189e8",
|
||||
"tests/fixtures/p08-03/checker_fixture.py": "062333148bfb570f2191317f1634e5dd1495cf3602221fc9a054dd9243597669",
|
||||
"tests/fixtures/p08-03/passive_placement.gd": "e55ce365aec82f763860564d5065e8a4d3f36b717c92e28fc48ac60657366992",
|
||||
"tests/fixtures/p08-03/passive_placement.gd.uid": "f75e3f2d9555c30cee3a1de882f32225fc624565a78a7ef3f5c604325c578ce3",
|
||||
"tests/fixtures/p08-03/placement.gd": "d47b54189be76b9c8e3a6f99c9ecdcbeb75b790cf4fb03d180be9654baa2548f",
|
||||
"tests/fixtures/p08-03/placement.gd": "299016b07b5e4eab0c269a2efde45908b7ca38bf1259abae3272453f3b7304eb",
|
||||
"tests/fixtures/p08-03/placement.gd.uid": "5caca08c1e627e0ca07e2ab7b13bd82b24a22f77513fe87e30b79023568e1987",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/NATIVE_R02_READER_OPERATION_DELTA.json": "60463e735d4f473bdad7b0925c37b9ca71ee34d6f0eb74ea6c07b508b5153e41",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/native-r02-reader-stderr.log": "8079b3dc2ba7b9a9c37fcd9a5a8df0971354027c60def4b95fb15c7310832040",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/NATIVE_R01_FAILURE_AND_SCOPE.json": "afc8dada6451e7e61d6d57abb0d7d040f5abcdb93432c8431c1c920dc4984515",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/native-r01-writer-stderr.log": "07fe6cccad7305b2ec88cb91fa79fa22ec9269d7c99d62a1f69971f7c5d22686"
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/native-r01-writer-stderr.log": "07fe6cccad7305b2ec88cb91fa79fa22ec9269d7c99d62a1f69971f7c5d22686",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/OS_R04_INITIAL_LOAD_ORACLE_FINDING.json": "6a796bd63f5a16bd0bf0fcf07cec3f4414a5e6704409a79522a2677eae53b417",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/os-r04-writer-engine.log": "f78c28c53460b767e924867f5158787c8497973e6f1c10353cb0f2cb2cbc3a3d",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/registered-r04-evidence-manifest.json": "6189fb2fe983d11faf96f99d6e21eba550be8e89c083c1277ac2ada9fa50cafa"
|
||||
},
|
||||
"actual_local_validation": {
|
||||
"path": "local-validation.json",
|
||||
"sha256": "ce90b9a8dc96b85736555df29d57ebddf3767df7c33043b2e9d39018c38e8729",
|
||||
"sha256": "0b64ffbdab1562797bfbec4956a91aae27e61f5fbb576fb3997a13e6296c584f",
|
||||
"python_syntax": "pass: four final Python sources compiled in memory",
|
||||
"checker_mock_tests": 49,
|
||||
"checker_mock_tests": 56,
|
||||
"checker_mock_exit_code": 0,
|
||||
"log_sha256": "0cb0e9deddcd9d90883a9416ecfed346bf1f4337a51247d08a39d49160313129",
|
||||
"log_sha256": "e54ecf761ca49aebe01fc1a13367ba01aa0f437ba649b781b1c8feb3a6f8bbc6",
|
||||
"git_diff_check": "pass"
|
||||
},
|
||||
"conditions": {
|
||||
@@ -163,6 +169,28 @@
|
||||
"new_unknown_native_differences_observed": false,
|
||||
"native_repair_validation": "pending",
|
||||
"context_gaps": [],
|
||||
"historical_R02": "Writer passed and reader failed on c2b59f04; no acceptance or changed-source PASS inherited"
|
||||
"historical_R02": "Writer passed and reader failed on c2b59f04; no acceptance or changed-source PASS inherited",
|
||||
"r04": {
|
||||
"authorities": [
|
||||
"OS_R04_INITIAL_LOAD_ORACLE_FINDING.json",
|
||||
"os-r04-writer-engine.log"
|
||||
],
|
||||
"registered_evidence_file_count": 2153,
|
||||
"inventory_sha256": "6189fb2fe983d11faf96f99d6e21eba550be8e89c083c1277ac2ada9fa50cafa",
|
||||
"changes": [
|
||||
"Initial OS load uses existing strict whole-state source-defined notification oracle with bootstrap prefix",
|
||||
"Bootstrap complete formal/raw/returned/actual/expected/comparison proof files remain separate from final role proofs",
|
||||
"Checker binds initial inspection and Runtime return, independently rebuilds notifications/counters/payload",
|
||||
"Seven new semantic negatives; all previous 49 tests retained"
|
||||
],
|
||||
"same_kind_static_check": "Only bootstrap used simple postload/formal equality within allowed fixture/recorder scope; presave/formal and read-only comparisons retained",
|
||||
"native_OS_full_regression_Opus_review_integration": "pending",
|
||||
"historical_validation_preserved": [
|
||||
"historical-r02-local-validation.json",
|
||||
"historical-r02-local-source-manifest.json"
|
||||
],
|
||||
"context_gaps": [],
|
||||
"worker_timeout_seconds": 900
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+17
-14
@@ -3678,20 +3678,20 @@
|
||||
"sha256": "8f150654767de0c66329d7d9e84d306c4fa5a65c918e04fb520b626b39f68334"
|
||||
},
|
||||
"tests/fixtures/p08-03/checker_fixture.py": {
|
||||
"bytes": 24737,
|
||||
"sha256": "0d12e09e5342a016bc9e61c056b07357e761c29f9d82fbf941ce524f51ff131e"
|
||||
"bytes": 26845,
|
||||
"sha256": "062333148bfb570f2191317f1634e5dd1495cf3602221fc9a054dd9243597669"
|
||||
},
|
||||
"tests/fixtures/p08-03/passive_placement.gd": {
|
||||
"bytes": 8799,
|
||||
"sha256": "c17a1874fa585ec1ea892b51860f0997176df084b08751ea41e27ea5bc1189e8"
|
||||
"bytes": 9146,
|
||||
"sha256": "e55ce365aec82f763860564d5065e8a4d3f36b717c92e28fc48ac60657366992"
|
||||
},
|
||||
"tests/fixtures/p08-03/passive_placement.gd.uid": {
|
||||
"bytes": 20,
|
||||
"sha256": "f75e3f2d9555c30cee3a1de882f32225fc624565a78a7ef3f5c604325c578ce3"
|
||||
},
|
||||
"tests/fixtures/p08-03/placement.gd": {
|
||||
"bytes": 21854,
|
||||
"sha256": "d47b54189be76b9c8e3a6f99c9ecdcbeb75b790cf4fb03d180be9654baa2548f"
|
||||
"bytes": 21977,
|
||||
"sha256": "299016b07b5e4eab0c269a2efde45908b7ca38bf1259abae3272453f3b7304eb"
|
||||
},
|
||||
"tests/fixtures/p08-03/placement.gd.uid": {
|
||||
"bytes": 20,
|
||||
@@ -5218,8 +5218,8 @@
|
||||
"sha256": "928353233bf85436a5aaf8c4f77f3f82472d94b8ad2646cb1b030baf92b3b5dc"
|
||||
},
|
||||
"tools/check_p08_normal_placement_evidence.py": {
|
||||
"bytes": 41464,
|
||||
"sha256": "5baea283760e04f23abefcf576f9a3e8230b96ed30d82569528dcd211a6032cf"
|
||||
"bytes": 44262,
|
||||
"sha256": "7fbc115599782b2b7e98f9df855e72b076580b74f6a17aa255d16f2566fe6285"
|
||||
},
|
||||
"tools/check_p24_selection_evidence.py": {
|
||||
"bytes": 14622,
|
||||
@@ -5298,8 +5298,8 @@
|
||||
"sha256": "fd9ef7ec63f53dfd5e04e261606c9303d01a2e6590e22a35fef2e35df1429280"
|
||||
},
|
||||
"tools/test_p08_normal_placement_evidence.py": {
|
||||
"bytes": 20263,
|
||||
"sha256": "ebf6c0ef2c32dc8fac61d570a7fea99c1ac2499b92399db32afec26147b9d84c"
|
||||
"bytes": 21950,
|
||||
"sha256": "3a5fb02b944a9eff808458df897574232f9e5609d828031562e93d9920b9cfbb"
|
||||
},
|
||||
"tools/verify_exported_opening.py": {
|
||||
"bytes": 1519,
|
||||
@@ -5314,14 +5314,17 @@
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/passive_os_placement_recorder.gd.uid": "d7f97560c8bbdfdaed173b2b48261e65b92847bd0493dd1cc2ebb309d0622314",
|
||||
"docs/spec/acceptance/P08-03.json": "37a6a581b5a9bbe03c07a3a266b03df1f740ff488da33ecd9bd60f5b32f1efe1",
|
||||
"docs/traceability/original/BASELINE.txt": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a",
|
||||
"tests/fixtures/p08-03/checker_fixture.py": "0d12e09e5342a016bc9e61c056b07357e761c29f9d82fbf941ce524f51ff131e",
|
||||
"tests/fixtures/p08-03/passive_placement.gd": "c17a1874fa585ec1ea892b51860f0997176df084b08751ea41e27ea5bc1189e8",
|
||||
"tests/fixtures/p08-03/checker_fixture.py": "062333148bfb570f2191317f1634e5dd1495cf3602221fc9a054dd9243597669",
|
||||
"tests/fixtures/p08-03/passive_placement.gd": "e55ce365aec82f763860564d5065e8a4d3f36b717c92e28fc48ac60657366992",
|
||||
"tests/fixtures/p08-03/passive_placement.gd.uid": "f75e3f2d9555c30cee3a1de882f32225fc624565a78a7ef3f5c604325c578ce3",
|
||||
"tests/fixtures/p08-03/placement.gd": "d47b54189be76b9c8e3a6f99c9ecdcbeb75b790cf4fb03d180be9654baa2548f",
|
||||
"tests/fixtures/p08-03/placement.gd": "299016b07b5e4eab0c269a2efde45908b7ca38bf1259abae3272453f3b7304eb",
|
||||
"tests/fixtures/p08-03/placement.gd.uid": "5caca08c1e627e0ca07e2ab7b13bd82b24a22f77513fe87e30b79023568e1987",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/NATIVE_R02_READER_OPERATION_DELTA.json": "60463e735d4f473bdad7b0925c37b9ca71ee34d6f0eb74ea6c07b508b5153e41",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/native-r02-reader-stderr.log": "8079b3dc2ba7b9a9c37fcd9a5a8df0971354027c60def4b95fb15c7310832040",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/NATIVE_R01_FAILURE_AND_SCOPE.json": "afc8dada6451e7e61d6d57abb0d7d040f5abcdb93432c8431c1c920dc4984515",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/native-r01-writer-stderr.log": "07fe6cccad7305b2ec88cb91fa79fa22ec9269d7c99d62a1f69971f7c5d22686"
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/native-r01-writer-stderr.log": "07fe6cccad7305b2ec88cb91fa79fa22ec9269d7c99d62a1f69971f7c5d22686",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/OS_R04_INITIAL_LOAD_ORACLE_FINDING.json": "6a796bd63f5a16bd0bf0fcf07cec3f4414a5e6704409a79522a2677eae53b417",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/os-r04-writer-engine.log": "f78c28c53460b767e924867f5158787c8497973e6f1c10353cb0f2cb2cbc3a3d",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/registered-r04-evidence-manifest.json": "6189fb2fe983d11faf96f99d6e21eba550be8e89c083c1277ac2ada9fa50cafa"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +1,38 @@
|
||||
{
|
||||
"task_id": "P08-03",
|
||||
"started_at": "2026-10-13T19:19:51.362993+00:00",
|
||||
"ended_at": "2026-10-13T19:20:39.117228+00:00",
|
||||
"started_at": "2026-10-13T19:51:22.470024+00:00",
|
||||
"ended_at": "2026-10-13T19:52:12.939899+00:00",
|
||||
"syntax": {
|
||||
"method": "compile(source, filename, exec); no pyc",
|
||||
"method": "compile in memory; no pyc",
|
||||
"files": {
|
||||
"tools/run_p08_normal_placement.py": "191831b4f684bdd7e99b3be6038c15a6830f544d17c941869b1c2a8fbe4a2aa3",
|
||||
"tools/check_p08_normal_placement_evidence.py": "5baea283760e04f23abefcf576f9a3e8230b96ed30d82569528dcd211a6032cf",
|
||||
"tools/test_p08_normal_placement_evidence.py": "ebf6c0ef2c32dc8fac61d570a7fea99c1ac2499b92399db32afec26147b9d84c",
|
||||
"tests/fixtures/p08-03/checker_fixture.py": "0d12e09e5342a016bc9e61c056b07357e761c29f9d82fbf941ce524f51ff131e"
|
||||
"tools/check_p08_normal_placement_evidence.py": "7fbc115599782b2b7e98f9df855e72b076580b74f6a17aa255d16f2566fe6285",
|
||||
"tools/test_p08_normal_placement_evidence.py": "3a5fb02b944a9eff808458df897574232f9e5609d828031562e93d9920b9cfbb",
|
||||
"tests/fixtures/p08-03/checker_fixture.py": "062333148bfb570f2191317f1634e5dd1495cf3602221fc9a054dd9243597669"
|
||||
},
|
||||
"passed": true
|
||||
},
|
||||
"checker_tests": {
|
||||
"argv": [
|
||||
"/Applications/Xcode.app/Contents/Developer/usr/bin/python3",
|
||||
"python3",
|
||||
"-B",
|
||||
"tools/test_p08_normal_placement_evidence.py"
|
||||
],
|
||||
"timeout_seconds": 900,
|
||||
"exit_code": 0,
|
||||
"log": "repair-r02-local-checker-tests.log",
|
||||
"log_sha256": "0cb0e9deddcd9d90883a9416ecfed346bf1f4337a51247d08a39d49160313129",
|
||||
"log": "repair-r04-local-checker-tests.log",
|
||||
"log_sha256": "e54ecf761ca49aebe01fc1a13367ba01aa0f437ba649b781b1c8feb3a6f8bbc6",
|
||||
"synthetic_only": true,
|
||||
"test_count": 49,
|
||||
"retained_previous_tests": 35,
|
||||
"new_semantic_tests": 14
|
||||
"test_count": 56,
|
||||
"retained_previous_tests": 49,
|
||||
"new_semantic_tests": 7
|
||||
},
|
||||
"local_source_manifest": "local-source-manifest.json",
|
||||
"local_source_manifest_sha256": "25b7492044046b5c8498f968b648392b592d42e266b2ff6fdb4773e52ba3e451",
|
||||
"source_and_inputs_unchanged_during_tests": true,
|
||||
"git_diff_check": "pass",
|
||||
"native_engines_started": 0,
|
||||
"OS_operations": 0,
|
||||
"full_regression_executed": false,
|
||||
"acceptance": "pending"
|
||||
"acceptance": "pending",
|
||||
"local_source_manifest": "local-source-manifest.json",
|
||||
"local_source_manifest_sha256": "533748d30a8fb7b7e78930cf2c08139e980f75341ba772f062780d2056ec2900",
|
||||
"git_diff_check": "pass"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
Godot Engine v4.7.2.stable.official.ed1daf0bf - https://godotengine.org
|
||||
OpenGL API 4.1 Metal - 90.5 - Compatibility - Using Device: Apple - Apple M4
|
||||
|
||||
P08_ROOT_CUA_WAIT /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-r04/os-pair/writer-request-0001/request.json
|
||||
ERROR: P08 placement: OS initial formal model exact
|
||||
at: push_error (core/variant/variant_utility.cpp:1023)
|
||||
GDScript backtrace (most recent call first):
|
||||
[0] expect (res://tests/fixtures/p08-03/placement.gd:37)
|
||||
[1] setup (res://tests/fixtures/p08-03/passive_placement.gd:78)
|
||||
[2] load_menu (res://tests/fixtures/p08-03/passive_placement.gd:155)
|
||||
[3] request (res://tests/fixtures/p08-03/passive_placement.gd:51)
|
||||
[4] frames (res://tests/fixtures/p08-03/placement.gd:71)
|
||||
P08_ROOT_CUA_WAIT /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-r04/os-pair/writer-request-0002/request.json
|
||||
P08_ROOT_CUA_WAIT /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-r04/os-pair/writer-request-0003/request.json
|
||||
P08_ROOT_CUA_WAIT /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-r04/os-pair/writer-request-0004/request.json
|
||||
+8620
File diff suppressed because it is too large
Load Diff
+5
@@ -0,0 +1,5 @@
|
||||
........................................................
|
||||
----------------------------------------------------------------------
|
||||
Ran 56 tests in 49.916s
|
||||
|
||||
OK
|
||||
+29
@@ -5,6 +5,7 @@ fabricated unit-test data, never collector output. Semantic corruption tests rep
|
||||
their bytes, so they cannot pass merely by detecting a stale artifact checksum.
|
||||
"""
|
||||
import copy
|
||||
import json
|
||||
import hashlib
|
||||
import json
|
||||
from pathlib import Path
|
||||
@@ -290,6 +291,34 @@ def make(base, source, checker):
|
||||
'result':typed({'ok':True,'read_only':True,'snapshot':copy.deepcopy(model)}),
|
||||
'raw_sha256':sha(folder/(inspect_stem+'.var'))})
|
||||
put(folder/(role+'-save-results.json'), {'pid':pid,'records':[stem,inspect_stem]})
|
||||
if method == "native_os":
|
||||
prefix = "writer-bootstrap-"
|
||||
returned = {"ok":True,"operation":"recovery","code":"OK","save_path":"user://saves/manual_ui"}
|
||||
expected = checker.expected_operation(formal_model,returned,"SAVE_RECOVERY_LOADED")
|
||||
for label,value in [("formal-model",formal_model),("returned-result",typed(returned)),
|
||||
("checkpoint",expected),("expected-operation",expected),("operation-actual",expected)]:
|
||||
put(folder/(prefix+label+".json"),value)
|
||||
(folder/(prefix+label+".var")).write_bytes(json.dumps(value,sort_keys=True).encode())
|
||||
records = []
|
||||
for suffix,operation,value in [
|
||||
("0000-bootstrap","runtime_operation",returned),
|
||||
("0000-inspect","initial_inspect",{"ok":True,"read_only":True,"snapshot":copy.deepcopy(model)})]:
|
||||
stem = "writer-save-result-"+suffix
|
||||
(folder/(stem+".var")).write_bytes(b"synthetic bootstrap Dictionary")
|
||||
put(folder/(stem+".json"), {"pid":pids[0],"operation":operation,
|
||||
"requested_path":"user://saves/manual_ui","absolute_path":absolute,"user_data_dir":profile,
|
||||
"result":typed(value),"raw_sha256":sha(folder/(stem+".var"))})
|
||||
records.append(stem)
|
||||
log = json.loads((folder/"writer-save-results.json").read_text())
|
||||
log["records"] = records+log["records"]
|
||||
put(folder/"writer-save-results.json",log)
|
||||
count = len(model["systems"]["runtime"]["domain_events"]["recent_events"])
|
||||
put(folder/(prefix+"operation-comparison.json"), {
|
||||
"pid":pids[0],"delta_kind":"source_defined_notification",
|
||||
"formal_model":prefix+"formal-model","actual_model":prefix+"checkpoint",
|
||||
"expected_model":prefix+"expected-operation","returned_result":typed(returned),
|
||||
"saved_recent_count":count,"expected_recent_count":count+1,"actual_recent_count":count+1,
|
||||
"whole_raw_equal":True})
|
||||
put(folder/'save.json', {'members': {n: sha(formal/n) for n in checker.MEMBERS},
|
||||
'pid': pids[0], 'cell': target, 'instance_id': 'f4'})
|
||||
row = {'id': 'resume_overlap', 'kind': 'build', 'position': position(target),
|
||||
|
||||
+8
-1
@@ -75,7 +75,14 @@ func setup() -> void:
|
||||
var stored: Dictionary = SaveService.inspect_snapshot(ProjectSettings.globalize_path(String(main.manual_save_path)))
|
||||
record_save_result("initial_inspect", String(main.manual_save_path), stored)
|
||||
expect(bool(stored.get("ok", false)), "read-only initial formal inspection")
|
||||
expect(runtime.create_snapshot() == stored.get("snapshot", {}), "OS initial formal model exact")
|
||||
var formal: Dictionary = stored.get("snapshot", {})
|
||||
capture_model("bootstrap-formal-model", formal)
|
||||
capture("bootstrap-checkpoint")
|
||||
expect(not operation_results.is_empty(), "bootstrap returned load Dictionary")
|
||||
if not operation_results.is_empty():
|
||||
var returned: Dictionary = operation_results.back()
|
||||
capture_model("bootstrap-returned-result", returned)
|
||||
verify_operation(formal, returned, &"SAVE_RECOVERY_LOADED", "bootstrap-")
|
||||
expect(clock.paused, "diagnostic formal fixture starts paused")
|
||||
|
||||
func diagnostic_budget() -> void:
|
||||
|
||||
Vendored
+8
-8
@@ -343,7 +343,7 @@ func inspect_formal() -> Dictionary:
|
||||
capture_model("formal-model", formal)
|
||||
return formal
|
||||
|
||||
func verify_operation(formal: Dictionary, result: Dictionary, event_type: StringName) -> void:
|
||||
func verify_operation(formal: Dictionary, result: Dictionary, event_type: StringName, prefix: String = "") -> void:
|
||||
var expected := formal.duplicate(true)
|
||||
var model: Dictionary = expected[&"systems"][&"runtime"]
|
||||
var counters: Dictionary = model[&"id_generator"]["counters"]
|
||||
@@ -379,20 +379,20 @@ func verify_operation(formal: Dictionary, result: Dictionary, event_type: String
|
||||
stream["recent_events"].append(notification.to_dictionary())
|
||||
if stream["recent_events"].size() > DomainEventStream.RECENT_EVENT_LIMIT:
|
||||
stream["recent_events"].pop_front()
|
||||
capture_model("expected-operation", expected)
|
||||
capture("operation-actual")
|
||||
var actual: Dictionary = bytes_to_var(FileAccess.get_file_as_bytes(directory.path_join(role + "-checkpoint.var")))
|
||||
json_file(role + "-operation-comparison.json", {
|
||||
capture_model(prefix + "expected-operation", expected)
|
||||
capture(prefix + "operation-actual")
|
||||
var actual: Dictionary = bytes_to_var(FileAccess.get_file_as_bytes(directory.path_join(role + "-" + prefix + "checkpoint.var")))
|
||||
json_file(role + "-" + prefix + "operation-comparison.json", {
|
||||
"pid": OS.get_process_id(), "delta_kind": "source_defined_notification",
|
||||
"formal_model": role + "-formal-model", "actual_model": role + "-checkpoint",
|
||||
"expected_model": role + "-expected-operation", "returned_result": Codec.new().typed(result),
|
||||
"formal_model": role + "-" + prefix + "formal-model", "actual_model": role + "-" + prefix + "checkpoint",
|
||||
"expected_model": role + "-" + prefix + "expected-operation", "returned_result": Codec.new().typed(result),
|
||||
"saved_recent_count": formal[&"systems"][&"runtime"][&"domain_events"]["recent_events"].size(),
|
||||
"expected_recent_count": stream["recent_events"].size(),
|
||||
"actual_recent_count": actual[&"systems"][&"runtime"][&"domain_events"]["recent_events"].size(),
|
||||
"whole_raw_equal": var_to_bytes(expected) == var_to_bytes(actual),
|
||||
})
|
||||
# Complete raw actual/expected snapshots remain available on unknown drift.
|
||||
expect(var_to_bytes(expected) == var_to_bytes(actual), "whole source-defined save operation model; see " + role + "-operation-comparison.json")
|
||||
expect(var_to_bytes(expected) == var_to_bytes(actual), "whole source-defined save operation model; see " + role + "-" + prefix + "operation-comparison.json")
|
||||
expect(var_to_bytes(actual) == var_to_bytes(runtime.create_snapshot()), "read-only inspection preserves live model")
|
||||
|
||||
func record_save_operation(result: Dictionary) -> void:
|
||||
|
||||
@@ -377,6 +377,8 @@ def check(project_root, evidence_dir):
|
||||
rows = []
|
||||
normal_results = {}
|
||||
inspections = {}
|
||||
bootstrap_inspection = None
|
||||
bootstrap_result = None
|
||||
for role, pid in zip(('writer', 'reader'), expected_pids):
|
||||
process = document(directory+'/'+role+'-process.json')
|
||||
require(process['pid'] == pid and process['failures'] == 0 and process['checks'] > 0, 'process attribution')
|
||||
@@ -392,7 +394,12 @@ def check(project_root, evidence_dir):
|
||||
require(path.startswith('user://') and record['absolute_path'] == str(Path(record['user_data_dir'])/path[7:]), 'save outside private user profile')
|
||||
result = decode(record['result'])
|
||||
require(isinstance(result, dict) and result.get('ok') is True, 'actual save/load failed')
|
||||
if native_os and role == "writer" and record["operation"] == "initial_inspect":
|
||||
require(result.get("read_only") is True and "snapshot" in result, "missing bootstrap inspection")
|
||||
bootstrap_inspection = typed_member(record["result"],"snapshot")
|
||||
if record['operation'] == 'runtime_operation':
|
||||
if native_os and role == "writer" and bootstrap_result is None:
|
||||
bootstrap_result = record["result"]
|
||||
operations.append(result.get('operation'))
|
||||
normal_results[role] = result
|
||||
if record['operation'] == 'formal_inspect':
|
||||
@@ -464,6 +471,30 @@ def check(project_root, evidence_dir):
|
||||
'expected_recent_count':len(decode(expected)['systems']['runtime']['domain_events']['recent_events']),
|
||||
'actual_recent_count':len(decode(typed(role+'-checkpoint'))['systems']['runtime']['domain_events']['recent_events']),
|
||||
'whole_raw_equal':True} and decode(comparison['returned_result']) == result, 'wrong operation comparison attribution')
|
||||
if native_os:
|
||||
prefix = "writer-bootstrap-"
|
||||
bootstrap_formal = typed(prefix+"formal-model")
|
||||
returned = typed(prefix+"returned-result")
|
||||
require(bootstrap_inspection is not None and not typed_differences(bootstrap_formal,bootstrap_inspection), "wrong bootstrap formal inspection")
|
||||
require(bootstrap_result is not None and not typed_differences(returned,bootstrap_result), "wrong bootstrap returned Dictionary")
|
||||
result = decode(returned)
|
||||
require(result.get("ok") is True and result.get("operation") == "recovery", "wrong bootstrap load result")
|
||||
expected = expected_operation(bootstrap_formal,result,"SAVE_RECOVERY_LOADED")
|
||||
actual = typed(prefix+"checkpoint")
|
||||
require(not typed_differences(expected,actual), "bootstrap source-defined operation drift")
|
||||
require(not typed_differences(expected,typed(prefix+"expected-operation")), "wrong bootstrap expected model")
|
||||
require(not typed_differences(actual,typed(prefix+"operation-actual")), "bootstrap inspection drift")
|
||||
for label in ("expected-operation","operation-actual"):
|
||||
require(sha(artifact(directory+"/"+prefix+label+".var")) == sha(artifact(directory+"/"+prefix+"checkpoint.var")), "wrong bootstrap raw model")
|
||||
comparison = document(directory+"/"+prefix+"operation-comparison.json")
|
||||
require(comparison == {
|
||||
"pid":expected_pids[0], "delta_kind":"source_defined_notification",
|
||||
"formal_model":prefix+"formal-model", "actual_model":prefix+"checkpoint",
|
||||
"expected_model":prefix+"expected-operation", "returned_result":returned,
|
||||
"saved_recent_count":len(decode(bootstrap_formal)["systems"]["runtime"]["domain_events"]["recent_events"]),
|
||||
"expected_recent_count":len(decode(expected)["systems"]["runtime"]["domain_events"]["recent_events"]),
|
||||
"actual_recent_count":len(decode(actual)["systems"]["runtime"]["domain_events"]["recent_events"]),
|
||||
"whole_raw_equal":True}, "wrong bootstrap comparison attribution")
|
||||
saved = document(directory+'/save.json')
|
||||
require(set(saved['members']) == set(MEMBERS) and saved['pid'] == expected_pids[0], 'missing formal members/writer')
|
||||
for member in MEMBERS:
|
||||
|
||||
@@ -61,6 +61,39 @@ class EvidenceTests(unittest.TestCase):
|
||||
self.assertEqual(1,C.main(['--verify-only','--project-root',str(self.root)]))
|
||||
self.assertIn('reason mismatch',json.loads(output.getvalue())['deficits'])
|
||||
|
||||
def bootstrap_edit(self, mutate):
|
||||
self.edit("os-pair/writer-bootstrap-checkpoint.json", mutate)
|
||||
self.reject("bootstrap source-defined operation drift")
|
||||
|
||||
def test_bootstrap_missing_notification(self):
|
||||
self.bootstrap_edit(lambda d: C.typed_member(d,"systems","runtime","domain_events","recent_events")["items"].pop())
|
||||
|
||||
def test_bootstrap_extra_notification(self):
|
||||
self.bootstrap_edit(lambda d: C.typed_member(d,"systems","runtime","domain_events","recent_events")["items"].append(
|
||||
copy.deepcopy(C.typed_member(d,"systems","runtime","domain_events","recent_events")["items"][-1])))
|
||||
|
||||
def test_bootstrap_counter_drift(self):
|
||||
self.bootstrap_edit(lambda d: C.typed_member(d,"systems","runtime","id_generator","counters","domain_event").update(text="999"))
|
||||
|
||||
def test_bootstrap_payload_drift(self):
|
||||
def mutate(d):
|
||||
event = C.typed_member(d,"systems","runtime","domain_events","recent_events")["items"][-1]
|
||||
C.typed_member(event,"payload","save_path").update(text='"/wrong/path"')
|
||||
self.bootstrap_edit(mutate)
|
||||
|
||||
def test_bootstrap_unknown_field_drift(self):
|
||||
self.bootstrap_edit(lambda d: d["entries"].append([F.typed("unknown"),F.typed(1)]))
|
||||
|
||||
def test_bootstrap_missing_raw(self):
|
||||
(self.out/"os-pair/writer-bootstrap-checkpoint.var").unlink()
|
||||
F.repin(self.out)
|
||||
self.reject("writer-bootstrap-checkpoint.var")
|
||||
|
||||
def test_bootstrap_overwritten_raw(self):
|
||||
shutil.copyfile(self.out/"os-pair/writer-checkpoint.var", self.out/"os-pair/writer-bootstrap-checkpoint.var")
|
||||
F.repin(self.out)
|
||||
self.reject("wrong bootstrap raw model")
|
||||
|
||||
def test_reason_mismatch(self):
|
||||
self.edit('pair/writer-actions.json', lambda d: d['actions'][0].update(status='配置可能'))
|
||||
self.reject('reason mismatch')
|
||||
|
||||
Reference in New Issue
Block a user