10 KiB
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 atB/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.mdandREPAIR20_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
- 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"
- 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"
- 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
- 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.
- 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.
- 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.