P18-01-CODE: 原本関係モデル・旧値保全・Runtime保存と読取経路

This commit is contained in:
Agent Control Runner
2026-10-15 20:58:05 +09:00
parent b7a7cc01d4
commit 265ce30f81
6 changed files with 138 additions and 3 deletions
@@ -18,7 +18,7 @@
"template": "Original relationship runtime: <checks> checks, <failures> failures",
"required": true,
"fixed_check_count_used": false,
"source_sha256_at_schema_audit": "845ae200575563400c3497e517137effb7d4d928dd7e6a4990ed8aabdbda5ae6",
"source_sha256_at_schema_audit": "c56bdb99dd43a4e7ceb3ca2861e8db39972c5c4e805126a77e2f7da32ca5bdc9",
"authority": {
"path": "docs/spec/acceptance/P18-01-code-r01.json",
"scope": "new backend suite marker; native execution pending"
@@ -316,3 +316,41 @@ Free space at preview: 3,390,361,600 bytes (about 3.39 GB); single-set admission
382,071,084 bytes. At the conservative prior estimate of 474 MiB per set,
two fresh native sets require 994,050,048 bytes and fit, leaving about 2.39 GB.
Capacity remains a point-in-time preview, not reserved disk or native evidence.
### Repair 6 — actual Opus high/medium feedback
Preserved the held implementation and all representative inputs. Added strict
candidate field validation matching `_register_threshold_candidate`: identifiers
and actor identities accept String/StringName, deduplication_key is String,
threshold/created_at are int, requires_unlock_event is bool, and actor_ids is
an Array of two identities. No numeric bounds or gameplay policy were added.
Unknown candidate fields remain raw facts.
The new Runtime suite now keeps nested legacy and compatibility projection
identical for the exclusive-route positive control and empty-route-only negative
control. Both exercise normal restore and real checksum-valid SaveService package
recovery. Negative checks retain whole Runtime bytes, service identity/bytes,
caller bytes, RESTORE_FAILED, restore_committed=false and no forbidden repair.
Producer-created typed candidates traverse v1, v2 and package recovery; String
identifier compatibility and unknown raw extensions have positive controls.
Each reviewed wrong field type exercises service, normal Runtime and recovery
rejection for both v1 and v2. Native execution remains pending Root ownership.
Ordering disposition: preserve restored raw collection order under the explicit
lossless round-trip contract. Fresh snapshots retain their existing sorted output.
The actual producer issues zero-padded monotonic ids; after restore, new candidates
append without disturbing raw facts. Added a real producer mutation check for
that boundary. No new sorting policy was introduced. The unrelated absolute-path
historical inspector limitation remains deferred.
Static diff whitespace checks passed. All five existing suites retain the exact
SHA-256 values forwarded by Root. Both new test pins remain exact (model unchanged;
Runtime c56bdb99dd43a4e7ceb3ca2861e8db39972c5c4e805126a77e2f7da32ca5bdc9).
Prepare-only: seven suites, 308 parse paths, 1,311 source files, zero engines/stages,
no executed checks and formal_acceptance=false. No native/default-profile/full
regression, git writes, Runner operations, integration or agents were used.
P18-01 remains 30/88, in progress; submitted for Root verification, not accepted.
The final repair-6-prepare.json receipt records 67,504,813 source bytes,
2,674,012,160 free bytes and 382,077,613 single-set admission bytes. Two sets
at the retained conservative 474 MiB estimate require 994,050,048 bytes and fit
at this preview. Capacity is not reserved and must be checked at collection time.
@@ -0,0 +1 @@
{"roster": ["tests/s4/test_original_relationship_model.gd", "tests/s4/test_original_relationship_runtime.gd", "tests/s4/test_relationship_event_service.gd", "tests/s4/test_runtime_relationship_events.gd", "tests/s6/test_runtime_snapshot_serialization.gd", "tests/s6/test_runtime_save_lifecycle.gd", "tests/ui/test_staff_management.gd"], "source_files": 1311, "source_bytes": 67504813, "free_bytes": 2674012160, "conservative_required_bytes": 382077613, "capacity_available": true, "parse_paths": 308, "future_native_phases": 9, "actual_checks": null, "engines": 0, "stages": 0, "formal_acceptance": false}