Save The Tree implementation and acceptance work in progress
Preserve production code, regression fixtures, audio assets and provenance, test infrastructure, and the original-completion plan and progress ledger. Final game and Windows acceptance remain pending; excluded local artifacts and native experiments are not part of this snapshot.
This commit is contained in:
@@ -0,0 +1,196 @@
|
||||
{
|
||||
"review_date_jst": "2026-10-02",
|
||||
"reviewer": "atomic_requirements independent task",
|
||||
"review_mode": "read-only code and retained evidence audit",
|
||||
"production_edits": 0,
|
||||
"new_godot_runs": 0,
|
||||
"source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4",
|
||||
"reviewed_source_sha256": {
|
||||
"scripts/core/save_service.gd": "7c107a509b3afccb478ba89d051fbaa9a8c93165326fac8e4cef2249c05879d0",
|
||||
"scripts/core/simulation_snapshot.gd": "fc528a3d1db1f439c10f70d6cba2f72bd65abc0d3866eb8b582df60918af0adf",
|
||||
"autoload/simulation_runtime.gd": "d3ad4aab6ded19eb137c5494481cc7333e846746a25b18dbad3c8b663e9f6b72",
|
||||
"tests/s6/test_save_preflight.gd": "49e24247649839b6f50d19b2284368efb7f8f8b189c5010491ad428e97c1c8b9"
|
||||
},
|
||||
"focused_evidence": {
|
||||
"checks": 485,
|
||||
"suites": 7,
|
||||
"all_passed_verified": true,
|
||||
"logs": [
|
||||
{
|
||||
"test": "tests/s6/test_save_preflight.gd",
|
||||
"exit_code": 0,
|
||||
"passed": true,
|
||||
"checks": 128,
|
||||
"seconds": 3.15,
|
||||
"log": "tests__s6__test_save_preflight.gd-r02.log",
|
||||
"log_sha256": "171e2af4cdd6c9d00928110642f20de6d678f300947d16b53e4485f4988206c9",
|
||||
"completion_check_counts": [
|
||||
128
|
||||
],
|
||||
"completion_matches": true,
|
||||
"passed_verified": true
|
||||
},
|
||||
{
|
||||
"test": "tests/s6/test_save_operations.gd",
|
||||
"exit_code": 0,
|
||||
"passed": true,
|
||||
"checks": 127,
|
||||
"seconds": 2.79,
|
||||
"log": "tests__s6__test_save_operations.gd-r02.log",
|
||||
"log_sha256": "c353636c82f54e49a88ab56ca000c14a78687921e5cc5ceeea8982a2275ed2c9",
|
||||
"completion_check_counts": [
|
||||
127
|
||||
],
|
||||
"completion_matches": true,
|
||||
"passed_verified": true
|
||||
},
|
||||
{
|
||||
"test": "tests/s6/test_runtime_save_lifecycle.gd",
|
||||
"exit_code": 0,
|
||||
"passed": true,
|
||||
"checks": 96,
|
||||
"seconds": 6.68,
|
||||
"log": "tests__s6__test_runtime_save_lifecycle.gd-r02.log",
|
||||
"log_sha256": "6ab68137561c286f85cfb1b7f970023207659cb061f8ba1db41e3ed1f1a33157",
|
||||
"completion_check_counts": [
|
||||
96
|
||||
],
|
||||
"completion_matches": true,
|
||||
"passed_verified": true
|
||||
},
|
||||
{
|
||||
"test": "tests/run_tests.gd",
|
||||
"exit_code": 0,
|
||||
"passed": true,
|
||||
"checks": 73,
|
||||
"seconds": 1.13,
|
||||
"log": "tests__run_tests.gd-r02.log",
|
||||
"log_sha256": "91ecdbe39f081ef6124499b9cec042600e7154d72c89f029298966aa560606ab",
|
||||
"completion_check_counts": [
|
||||
73
|
||||
],
|
||||
"completion_matches": true,
|
||||
"passed_verified": true
|
||||
},
|
||||
{
|
||||
"test": "tests/transport/test_transport_save.gd",
|
||||
"exit_code": 0,
|
||||
"passed": true,
|
||||
"checks": 29,
|
||||
"seconds": 1.7,
|
||||
"log": "tests__transport__test_transport_save.gd-r02.log",
|
||||
"log_sha256": "f0d51dfd583cd9b08d19790a39fedc9169c8802cab72f7817d9ecfa40fe93306",
|
||||
"completion_check_counts": [
|
||||
29
|
||||
],
|
||||
"completion_matches": true,
|
||||
"passed_verified": true
|
||||
},
|
||||
{
|
||||
"test": "tests/ui/test_dimension_migration_ui.gd",
|
||||
"exit_code": 0,
|
||||
"passed": true,
|
||||
"checks": 12,
|
||||
"seconds": 2.33,
|
||||
"log": "tests__ui__test_dimension_migration_ui.gd-r02.log",
|
||||
"log_sha256": "db9f3e78c7670558b9871c1c78abbad8be27bb45fd8d3c79e7535df4d3adfe4d",
|
||||
"completion_check_counts": [
|
||||
12
|
||||
],
|
||||
"completion_matches": true,
|
||||
"passed_verified": true
|
||||
},
|
||||
{
|
||||
"test": "tests/supply/test_supply_save_migration.gd",
|
||||
"exit_code": 0,
|
||||
"passed": true,
|
||||
"checks": 20,
|
||||
"seconds": 1.18,
|
||||
"log": "tests__supply__test_supply_save_migration.gd-r02.log",
|
||||
"log_sha256": "b26de7e09b864e70fc36822dec40851ef08a056404e25373a9c1d6e26d45211d",
|
||||
"completion_check_counts": [
|
||||
20
|
||||
],
|
||||
"completion_matches": true,
|
||||
"passed_verified": true
|
||||
}
|
||||
],
|
||||
"source_map_count": 318,
|
||||
"source_map_drift_paths": [
|
||||
"tests/performance/test_digest_performance.gd"
|
||||
],
|
||||
"changed_files_pins_match": true
|
||||
},
|
||||
"new_difference_induced_major_findings": 0,
|
||||
"findings": [
|
||||
{
|
||||
"id": "SFR-01",
|
||||
"priority": 1,
|
||||
"state": "candidate_only_static_reproduction_path",
|
||||
"preexisting": true,
|
||||
"file": "scripts/core/save_service.gd",
|
||||
"line": 932,
|
||||
"symbol": "_reconcile_interrupted_formal_save",
|
||||
"condition": "identifiable unsupported formal version + valid transaction marker + current tmp/bak",
|
||||
"effect": "formal package deleted/replaced by old backup before unsupported-version rejection",
|
||||
"affected_entries": [
|
||||
"load_snapshot",
|
||||
"load_with_recovery",
|
||||
"inspect_recovery_candidates",
|
||||
"migrate_save",
|
||||
"load_recovery_candidate"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "SFR-02",
|
||||
"priority": 2,
|
||||
"state": "candidate_only_static_reproduction_path",
|
||||
"preexisting": true,
|
||||
"file": "scripts/core/save_service.gd",
|
||||
"line": 334,
|
||||
"symbol": "_load_recovery_candidate_impl",
|
||||
"condition": "explicit backup selection + stale marker/tmp, formal either present or missing",
|
||||
"effect": "reconcile may delete tmp/marker or promote tmp before nominal read_only result"
|
||||
}
|
||||
],
|
||||
"candidate_artifact": "artifacts/original-completion-2026-10-02/p03-recovery-readonly-candidate/candidate_receipt.json",
|
||||
"adoption_recommendation": "Reproduce and verify both preservation defects in an isolated candidate stage before claiming P03 acceptance; no main edits during ongoing full regression.",
|
||||
"all_p03_accepted": false,
|
||||
"full157_regression_result_included": false,
|
||||
"limitations": [
|
||||
"128 preflight does not combine unknown formal with valid marker/current backup",
|
||||
"256 MiB is a serialized world limit, not total peak memory",
|
||||
"inclusive upper-size test stops at manifest mismatch, not successful full-size decompression",
|
||||
"20000-cell measurement is world-only, not full Runtime acceptance",
|
||||
"new candidate has not been executed"
|
||||
],
|
||||
"report_sha256": "57de52db51a6b0b3dcbcf20f6df3a825b83ba2d9a9a7707e9bab7026cb3fc6c6",
|
||||
"existing_contract_static_review": {
|
||||
"save_operations_lines": [
|
||||
349,
|
||||
450
|
||||
],
|
||||
"runtime_save_lifecycle_lines": [
|
||||
170,
|
||||
200,
|
||||
230,
|
||||
380
|
||||
],
|
||||
"preserved": [
|
||||
"registry continuity and purity",
|
||||
"current schema rejection",
|
||||
"registered legacy migration and exact original backup",
|
||||
"failed migration original preservation",
|
||||
"current-format interrupted migration backup/promotion/rollback",
|
||||
"current-format normal recovery"
|
||||
],
|
||||
"strengthened": [
|
||||
"unsupported recognizable formal never replaced before rejection",
|
||||
"explicit candidate read does not reconcile",
|
||||
"registered legacy failed source keeps normal stale artifacts"
|
||||
],
|
||||
"candidate_execution_verified": false,
|
||||
"candidate_driver_operations": 8,
|
||||
"candidate_foreign_shapes": 5
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user