Files
TheTree_mock/docs/plans/original-completion-2026-10-02/execution/p04-01/REPAIR20_STATUS.md
T

10 KiB
Raw Blame History

Repair20 — source submission; tests NOT RUN

Source-only repair. No Git command, fixture, collector, series, Godot/native, Runner, agent, commit, branch or integration operation was executed. The only code validation performed was Python compile(..., 'exec') in memory, without imports/execution of the edited modules. No acceptance is claimed. Original credit remains 13/88; all 15 conditions + EV, seven domains and three safety outcomes retain their scope. nativeWindows remains pending for every condition. The next submission SHA is assigned by Runner and is not predeclared here.

Changed files:

  • tools/check_p04_order_evidence.py: real checkout/role binding, isolated object stores under B, first-1080 R2 join, schema2 recomputation and r20 collection.
  • p04_native_series.py: B1 departure/despawn/full-state joins, explicit 352/176 S3 checks, confined getter projection, persistence pins and six-header diagnostic.
  • collect_p04_native.py: exclusive new collection at B/audit-support/p04-raw-collect-r20.
  • checker_negative_fixtures.py: retain existing content-case IDs and meanings; isolate their content layer explicitly in the test harness, while the separate real-Git fixture exercises production role binding without a bypass.
  • New build_p04_index.py, checker_role_fixtures.py, checker_encoder_fixtures.py, checker_join_fixtures.py.
  • New REPAIR20_STATUS.md and REPAIR20_CORRIGENDUM.md.

In-memory compilation: all eleven Python files (checker plus ten modules in E) compile. This is syntax validation only; every test below is NOT RUN. The retained C region, NATIVE_RUNS through verify_native, is byte-for-byte equal to T's retained source, SHA256 5d778b3cfab7c139ca03812489508ce9aae90c1d17f8c2249c340f30d1496b3b. verify_product_target itself is also byte-for-byte retained and no longer called. Existing repair17/18/19 status, corrigendum, raw outputs and T's retained archives were not modified. Existing C 25 negatives and series 56 negatives remain required.

R3 source pins

Product source: scripts/operations/operations_coordinator.gd, 130891 bytes, SHA256 871a248ee101b6df543fd5cf0440b5d4b0f02c21fa145a99f0687888c1bc6f90. Runtime verification checks the complete bodies and cross-checks the actual body bytes, lengths and hashes against T/ROOT_ACTUAL_PERSISTENCE_CALL_CHAIN.json.

Function SHA256
get_day_summary 449eef926054cf76c39d6b4c016da3d775d41f2b343b4f8ad57b62c594cb32bb
create_snapshot 8c6e4f000e6df6f0f996445a57c4c17223cae4e1df57a9c2e3a605cf4d9f5309
_snapshot_root_report 96084d76beeac11d165753a82160f789cd47b4dec4b6bb8cd6599a4f5ed08efe
_visit_snapshot_tree 70792369c05882b813632a3c96f934928e9a089d420700cfc0d4c8fa971972a0

The corrigendum lists all six Array header changes. Native persisted comparisons are direct typed-byte comparisons. Raw getter inequality remains diagnostic. The optional projection admits only the supported persistence subset; unsupported composite dictionary keys fail closed. Its negative controls include field loss, extra fields, both numeric-type directions, value changes, nonfinite floats, invalid keys, collisions, unsaveable values, wrong call chain and use on native persisted comparisons. The positive changes only Array headers and StringName.

Condition disposition on this untested source

No condition is newly proven by this dispatch. All tests are NOT RUN.

Condition State and reason pending Root execution
power_stop Open: new B1 959–963 join; real B at 959/960, normal recorded departure then absence, unchanged one-time release, stock 1, wallet 50, no B charge; recovery 25 at 962 and no extra 963 charge.
destruction_stop Pending: retained S3 B4b BROKEN failure and zero-sale/release predicates.
dependency_stop Pending: unchanged C paused service identity/progress/reservation proof.
shift_completion Open: new C first-1080 join; PIDs 77462/77504/77536 ended, 1338-file content 5f, 44→45, ledger_00000006/25G, DAY2 present before handover and zero after, no extra at 1081.
recovery_completion Pending: unchanged C recovery transaction/idempotency join.
same_minute_replay Pending: retained real paid request-resend join; never substituted for settlement replay.
closure_release Pending: retained S3 closure/release plus despawn-aware B1 checks.
exit_release Pending: retained S3 B2 release/completion ordering.
patience_release Pending: retained S3 B3 patience expiration and release.
paused_midnight Pending: unchanged C paused-midnight series.
midnight_settlement Pending: retained S2a nonzero sales/payroll/upkeep/duty joins.
midnight_replay Pending: actual advance_to replay, zero processed minutes and zero daily closes, exact Runtime bytes.
save_restore Open: direct full typed Runtime and formal 4+4 equality remain mandatory; optional getter projection must equal actual persisted day1. A remaining mismatch is explicitly reported, never projected out of native restore.
night_staff_absent Pending: retained S2b WAITING_FOR_STAFF at 1081.
overtime_task Pending: retained S2b interrupt-level-zero task/staff/shift and once-only duty joins.
EV Pending: retained S1 reachable reserved staff power-stop proof and pinned static chain.

Stage A is implemented but NOT RUN. Submission is inferred from actual Git ancestry and scoped diff; the composed product is labelled prospective, not a tested worker game. Integration/final requires an actual two-parent merge and exact recomputed merge tree, native product map/modes and submitted checker/doc patch. Every tracked file and executing module must match HEAD bytes/mode; untracked/ignored files and symlinks fail. Unknown/deleted sources and candidate, code-only or phase declarations cannot authorize a role. Metadata membership comes from the real 9b1a18c tree, without the old count assumptions.

Schema2 retains native source/config/input/environment, real lifecycle PIDs, formal proofs, complete raw references, authority and original-audit uncertainty, domain and reachability mappings. Its entire payload is recomputed from raw by the same checker. It contains no candidate==HEAD pin or Root-passed flag. generation-invocation.json separately records the actual invocation/HEAD.

Root execution order (all commands below NOT RUN)

Run from the clean, actual auto-submitted checkout. Root supplies actual clean merged/final checkout paths later; do not substitute invented SHAs. Preserve all prior output directories and use exclusive fresh output destinations.

export B=/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build
export E=docs/plans/original-completion-2026-10-02/execution/p04-01
export BUILD_OUTPUT_DIR="$B"
export PYTHONDONTWRITEBYTECODE=1
  1. Local file-only and fixture controls on the actual new SHA:
python3 "$E/checker_negative_fixtures.py"
python3 "$E/checker_applicability_fixtures.py" --native-bundle "$B/audit-support/native-first-current"
python3 "$E/checker_native_fixtures.py" "$B/audit-support/native-first-current"
python3 "$E/checker_series_fixtures.py" --build "$B"
python3 "$E/checker_encoder_fixtures.py"
python3 "$E/checker_join_fixtures.py" --build "$B"
  1. Real series against B, then the exclusive r20 collection:
python3 "$E/p04_native_series.py" --build "$B"
python3 "$E/collect_p04_native.py" --build "$B"
  1. After auto-submit, generate the fresh normal Runner index. B/p04-evidence was absent at static inspection. If it is now occupied, retain it and choose an explicit fresh directory with P04_EVIDENCE_DIR for manual checks; do not overwrite. The normal Runner uses B/p04-evidence and must receive that actual generated index.
python3 "$E/build_p04_index.py" --build "$B" --output "$B/p04-evidence" \
  --invocation validate \
  --registered-ref deb1bcb2374eb378b840ca345db952bd8572cb6e \
  --tested-ref 5f6bc11d6bb6e92d22d787989b219fef3a435bc1
  1. Checker on submitted, merged and final actual checkouts. Real temp-Git fixtures need the generated index, so their execution follows step 3, not a fabricated pre-submission index. They create throwaway repositories/objects only under B.
python3 "$E/checker_role_fixtures.py" --build "$B" --evidence "$B/p04-evidence"
python3 tools/check_p04_order_evidence.py --verify-only
python3 "$P04_MERGED_CHECKOUT/tools/check_p04_order_evidence.py" --verify-only
python3 "$P04_FINAL_CHECKOUT/tools/check_p04_order_evidence.py" --verify-only

The same index works in all three roles. For separate invocation records, the generator also accepts --invocation prepare-integration and --invocation final with explicit fresh output paths while executing from those actual checkouts. These labels are receipt metadata and grant no role. Root must respect the normal Runner state machine: its prepare_integration requires prior formal review. An isolated local prospective-merge control does not replace that review or move Runner state. runner.validate("P04-01"), runner.prepare_integration("P04-01") and runner.integrate("P04-01") remain Root operations only.

  1. Mandatory whole validation and full 178-game regression once on exact final sources. The supplied Runner core exposes runner.verify("P04-01", final_checkout, actual_final_sha, "final"); retain every configured mandatory validation, then run the existing guarded full-game runner:
python3 "$P04_FINAL_CHECKOUT/tools/run_all_tests.py" \
  --project-root "$P04_FINAL_CHECKOUT" --output "$B/p04-final-product-full-r01"

Do not change timeout, marker contracts or suite policy, splice phases, or reuse historical 177-suite proof. Confirm the final selected source map and 178-suite roster, and preserve source/default-profile invariance. This command is the one full run, not permission for an additional make test native run.

  1. Independent Opus review using Root's existing reviewer route, with exact source/validation materials mirrored into the frozen checkout's .review-material. The supplied core's formal method is runner.review("P04-01"); that method reviews the actual submitted revision and requires its validation evidence. Any additional final-composition Opus review must explicitly receive the actual final revision. The external commander/Opus CLI entry point and installed Runner configuration were not supplied in this checkout, so no guessed shell command is asserted for them. Root retains its existing formal validation/review/integration workflow.

The absent external entry-point/configuration details are handoff context gaps, not evidence of a pass, and not a blocker solely because Root testing is pending.