P08-03: 配置の通常操作受入
This commit is contained in:
@@ -167,7 +167,7 @@ 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.
|
||||
|
||||
## R05 consolidated repair (current submission)
|
||||
## R05 consolidated repair (historical submission)
|
||||
|
||||
The supplied ROOT_CHECKER_R05_INFRASTRUCTURE_ORACLE.json and
|
||||
ROOT_OS_R05_GUIDE_INTERCEPTION.json are failure authorities, not acceptance.
|
||||
@@ -194,8 +194,8 @@ chooses a visible cell with the unchanged UNSUPPORTED predicate outside the
|
||||
opening guide rectangle after normal palette selection. It reads bounds,
|
||||
preview and guide geometry; it does not suppress the guide or mutate models.
|
||||
Cell requests include viewport-to-screen affine mapping derived from existing
|
||||
Godot transforms, including stretch and window translation, and current guide
|
||||
geometry. The checker recomputes the mapping and rejects guide interception.
|
||||
Godot transforms and current guide geometry. The engine matrix is separate
|
||||
from physical stretch and screenshot/window translation (R06 correction). The checker recomputes the mapping and rejects guide interception.
|
||||
Root must retain actual CUA coordinates, screenshots and raw receipts and check
|
||||
the mapping against the real window; no OS success is claimed by this worker.
|
||||
|
||||
@@ -205,3 +205,44 @@ local-validation.json and implementation.json. Godot parsing, fresh native and
|
||||
OS collection, final full regression, independent review, integration/current
|
||||
verification and Windows device evidence remain pending. No context gap or
|
||||
outside-scope service defect has been demonstrated in this batch.
|
||||
|
||||
## R06 targeted repair (preserved repair)
|
||||
|
||||
Only the OS per-child total wait changes from 900 to 2400 seconds, with
|
||||
truthful start/end receipt provenance. Per-request 300, provider 900, validation
|
||||
180 and every source/acceptance guard remain unchanged. Product and fixtures
|
||||
are unchanged. Historical R06 native passes do not establish changed-source PASS.
|
||||
|
||||
R06 calibration correction (ROOT_NATIVE_R06_OS_TIMEOUT.json): the engine
|
||||
viewport_to_screen affine matrix [a,b,c,d,tx,ty] maps viewport (x,y) to
|
||||
(a*x+c*y+tx, b*x+d*y+ty) in engine coordinates. It reports identity in the
|
||||
real window and does not include physical stretch or the screenshot titlebar.
|
||||
Keep 1440x810 virtual coordinates separate from 1280x720 window content and
|
||||
1280x752 screenshot coordinates. For this measured window, apply scale 8/9
|
||||
(approximately 0.8889), then add 32 pixels to screenshot y for the titlebar.
|
||||
For modal controls, first apply the dialog offset reported by Godot, then
|
||||
physical stretch and titlebar. Desktop CUA coordinates additionally require
|
||||
the observed screenshot/window origin. Retain actual CUA coordinates, raw
|
||||
screenshots and window geometry; recalibrate whenever geometry changes.
|
||||
guide_rect remains in viewport coordinates. Preserve historical failed
|
||||
evidence: R06 request 33 was unacknowledged after PID 17863 ended and cannot
|
||||
count as evidence. Fresh guarded native/OS collection, full regression,
|
||||
independent review and integration remain pending.
|
||||
|
||||
Historical R06 local validation: syntax passed; 75 checker tests ran with one failure.
|
||||
The existing OS mock expects 900 rather than 2400. Blocked pending authority
|
||||
to update only that mock expectation in tools/test_p08_normal_placement_evidence.py
|
||||
and rerun local checks. No test was disabled or changed.
|
||||
|
||||
## R06 authorized mock synchronization (current submission)
|
||||
|
||||
The independent literal expected2400 is asserted against the driver constant,
|
||||
actual wait argument and actual started/ended receipts for both writer and
|
||||
reader. The timeout case also checks its writer receipts and preserves owned
|
||||
child cleanup, project restoration and existing protection controls. All 75
|
||||
checker tests are retained. Final local syntax/test results and exact source
|
||||
and input SHAs are recorded in local-validation.json, local-source-manifest.json
|
||||
and implementation.json. These are mocked Python controls, not native or OS
|
||||
acceptance. Root native, OS, final full regression, independent review and
|
||||
integration/current verification remain pending, including Windows device
|
||||
acceptance. Existing driver2400, calibration and earlier repair work is retained.
|
||||
|
||||
@@ -61,7 +61,9 @@ headless flag or headless proof gate. `started.json`, `process-started.json`,
|
||||
`ended.json`, raw engine log, actual profile/engine report, source/stage/default
|
||||
player inventories and ordinary owner/audio records remain in the evidence.
|
||||
Controller and recorder SHA appear in start/end documents. Each OS child
|
||||
has a 900-second bound and each Root acknowledgement a 300-second bound.
|
||||
has a 2400-second total wait recorded as timeout_seconds in start/end receipts,
|
||||
using the same value passed to process.wait. Each acknowledgement retains its
|
||||
300-second bound; provider 900 and validation 180 remain unchanged.
|
||||
Timeout/error preserves failure records and cleans only owned children.
|
||||
|
||||
## CUA request / read-only acknowledgement bridge
|
||||
@@ -126,11 +128,18 @@ Do not edit evidence after collection to force a pass. Correct source/input
|
||||
defects through the fixed repair workflow. GDScript parsing, actual native
|
||||
and OS success, full regression, review and integration are all pending.
|
||||
|
||||
R05 repair: cell requests now retain `viewport_to_screen` as six affine entries
|
||||
`[a,b,c,d,tx,ty]`. Apply it to viewport `(x,y)` to obtain screen
|
||||
`(a*x+c*y+tx, b*x+d*y+ty)`; retain the actual CUA coordinate in the raw receipt
|
||||
and compare against screenshots/window geometry, including titlebar and stretch.
|
||||
Do not multiply by canvas scale a second time. `guide_rect` is in viewport
|
||||
coordinates and `guide_visible` records interception geometry. The unsupported
|
||||
target is chosen by read-only production preview inspection outside that guide;
|
||||
the failed R05 request is historical evidence and must remain preserved.
|
||||
R06 calibration correction (ROOT_NATIVE_R06_OS_TIMEOUT.json): the engine
|
||||
viewport_to_screen affine matrix [a,b,c,d,tx,ty] maps viewport (x,y) to
|
||||
(a*x+c*y+tx, b*x+d*y+ty) in engine coordinates. It reports identity in the
|
||||
real window and does not include physical stretch or the screenshot titlebar.
|
||||
Keep 1440x810 virtual coordinates separate from 1280x720 window content and
|
||||
1280x752 screenshot coordinates. For this measured window, apply scale 8/9
|
||||
(approximately 0.8889), then add 32 pixels to screenshot y for the titlebar.
|
||||
For modal controls, first apply the dialog offset reported by Godot, then
|
||||
physical stretch and titlebar. Desktop CUA coordinates additionally require
|
||||
the observed screenshot/window origin. Retain actual CUA coordinates, raw
|
||||
screenshots and window geometry; recalibrate whenever geometry changes.
|
||||
guide_rect remains in viewport coordinates. Preserve historical failed
|
||||
evidence: R06 request 33 was unacknowledged after PID 17863 ended and cannot
|
||||
count as evidence. Fresh guarded native/OS collection, full regression,
|
||||
independent review and integration remain pending.
|
||||
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"unit": "P08-03",
|
||||
"candidate": "d01286360ee88046e06b80d840fc303a71e0d661",
|
||||
"local_final_tests": 75,
|
||||
"native_import_parse_writer_reader": "all_pass",
|
||||
"OS_acknowledged_requests": 32,
|
||||
"OS_unacknowledged_request": 33,
|
||||
"OS_writer_pid": 17863,
|
||||
"OS_error": "TimeoutExpired: Command '['/Applications/Godot.app/Contents/MacOS/Godot', '--path', '/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-r06/stage', '--script', '/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-r06/os-runs/writer/passive_os.gd']' timed out after 900 seconds",
|
||||
"owned_ended": true,
|
||||
"guards": [],
|
||||
"cleanup": [],
|
||||
"formal_acceptance": false,
|
||||
"deficits": [
|
||||
"OS total child wait900 exceeded before rebuild/camera/finalsave",
|
||||
"Godot viewport_to_screen is identity in actual real window; documents cannot claim it already includes canvas stretch/CUA titlebar"
|
||||
],
|
||||
"actual_CUA_mapping": {
|
||||
"viewport_dimensions": [
|
||||
1440,
|
||||
810
|
||||
],
|
||||
"window_content": [
|
||||
1280,
|
||||
720
|
||||
],
|
||||
"screenshot_dimensions": [
|
||||
1280,
|
||||
752
|
||||
],
|
||||
"scale": 0.8888888888888888,
|
||||
"titlebar_pixels": 32,
|
||||
"modal_mapping": "apply native-reported dialog translation then physical stretch/titlebar"
|
||||
},
|
||||
"requested_fix": "Only OS child total wait to2400 with actual provenance; preserve per-request300, provider900, validation180, acceptance and source guards. Correct calibration docs/metadata to distinguish engine virtual matrix from CUA screenshot/window coordinates. No product/fixture rewrite or duplicated regression. Request33 after screenshot shows project manager because original child already terminal: unacknowledged, not valid evidence."
|
||||
}
|
||||
+6665
File diff suppressed because it is too large
Load Diff
+38
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"task_id": "P08-03",
|
||||
"started_at": "2026-10-13T20:49:58.133267+00:00",
|
||||
"ended_at": "2026-10-13T20:51:06.466499+00:00",
|
||||
"syntax": {
|
||||
"method": "ast.parse in memory; no pyc",
|
||||
"files": {
|
||||
"tools/run_p08_normal_placement.py": "191831b4f684bdd7e99b3be6038c15a6830f544d17c941869b1c2a8fbe4a2aa3",
|
||||
"tools/check_p08_normal_placement_evidence.py": "dfa37ed586240972e57cbb6a962beb856ba289abd58dbfaf83706d3a227a0116",
|
||||
"tools/test_p08_normal_placement_evidence.py": "d40edc5518e8bfcb59a1da3f55305955581209cfd24a0223c764d6e39c4c361e",
|
||||
"tests/fixtures/p08-03/checker_fixture.py": "508e8bc0f9ff3dc578a3b34fdfb3354fe31e5e604e2d7731cd25511c4261e93a"
|
||||
},
|
||||
"passed": true
|
||||
},
|
||||
"checker_tests": {
|
||||
"argv": [
|
||||
"python3",
|
||||
"-B",
|
||||
"tools/test_p08_normal_placement_evidence.py"
|
||||
],
|
||||
"timeout_seconds": 900,
|
||||
"exit_code": 0,
|
||||
"log": "repair-r05-local-checker-tests.log",
|
||||
"log_sha256": "84c71a911af1ea79ad6cb005513ce2d3b245a1cc3577baa014817714dc08d413",
|
||||
"test_count": 75,
|
||||
"retained_previous_tests": 56,
|
||||
"new_tests": 19,
|
||||
"synthetic_and_actual_snapshot_controls_only": true
|
||||
},
|
||||
"source_and_inputs_unchanged_during_tests": true,
|
||||
"native_engines_started": 0,
|
||||
"OS_operations": 0,
|
||||
"full_regression_executed": false,
|
||||
"acceptance": "pending",
|
||||
"local_source_manifest": "local-source-manifest.json",
|
||||
"local_source_manifest_sha256": "f897d2713f64e1b3338e3e24a9e61859db190643a6eadbd202dde91c5bb0df04",
|
||||
"git_diff_check": "pass"
|
||||
}
|
||||
@@ -18,8 +18,8 @@
|
||||
},
|
||||
"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": "6dad13394a647cecae79e55ecfe42e57c4266565f131ad298ac0305942c6159d",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_COLLECTION.md": "bc3f4045cae8c59dce340ac9b1fb523ad6bb50882f794fdbf89ec326213ac7db",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/CONDITION_MATRIX.md": "a1b1c5f29863696ac05f6aa2061b7f6a0cf9b227400f9b53bed4708e4c9d6ba3",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_COLLECTION.md": "0bf5a4b0f6f1fc21e4e0dd314f74030cdae9073c7531f77fb8b6177dfb0b2823",
|
||||
"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",
|
||||
@@ -33,8 +33,8 @@
|
||||
"tests/ui/test_p08_normal_placement_ops.gd.uid": "7d168ac50ca82ae1979da31c467f9a5020ca5ec7616b5bf99294413d85b3b299",
|
||||
"tools/check_p08_normal_placement_evidence.py": "dfa37ed586240972e57cbb6a962beb856ba289abd58dbfaf83706d3a227a0116",
|
||||
"tools/regression/suite-policy.json": "e875e6b05bbac8dfb98c2af007221436fa558ddb8806b6214689830295b32e8d",
|
||||
"tools/run_p08_normal_placement.py": "191831b4f684bdd7e99b3be6038c15a6830f544d17c941869b1c2a8fbe4a2aa3",
|
||||
"tools/test_p08_normal_placement_evidence.py": "d40edc5518e8bfcb59a1da3f55305955581209cfd24a0223c764d6e39c4c361e",
|
||||
"tools/run_p08_normal_placement.py": "5cb1f58664a0bec71c8b5e853749d1c3656e0a2a027201e33fbaa6b0c0291fc6",
|
||||
"tools/test_p08_normal_placement_evidence.py": "8b98647990e45588e117b6e9ecb87e5a1fcf8d83ddbd6c27da8b0a2edd74da86",
|
||||
"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/OS_R04_INITIAL_LOAD_ORACLE_FINDING.json": "6a796bd63f5a16bd0bf0fcf07cec3f4414a5e6704409a79522a2677eae53b417",
|
||||
@@ -45,7 +45,7 @@
|
||||
},
|
||||
"executed_source_manifest": {
|
||||
"path": "local-source-manifest.json",
|
||||
"sha256": "f897d2713f64e1b3338e3e24a9e61859db190643a6eadbd202dde91c5bb0df04",
|
||||
"sha256": "a8f442062ef4d4c791e07ad00271c7123c80997bf76897f12c78c303d90173a8",
|
||||
"source_file_count": 1328,
|
||||
"contains": "Complete final local execution source and immutable/fixture/evidence input map; no material-size omission"
|
||||
},
|
||||
@@ -71,13 +71,12 @@
|
||||
},
|
||||
"actual_local_validation": {
|
||||
"path": "local-validation.json",
|
||||
"sha256": "0b4bda3555f9dcf2ba1e79df532d1a55543b73e2a38002238e49a0850fe67d0a",
|
||||
"sha256": "6393caaffaae4e289871e96b241ea3aeb94fbba385b39fcd71d6bf14e2d1c12a",
|
||||
"python_syntax": "pass: four final Python sources parsed in memory",
|
||||
"checker_control_tests": 75,
|
||||
"checker_exit_code": 0,
|
||||
"log_sha256": "84c71a911af1ea79ad6cb005513ce2d3b245a1cc3577baa014817714dc08d413",
|
||||
"native_OS_full_regression": "not executed",
|
||||
"git_diff_check": "pass"
|
||||
"log_sha256": "74a86ece9204fadf39c763ec089b46b94ecfb9a04206c4aaeaeadda423879bda",
|
||||
"native_OS_full_regression": "not executed"
|
||||
},
|
||||
"conditions": {
|
||||
"support_connection": {
|
||||
@@ -212,6 +211,45 @@
|
||||
"collector_changes": false,
|
||||
"native_OS_full_regression_review_integration": "pending",
|
||||
"local_test_repair": "First final run rejected both corrupt reader checkpoints through earlier strict resume oracle; controls retargeted to construction-completed snapshots to exercise topology gate directly. Failure log retained."
|
||||
},
|
||||
"r06": {
|
||||
"authority": "ROOT_NATIVE_R06_OS_TIMEOUT.json",
|
||||
"OS_child_timeout_seconds": 2400,
|
||||
"per_request_timeout_seconds": 300,
|
||||
"provider_timeout_seconds": 900,
|
||||
"validation_timeout_seconds": 180,
|
||||
"production_changes": false,
|
||||
"fixture_changes": false,
|
||||
"collector_changes": true,
|
||||
"calibration": {
|
||||
"engine_virtual_dimensions": [
|
||||
1440,
|
||||
810
|
||||
],
|
||||
"engine_viewport_to_screen": "identity; separate physical calibration",
|
||||
"window_content": [
|
||||
1280,
|
||||
720
|
||||
],
|
||||
"screenshot_dimensions": [
|
||||
1280,
|
||||
752
|
||||
],
|
||||
"physical_scale": 0.8888888888888888,
|
||||
"titlebar_pixels": 32,
|
||||
"modal_mapping": "Godot dialog offset first, then stretch and titlebar; desktop adds window origin"
|
||||
},
|
||||
"native_OS_full_regression_review_integration": "pending",
|
||||
"historical_blocked": "Existing checker mock hardcodes OS wait=900; targeted scope excludes test edits.",
|
||||
"historical_minimal_proposal": "Update only tools/test_p08_normal_placement_evidence.py:397 expected OS wait to 2400 and rerun local tests.",
|
||||
"mock_synchronization": {
|
||||
"authorized": true,
|
||||
"independent_literal_expected2400": true,
|
||||
"actual_wait_and_started_ended_receipts": "writer and reader; timeout writer also checked",
|
||||
"checker_tests": 75,
|
||||
"checker_exit_code": 0,
|
||||
"pending": "Root native, OS, full regression, independent review and integration"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+6
-5
@@ -6613,8 +6613,8 @@
|
||||
},
|
||||
"tools/run_p08_normal_placement.py": {
|
||||
"path": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/P08-03-implement/tools/run_p08_normal_placement.py",
|
||||
"bytes": 15233,
|
||||
"sha256": "191831b4f684bdd7e99b3be6038c15a6830f544d17c941869b1c2a8fbe4a2aa3"
|
||||
"bytes": 15345,
|
||||
"sha256": "5cb1f58664a0bec71c8b5e853749d1c3656e0a2a027201e33fbaa6b0c0291fc6"
|
||||
},
|
||||
"tools/run_upkeep_ui_flow.py": {
|
||||
"path": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/P08-03-implement/tools/run_upkeep_ui_flow.py",
|
||||
@@ -6633,8 +6633,8 @@
|
||||
},
|
||||
"tools/test_p08_normal_placement_evidence.py": {
|
||||
"path": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/P08-03-implement/tools/test_p08_normal_placement_evidence.py",
|
||||
"bytes": 26725,
|
||||
"sha256": "d40edc5518e8bfcb59a1da3f55305955581209cfd24a0223c764d6e39c4c361e"
|
||||
"bytes": 27317,
|
||||
"sha256": "8b98647990e45588e117b6e9ecb87e5a1fcf8d83ddbd6c27da8b0a2edd74da86"
|
||||
},
|
||||
"tools/verify_exported_opening.py": {
|
||||
"path": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/P08-03-implement/tools/verify_exported_opening.py",
|
||||
@@ -6660,6 +6660,7 @@
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_CHECKER_R05_INFRASTRUCTURE_ORACLE.json": "9fd11c89e53d4fa569f809c06be1d0592741c58691fae3e515cd1c12da86758c",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_OS_R05_GUIDE_INTERCEPTION.json": "b8a9041b59b87c7b01ebbf36f320a5227734034c6b2d45d26fd22ce654d2c612",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_R05_READER_CHECKPOINT.json.gz": "27fd3b41834106ccd6a0980dfa2bc91cc19806dd3f552ba04246efb400763233",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_R05_READER_CHECKPOINT_PROVENANCE.json": "daf034375facf36e9cc8da4ec0001d7c7b017c315a9155680b4b490e582ec5b9"
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_R05_READER_CHECKPOINT_PROVENANCE.json": "daf034375facf36e9cc8da4ec0001d7c7b017c315a9155680b4b490e582ec5b9",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_NATIVE_R06_OS_TIMEOUT.json": "7e3068026e0f779cd05273b8e4d64e78f7cb923c9241172c6bad7b347682445e"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
{
|
||||
"task_id": "P08-03",
|
||||
"started_at": "2026-10-13T20:49:58.133267+00:00",
|
||||
"ended_at": "2026-10-13T20:51:06.466499+00:00",
|
||||
"syntax": {
|
||||
"method": "ast.parse in memory; no pyc",
|
||||
"files": {
|
||||
"tools/run_p08_normal_placement.py": "191831b4f684bdd7e99b3be6038c15a6830f544d17c941869b1c2a8fbe4a2aa3",
|
||||
"tools/run_p08_normal_placement.py": "5cb1f58664a0bec71c8b5e853749d1c3656e0a2a027201e33fbaa6b0c0291fc6",
|
||||
"tools/check_p08_normal_placement_evidence.py": "dfa37ed586240972e57cbb6a962beb856ba289abd58dbfaf83706d3a227a0116",
|
||||
"tools/test_p08_normal_placement_evidence.py": "d40edc5518e8bfcb59a1da3f55305955581209cfd24a0223c764d6e39c4c361e",
|
||||
"tools/test_p08_normal_placement_evidence.py": "8b98647990e45588e117b6e9ecb87e5a1fcf8d83ddbd6c27da8b0a2edd74da86",
|
||||
"tests/fixtures/p08-03/checker_fixture.py": "508e8bc0f9ff3dc578a3b34fdfb3354fe31e5e604e2d7731cd25511c4261e93a"
|
||||
},
|
||||
"passed": true
|
||||
@@ -20,19 +18,14 @@
|
||||
],
|
||||
"timeout_seconds": 900,
|
||||
"exit_code": 0,
|
||||
"log": "repair-r05-local-checker-tests.log",
|
||||
"log_sha256": "84c71a911af1ea79ad6cb005513ce2d3b245a1cc3577baa014817714dc08d413",
|
||||
"log": "repair-r06-mock-sync-local-checker-tests.log",
|
||||
"log_sha256": "74a86ece9204fadf39c763ec089b46b94ecfb9a04206c4aaeaeadda423879bda",
|
||||
"test_count": 75,
|
||||
"retained_previous_tests": 56,
|
||||
"new_tests": 19,
|
||||
"synthetic_and_actual_snapshot_controls_only": true
|
||||
"failures": 0
|
||||
},
|
||||
"source_and_inputs_unchanged_during_tests": true,
|
||||
"native_engines_started": 0,
|
||||
"OS_operations": 0,
|
||||
"full_regression_executed": false,
|
||||
"acceptance": "pending",
|
||||
"local_source_manifest": "local-source-manifest.json",
|
||||
"local_source_manifest_sha256": "f897d2713f64e1b3338e3e24a9e61859db190643a6eadbd202dde91c5bb0df04",
|
||||
"git_diff_check": "pass"
|
||||
"local_source_manifest_sha256": "a8f442062ef4d4c791e07ad00271c7123c80997bf76897f12c78c303d90173a8"
|
||||
}
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
..................F........................................................
|
||||
======================================================================
|
||||
FAIL: test_mock_native_controller_two_private_pids (__main__.EvidenceTests)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/P08-03-implement/tools/test_p08_normal_placement_evidence.py", line 430, in test_mock_native_controller_two_private_pids
|
||||
self.collector_mock()
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/P08-03-implement/tools/test_p08_normal_placement_evidence.py", line 423, in collector_mock
|
||||
phases = D.collect_os(r,self.root,output,stage,str(Path(self.temp.name)/'synthetic-engine-not-executable'),'1'*40,refs,protected,outer)
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/P08-03-implement/tools/run_p08_normal_placement.py", line 120, in collect_os
|
||||
r.require(passed, 'native OS collection failed: '+str(error or guards or cleanup_errors))
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/P08-03-implement/tools/run_all_tests.py", line 22, in require
|
||||
if not ok: raise AssertionError(reason)
|
||||
AssertionError: native OS collection failed: AssertionError: 900 != 2400
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 75 tests in 64.918s
|
||||
|
||||
FAILED (failures=1)
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
...........................................................................
|
||||
----------------------------------------------------------------------
|
||||
Ran 75 tests in 65.333s
|
||||
|
||||
OK
|
||||
@@ -18,6 +18,7 @@ HERE = Path(__file__).resolve().parent
|
||||
CONTRACT = 'docs/plans/original-completion-2026-10-02/execution/completion_marker_contracts.json'
|
||||
CONDITIONS = ('support_connection', 'invalid_position_reason', 'demolish_rebuild',
|
||||
'pan_zoom_world_identity', 'separate_pid_resume')
|
||||
OS_CHILD_TIMEOUT_SECONDS = 2400
|
||||
RECORDER = 'docs/plans/original-completion-2026-10-02/execution/p08-03/passive_os_placement_recorder.gd'
|
||||
|
||||
def collect_os(r, root, out, stage, engine, commit, refs, protected, outer):
|
||||
@@ -68,6 +69,7 @@ def collect_os(r, root, out, stage, engine, commit, refs, protected, outer):
|
||||
'default_before':protected, 'command':command, 'engine_sha256':r.sha(engine),
|
||||
'controller_sha256':r.sha(root/'tools/run_p08_normal_placement.py'),
|
||||
'recorder_sha256':r.sha(recorder), 'formal_acceptance':False,
|
||||
'timeout_seconds':OS_CHILD_TIMEOUT_SECONDS,
|
||||
'environment':{k:v for k,v in env.items() if k.startswith(('P08_', 'THE_TREE_'))},
|
||||
'environment_sha256':hashlib.sha256(json.dumps(env,sort_keys=True).encode()).hexdigest()}
|
||||
r.write(folder/'started.json', base)
|
||||
@@ -81,7 +83,7 @@ def collect_os(r, root, out, stage, engine, commit, refs, protected, outer):
|
||||
monotonic_ns=time.monotonic_ns(), state='waiting_for_root_cua_requests'))
|
||||
print(json.dumps({'actual_pid':process.pid, 'request_directory':str(pair),
|
||||
'state':'waiting_for_root_cua', 'role':role}), flush=True)
|
||||
exit_code = process.wait(timeout=900)
|
||||
exit_code = process.wait(timeout=base['timeout_seconds'])
|
||||
r.require(exit_code == 0, 'ordinary native OS exit0')
|
||||
raw = (folder/'engine-native.log').read_text()
|
||||
r.require('ERROR:' not in raw and 'SCRIPT ERROR:' not in raw, 'OS native diagnostics')
|
||||
|
||||
@@ -375,6 +375,10 @@ class EvidenceTests(unittest.TestCase):
|
||||
|
||||
def collector_mock(self, fail_wait=False):
|
||||
"""No native engine: Popen, profiles, live engine probes are all mocked."""
|
||||
expected2400 = 2400
|
||||
self.assertEqual(expected2400, D.OS_CHILD_TIMEOUT_SECONDS)
|
||||
def assert2400(receipt):
|
||||
self.assertEqual(expected2400, receipt['timeout_seconds'])
|
||||
output = Path(self.temp.name)/'mock-collection'
|
||||
stage = output/'stage'; stage.mkdir(parents=True)
|
||||
shutil.copyfile(self.root/'project.godot',stage/'project.godot')
|
||||
@@ -392,9 +396,10 @@ class EvidenceTests(unittest.TestCase):
|
||||
profile_text = (stage/'project.godot').read_text()
|
||||
name = __import__('re').search(r'config/custom_user_dir_name="([^"]+)"',profile_text).group(1)
|
||||
pid = 801+len(captured)
|
||||
process = SimpleNamespace(pid=pid)
|
||||
process = SimpleNamespace(pid=pid, role=role)
|
||||
def wait(timeout):
|
||||
self.assertEqual(900,timeout)
|
||||
self.assertEqual(expected2400,timeout)
|
||||
assert2400(C.load(output/('os-runs/'+role+'/started.json')))
|
||||
if fail_wait:
|
||||
raise TimeoutError('mock Root acknowledgement timeout')
|
||||
kw['stdout'].write('P08 passive OS placement: 2 checks, 0 failures\n')
|
||||
@@ -425,6 +430,11 @@ class EvidenceTests(unittest.TestCase):
|
||||
self.assertEqual([p.pid for p in captured],cleaned)
|
||||
self.assertEqual(public,(stage/'project.godot').read_bytes())
|
||||
self.assertTrue((output/'os-runs/writer/ended.json').exists())
|
||||
self.assertEqual(['writer'] if fail_wait else ['writer', 'reader'],
|
||||
[p.role for p in captured])
|
||||
for process in captured:
|
||||
for event in ('started', 'ended'):
|
||||
assert2400(C.load(output/('os-runs/'+process.role+'/'+event+'.json')))
|
||||
|
||||
def test_mock_native_controller_two_private_pids(self):
|
||||
self.collector_mock()
|
||||
|
||||
Reference in New Issue
Block a user