Skip to content

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 AutoHide coroutine with a short test delay. Check both normal time and Time.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.