Stabilization batch 02¶
Scope: verify GAME-12 (popup timing while paused) and GAME-05 (Unity script/class binding). One bounded batch; no new game features, save migration, or freeze fix.
Checks¶
- Resolve the gameplay-initializer and services-root script assets through their existing GUIDs, then check
MonoScript.GetClass()against the intended runtime types. This tests Unity's imported binding, not filename spelling alone. - Enter Play Mode in a new empty scene and start the existing popup's
AutoHidecoroutine with a short test delay. Check both normal time andTime.timeScale == 0, including that hiding is delayed rather than immediate. Restore time scale and remove test objects afterward.
The popup check does not call controller detection, initialize saves/services, load the game's boot/menu/stage scenes, or contact Steam/backend. It does not establish physical-controller reconnect or full UI wiring behavior.
Baseline: both script GUIDs resolve to the intended classes, and the popup hides with normal time. With time scale zero it remains visible past the three-second check timeout despite thousands of advancing frames. The corrected test setup therefore records 3/4 checks passing before the production change.
Only the popup delay is changed, from WaitForSeconds to WaitForSecondsRealtime. The two script files and their metadata are left untouched: the naming mismatch is not a failed Unity binding in this checkout.
Status: completed at the owner's one-batch checkpoint. GAME-12 is fixed and Play Mode regression-verified. GAME-05 is resolved by imported-type evidence without a production rename. Full player acceptance and the menu freeze remain pending.
Results¶
| Check | Original popup code | Corrected popup code |
|---|---|---|
| Gameplay initializer GUID/class | PASS | PASS, unchanged source/metadata |
| Services root GUID/class | PASS | PASS, unchanged source/metadata |
| Normal-time popup auto-hide | PASS | PASS |
| Paused-game popup auto-hide | FAIL: stayed visible beyond three real seconds while frames advanced | PASS: hides after its short configured delay with Time.timeScale == 0 |
The corrected baseline harness logged Batch 02: 3/4 checks passed; 4/4 executed. and exited 1. After the single production-line change, the same harness logged Batch 02: 4/4 checks passed; 4/4 executed. and exited 0. Logs are temporarily at /tmp/tinychaos-batch02-before.log and /tmp/tinychaos-batch02-after.log; sanitized evidence is retained here instead of committing raw launch logs.
The test extends the existing Editor-only runner. Only one production line changed; no initializer/service filename, GUID, scene, prefab, save file, or audio asset changed. Unity-generated Linux package edits were restored to the exact pre-batch bytes. Earlier batch-01 checks were not repeated because their production methods were unchanged; the current run compiled the project and exercised this batch's affected paths.
Both baseline and patched runs produced existing generator warnings plus Unity Version Control configuration/workspace errors and shutdown callback exceptions. The assertions and final exit status pass after the correction, but these diagnostics are not declared fixed or ignored as harmless; TOOL-01 retains the tooling validation gap. They do not establish the reported standalone main-menu freeze's cause.
The first harness attempt had a mistyped services GUID and did not advance the normal-time coroutine. Those setup failures are not gameplay evidence. The corrected harness uses the exact metadata GUID, runs in the background, explicitly unpauses the Editor, and queues player-loop updates; game time scale zero is tested separately from an Editor pause.
The asynchronous Play Mode entry point is TinyChaos.EditorTools.StabilizationChecks.RunBatch02. Launch the Editor directly without -quit; the runner explicitly exits after the Play Mode checks. The CLI run wrapper used for synchronous batch 01 adds -quit, which is unsuitable for a method that returns before asynchronous checks finish.
Production Windows IL2CPP validation remains on the other PC; these checks run locally on Linux. Original audio deletion is preserved. Package/settings bytes and the two original script/metadata hashes were captured before the run.
At this checkpoint, four source defects have targeted passing regression evidence across batches 01/02. The imported-class concern and missing-material lead are resolved without gameplay changes. Remaining findings still require disposition. Stop for the next owner check-in; no feature implementation or additional batch is started.