Files
TheTree_mock/docs/plans/original-completion-2026-10-02/execution/p23-03/WORKER_STATUS.md
T

20 KiB
Raw Blame History

P23-03 worker status — static-complete submission

Contract base: 860136f7099f5e3aee99da5798a627a77f2d8eea. This finalization preserves every pre-existing modified and untracked file. Static-complete is supported by the wiring inspection and local checks below. No acceptance claim is made. No Godot, native, OS collector, Runner, full regression, git write, branch change, or other worker was used.

Current wiring confirmed by git diff and rg only

Line numbers refer to the current candidate.

  • Checker tools/check_p23_life_observation_evidence.py: check at 1189 reaches inspect_native_phases (1162) at 1215 and inspect_stream (950) at 1220/1226. The stream inspection invokes compare_rest (531) at 968, compare_motion (738) at 974, and compare_actor_geometry (800) at 975, alongside actor, room, queue, traffic, goods, badge and cabin checks.
  • check reaches inspect_os_receipt (1038), inspect_os_requests (1092), and inspect_resume (1070) at 1249, 1250 and 1257. Request inspection calls screenshot_pixels (184) at 1143, which invokes inspect_conversion (158) at 191 for JPEG evidence; rectangle/pixel checking follows at 1154.
  • check builds executed check sets at 1270–1272, then calls BLOCKERS at 1273, reaching condition_matrix (982) through 1000. All original seven CONDITIONS and six CATEGORIES (room, queue, EV, staff, goods, business state, represented by the key business) remain required. Missing executed check names produce pending/deficits; no fixed-true matrix.
  • Collector tools/run_p23_life_observation.py: collect_os (110) invokes collect_screenshots (26) at 186. JPEG collection invokes convert_screenshot (73) at 55; conversion calls inspect_conversion at 107. Raw CUA bytes and tool-call bindings are retained separately from converted PNG and conversion receipts. This wiring was inspected, not run.
  • diagnostic_stream.gd captures hash-addressed rest_audit and motion at 70–78. rest_audit (89) records selection inputs, route/cost probes, locks/transit and comparison-only Runtime output. No stored-rest field was introduced. The source-grounded correction supersedes the old stored-state proposal below. MotionObserver retains two draw frames, not whole Runtime state per frame.
  • Native route: tests/ui/test_p23_life_observation.gd at 18–21 invokes layout_comparison.gd; the runner invokes that UI test at 309 for A/B. Layout comparison preloads diagnostics at 5 and starts watching at 65.
  • Normal OS route is separate from the native UI component test: runner RECORDER at 24 is copied/launched at 145/152; passive_os_recorder.gd preloads passive_observation.gd at 2 and calls its inherited run at 6. passive_observation.gd extends observation.gd at 1; observation.gd preloads diagnostics/layout comparison at 3–4 and watches the real preview at 26. These fixtures are reached through the OS runner, not directly preloaded by the native UI test.
  • Existing mutation negatives cover conversion provenance, rest operands, motion history, rectangle/pixel transforms, process/source/profile guards, formal members/distinct PID/ACK, and every condition/category matrix cell. No concrete missing call or negative was found; no code hardening was added.

Exact local commands and real results

  • git status --short, git diff --stat, and targeted git diff -- for the collector, UI test, diagnostic fixture and marker: inspected existing changes without modifying git state.
  • Targeted rg -n / rg -n -A... searches for function definitions, calls, fixture preloads/extends, rest_audit/motion, CONDITIONS/CATEGORIES and unittest methods in the three P23 tools and five P23 fixtures/UI test: wiring results recorded above. No Runtime/source audit or Phase0 repetition.
  • python3 -m py_compile tools/run_p23_life_observation.py tools/check_p23_life_observation_evidence.py tools/test_p23_life_observation_evidence.py: initial attempt failed because the interpreter's default cache destination under Library/Caches was not writable; no syntax failure was reported.
  • PYTHONPYCACHEPREFIX=docs/plans/original-completion-2026-10-02/execution/p23-03/.finalization-pycache python3 -m py_compile tools/run_p23_life_observation.py tools/check_p23_life_observation_evidence.py tools/test_p23_life_observation_evidence.py: PASS, exit 0 for all three tools.
  • python3 -B tools/test_p23_life_observation_evidence.py: 27 test methods run, 27 passed, 0 failures/errors; reported 0.044 seconds. These are synthetic checker tests, not native/OS evidence.
  • git diff --check: PASS, exit 0; repeated after this status rewrite.
  • Read-only python3 -B -c JSON/hash/path assertions using git show 860136f7099f5e3aee99da5798a627a77f2d8eea:<path>, git diff --name-only <base> and git ls-files --others --exclude-standard: PASS. All old marker metadata/rows equal base; exactly one appended P23-03 required source-authority entry; test SHA cc7049e1c3919585caeefd1747be12fbf3fa52141fcdb980929c8a16fd7e2ee1 matches current bytes. suite-policy.json equals base byte-for-byte. All 16 changed/untracked paths relative to base are allowed.
  • The immutable spec SHA matches 8568457df849ef587c731f072d77244ef5420fc4e1190c5069cfd6cfeea9c89f using the existing checker's read_text().strip().encode() convention. An initial extra raw-byte SHA assertion failed (raw file SHA 1a925e0d7f5c1c9f28670d29dd0fdc5aa48f4d5415946d6de4c15e1d83b5ed66); normalized verification passed and the spec has no diff against base.
  • An initial inline validation here-document could not create its shell temporary file; rerun via python3 -B -c succeeded.
  • Removed only the temporary .finalization-pycache tree created by this run. No pre-existing dirty/untracked material was removed.

Root work still pending — expected, not worker blockers

Native Godot execution; actual OS collector with screenshots for both layouts and all six categories, FRONT/BACK and ordinary pan/zoom; formal save and distinct actual PID normal resume; one full exact-candidate 177-suite regression; independent Opus all-condition review. These must precede any acceptance determination. Constructibility, visual correctness and same-demand improvement have not been claimed from static checks.

Superseded history — retained verbatim

The following earlier blocked statuses (including the 19-method and "not yet wired" claims) describe previous candidates and are superseded by the current wiring and results above.

Current RUN continuation — blocked on stored-rest-destination contract

All seven pre-existing modified files and three untracked fixtures were retained. No git writes, agents, Godot, collector execution, Runner or full regression. This is not a genuine completed submission and makes no acceptance claim. Root native/OS evidence remains pending, independently of this source blocker.

Changes completed in this continuation:

  • Removed mandatory left-button drag and its pan-change assertion. Camera screenshots now use ordinary-wheel-zoom, pan-mode-button, move-mode-wheel-pan. Existing non-Ctrl event observation is preserved.
  • Added stdlib PNG decoding with CRC/chunk/end checks, RGB/RGBA and filters 0–4. JPEG dimensions reuse the P08 helper; no JPEG decoder or PIL was added.
  • Added conversion receipt inspection and Root-only convert_screenshot helper: separate output, original CUA hash/call binding, sips executable SHA/argv, output digests, decoded PNG and magic-derived dimension equality. No actual sips conversion was run here. This helper is not yet wired into collect_os.
  • Added four image test methods including all filters, CRC corruption, trailing data, converter SHA/argv, raw CUA hash, dimensions and missing-conversion negatives.

Actually executed: 19 checker unittest methods passed; py_compile passed for the three P23 Python tools. Temporary compilation outputs were removed. Synthetic image tests are checker tests, never native screenshot evidence.

Concrete contract gap (targeted dependency inspection, not a repeated Phase0 audit):

  • autoload/simulation_runtime.gd:13109–13125 computes get_staff_rest_report by scanning facilities and selecting a minimum-cost route on every call. The selected facility and eligibility are local variables, not stored state.
  • autoload/simulation_runtime.gd:8783–8785 calls that query and passes only its cell to advance_staff_commute. At :12656–12690 the movement function either returns without movement or emits a STAFF_MOVED event with a target_cell; it does not persist a selected rest facility ID or eligibility. Movement events cannot supply a current destination for stationary/nonmoving staff.
  • scripts/staff/staff_runtime.gd:282–315 serializes current_cell, assignment, task and path_handle but no rest destination/eligibility. Runtime snapshot assembly at :511–570 has no stored rest-selection model. PathService's snapshot at scripts/world/path_service.gd:1606 stores path/actor projections, not the selected rest facility and its eligibility.

Thus recipe (3), "rest destination must equal the typed stored destination and its eligibility; do not re-simulate AI", has no authoritative stored operand. Calling get_staff_rest_report from a fixture would rerun selection, and copying its output into a purported stored-state field would manufacture authority. These Runtime/staff/path files are outside allowed_paths and remain unchanged.

Read source SHA256:

  • Runtime: 4696df4a77feb465a5a3ba8b806569f7bcbe1d03c88289acfb78a3928f307d67
  • StaffRuntime: 807a417bc7866c97cd6d8f5c1368b5480a2d9fd685a2a47a978e81482bf522b5
  • PathService: 447135729a1106639a6eee6754af3195c8a8b458ca26980ae91fa39d80dcfbd4

Minimal separate proposal for Root/Opus, not applied: authorize an authoritative rest-decision record at the existing Runtime selection point, including selected facility/cell, eligibility and decision time, with explicit invalidation and snapshot/restore semantics. Alternatively Root must identify an existing typed stored field that has those semantics. No worker relaxation of this gate.

Remaining source implementation is explicit: collector conversion integration, all row/rectangle bindings, motion history, distinct-PID/formal ACK checker, dynamic matrix and the remaining requested negatives. Existing fail-closed whole-unit behavior remains; no unconditional PASS or new fail stub was added. The 30/88 denominator, seven conditions, six categories and old suite policies are unchanged. Do not begin acceptance assuming only Root evidence is missing.


Previous status retained as history:

Repair from source 03100be — blocked, implementation incomplete

Source checkout HEAD confirmed read-only: 03100beabeb55caac03f53db3d1f399b424df517. Contract base remains 860136f7099f5e3aee99da5798a627a77f2d8eea. No git writes, Godot, Runner, OS input, regression, or other workers were used. No acceptance or partial credit is claimed. No out-of-scope defect or missing Runtime capability was established.

Changes in this repair:

  • Added registered --verify-only CLI, concrete missing-index deficits, immutable fixture/spec/contract/baseline/AGENTS pins and a normative P23 plan-section hash. Full-plan SHA is separate provenance only. Existing diagnostic/layout CLI modes retained.
  • Removed fixture-side begin_leaving/despawn_guest calls; Runtime owns continued guest behavior. Added A/B native entry to the existing component test and updated the existing single marker row SHA.
  • Added observation.gd extending P08 placement helpers unchanged, with real supply scenario commands/settings, common definition-derived construction budget, seed806042, relocated common cafeteria/kitchen at x6 to avoid declared B elevator footprint, sparse typed captures, normal save/load and whole formal-model comparisons. These construction prechecks have not been executed.
  • Added passive request/ACK endpoint and recorder for four layout/role combinations, live FRONT/BACK buttons and PanModeButton, ordinary non-Ctrl wheel zoom/pan and ordinary pan drag only. No deferred P23-02 held-gesture credit.
  • Replaced the collector stub with an adaptation of P08 collect/collect_os using run_all_tests helpers and owned gates, fresh outputs/profiles, native import/parse/layout phases, four OS roles and formal reader copies. Records the current interpreter PIL availability; raw screenshot bytes are left untouched. Collector has not been executed.
  • Checker now inspects available native/OS streams, comparisons and basic process/source/profile guards, but explicitly fails closed for outstanding whole-unit gates.

Local verification actually executed: 16 Python unittest cases PASS; ast.parse for the three changed Python tools PASS; one P23 marker row and exact source SHA PASS. No engine or evidence-collector execution.

Remaining IMPLEMENTATION, separate from missing Root evidence:

  1. Complete screenshot byte-magic dimensions, stdlib PNG pixel/rect checks, and indexed Root JPEG-to-lossless-PNG conversion binding to raw hash/converter provenance. PIL absence is not waived.
  2. Add prior-frame visual-position/frame-delta evidence and independent interpolation checks; compare rest destinations with typed stored destination/eligibility without re-simulating AI.
  3. Bind all request report rows to viewport rectangles/affine and screenshots; current endpoint retains report plus viewport-to-screen transform but does not yet produce every required viewport row rectangle.
  4. Finish independent distinct-PID/formal-member/resume-state/load-ACK gates. Fixture assertions do not replace checker proof.
  5. Replace hard failure condition-matrix deficits with exact completed check names only after all seven independent gates exist; finish all requested category and infrastructure negatives. Current check intentionally cannot pass whole-unit integrity.
  6. Statically review collector lifecycle/failure receipts and fixture category coverage; real constructibility and EV/passenger/queue/goods coverage remain unproved.

Root native, actual OS for A/B, formal distinct-PID resume, exact-final full regression, independent review, integration/final/ledger: all PENDING. This candidate is blocked on remaining in-scope implementation, not ready for acceptance or a claim that missing Root evidence is the only gap.


Previous worker status retained verbatim as history (superseded by the repair status above):

P23-03 worker status: submitted static work, implementation incomplete

Base commit: 860136f7099f5e3aee99da5798a627a77f2d8eea. This submission preserves the previous dirty work and adds genuine static implementation. It is not acceptance-ready. No external Runtime capability gap or out-of-scope defect has been established. Remaining implementation is listed separately from pending Root evidence; no acceptance credit is claimed.

Inspection and changes in this repair

  • Re-read the recorded direction, Phase 0 map, previous status and renderer diff. The single frame builder supplies drawing and the deep-copy public report. No renderer redesign or additional renderer was introduced. Existing renderer and component test bytes were retained.
  • Added tests/fixtures/p23-03/layout_comparison.gd. Both layouts initialize the public Runtime with seed 806042, reset budget and clock, identical production defaults and the same recorded 48-person arrival script. Commands build the existing elevator and corridors; B adds only the declared second elevator. Preparation time derives from registered definition build times.
  • Predeclared metric: sum of destination-arrival minutes for the entire cohort. The checker rejects incomplete cohorts, changed actual arrival payloads, additional layout changes, changed initial state, and non-strict improvement. No observed improvement is claimed: the fixture has not run.
  • Extended diagnostic_stream with hash-addressed typed event/input records. The fixture records actual command results, domain movement events and per-minute guest/path/EV/facility projections, including service history, queues and density. Whole aggregate state/report pairs are sparse (30-minute intervals); the existing P08 typed encoder is reused without truncation.
  • Extended independent checking of room service/rescue occupants and business enum fields, queue allocation/overflow, shared transforms, traffic, logistics report selection/order and cabin geometry. Added Rect2 and vector-key decode. The checker still refuses whole-unit acceptance.

Exact remaining implementation (not external blockers)

  1. Finish rest destination selection from typed path costs and event/defense locks. Current room check validates eligibility and reported rest references; it does not independently prove which rest destination Runtime selected.
  2. Finish every actor/passenger mode and geometry, including cleaning, rest/rescue/service slots, visual track history, badge text and screenshot rect/pixel provenance. Cabin endpoints and rectangles are checked, but unpaused prior-frame interpolation origin is not independently established.
  3. Complete A/B definition/source/production pins and command/event/path cross-validation, invoke the fixture from the Root collector, and add representative real operational scenarios for all six categories and BACK. The added experiment covers the fixed-demand FRONT transport comparison; it does not establish actual service purchasing or all-six-category coverage.
  4. Replace run_p23_life_observation.py readiness stub with the actual Root collector using P08 owned-process/profile/source/engine/ordinary-audio and CUA request/ACK helpers. It remains unchanged; it launches nothing. Formal save, distinct-PID normal resume, both-layout FRONT/BACK/pan/zoom, complete CUA receipts, all-run cleanup/protection and failure history remain to be wired and independently checked.
  5. Add missing meaningful negatives, especially normal OS/distinct-PID resume, visual provenance and the remaining rest/motion branches. Existing 12 local tests are not a complete seven-condition test matrix.

Steps (2) and (3) of the repair direction are therefore still incomplete; step (4) is not implemented. This is a partial static submission, not a claim that the requested repair is finished. Do not begin acceptance on an assumption that all worker deliverables are complete.

Checks actually run in this repair

  • python3 -B tools/test_p23_life_observation_evidence.py: 12 test methods, zero failures. Synthetic Python examples validate rejection logic only.
  • AST syntax: all three P23 Python tools parsed.
  • Marker JSON: old rows and metadata unchanged; exactly one appended row; its SHA matches the unchanged GDScript component test.
  • git diff --check: passed.
  • No Godot parsing/runtime, native, OS, Runner or full regression execution.
  • No git writes, subagents, integration, new assets or production changes. suite-policy.json was not changed; no new suite was registered.

Source SHA256 at local checks

File SHA256
scenes/main/world_preview.gd add770377c190a5ccdde95379539de9753f7dabc703c1d58452ba590c6eda2f0
scripts/ui/room_presentation.gd 55340b7b623532e861be1d21225635fd9169e2e40928597c1cd0458b99524dd9
tests/ui/test_p23_life_observation.gd b9afa66ec73d3a5cadf86f9a71f0d13f5b085c3cc9a534dfe29b2bed0e2e76a0
tests/fixtures/p23-03/diagnostic_stream.gd ff178a094fc310b0640d923a15058c6f6fcf859551c14f6428a5709dcd24260e
tests/fixtures/p23-03/layout_comparison.gd ddf00268b8e32e3c5c078ebb57ada321382ecc7c5fbd87efad7e9dfbe768df6b
tools/run_p23_life_observation.py 53c2f0638d4a861cf4fcb664504c25df33ae5478207867654f1c8cdf58fa23c7
tools/check_p23_life_observation_evidence.py 318b253a08248a753b88902e382edc5f01cbce6f1ed8092359698b69d3bb0503
tools/test_p23_life_observation_evidence.py 0f20d3de20b44f46f8738c0d022fcc1179656014e85fe31754f00b87ec2c288a

Root evidence: pending

After genuine completion and freezing: both-layout native and actual normal OS observation, full CUA trace, formal save and distinct-PID resume, mandatory exact version full regression and independent Opus review. These absent Root results are pending, not blocked. The fixed 30-package / 88-unit denominator and all P08/P22/P25/Windows/held-gesture/performance exclusions remain unchanged.