Skip to content

Stabilization batch 13

Scope: follow the existing character/stage selection route into an arena, fixing the verified difficulty-button blocker. No feature, difficulty/unlock policy, production C#, save, or dependency change. The repair changes only MainMenu scene bindings and extends the existing Editor-only checks.

Player baseline and repair

Reuse the verified batch-12 Linux IL2CPP artifact, GameAssembly SHA-256 af25a255299676d9fe1ffaab5f79a20d0adeddb3fdd8a52fb7132fde4f1fee8f, with a fresh child profile under /tmp/tinychaos-batch13-profile. Exact executable/PID/window/focus guards protect inputs and screenshots. Before this batch, capture normal-profile paths/hashes and bytes, including Unity engine preferences.

Actual Play opens the character page, showing the default Soldier/Alex, then Select Stage opens Meadow and the difficulty buttons. Clicking Normal and Easy leaves the stage screen unchanged, without a Play marker or launch exception. Inspecting MainMenu confirms that all five difficulty events target fileID 0 with stale target type MenuController, while the existing handler is MainMenuManager.PlayGame(int).

Change only those five target/type pairs to existing MainMenuManager component 455391815. Preserve methods, integer call mode, the five difficulty values 0–4, RuntimeOnly call states, component IDs, other scene bytes, and CRLF. This is ten serialized-line corrections, not a new launch flow. GAME-21 owns the finding.

Regression evidence

Use -executeMethod TinyChaos.EditorTools.StabilizationChecks.RunBatch13 with the synchronous CLI workflow.

Imported-scene check Original Repaired
All five difficulty buttons target the existing launch manager/type Fail Pass
Five distinct integer difficulty routes remain 0–4 Pass Pass
Actual persistent-event invocation with transition guarded Fail: target missing Pass
Total / CLI exit 1/3 / 6 (Editor 1) 3/3 / 0

The preview temporarily enables EditorAndRuntime listener execution and sets the existing transition guard before invoking the buttons, then closes without saving. It avoids game/save/service/scene-launch effects. This validates binding/guarded dispatch; real scene entry still needs the rebuilt player. Raw logs remain outside Git at /tmp/tinychaos-batch13-before.log and /tmp/tinychaos-batch13-after.log.

Player verification

The installed CLI rebuilt StandaloneLinux64 with Unity 6000.2.8f1 successfully, terminal exit 0. UTC build start/end on 2026-10-24: 09:07:12.078 / 09:10:36.524. Provenance is committed revision 5347e4600bb897ca1c9fa8cb80cb095f6ee0ce0a, dirty. Artifact /tmp/tinychaos-batch13-linux/TinyChaos.x86_64; native GameAssembly remains af25a255299676d9fe1ffaab5f79a20d0adeddb3fdd8a52fb7132fde4f1fee8f, as expected for a scene/Editor-only repair.

Repeat with a fresh profile /tmp/tinychaos-batch13b-profile and the temporary development-only Steam app-ID file. No Steam authentication is available. The same executable/PID/window/focus guards apply. Inputs, screenshots, raw logs, focus data, and sanitized aggregate remain outside Git under /tmp/tinychaos-batch13*.

Actual player step Before After
Play → default Soldier/Alex character page → Select Stage → Meadow Works Works
Normal click 09:01:53.553 UTC: no Play marker/transition 09:12:02.554: reaches handler; Play: Medium at 09:12:02.757 (existing enum name for UI Normal)
Easy click 09:02:44.958: also no launch Mapping/import/guarded dispatch verified; separate Easy gameplay run not performed
Arena entry Not reached Meadow renders and the Soldier is present; reward imports and player-reset marker at 09:12:05.929
Actual gameplay Not reached Blocked, GAME-22: no HUD/enemies/progression for 208.910 seconds, 418/418 focus samples candidate-focused
Movement/pause attempt Not applicable D held 0.7s at 09:13:10.654; before/after image pixels are identical. Escape at 09:13:11.569 opens no visible pause menu.

The new route fixes GAME-21's silent launch failure, not the arena startup coordinator. There is no new gameplay exception: the only exception in each bounded run is the existing Discord constructor InternalError (NET-02). Existing changelog failure remains CONTENT-09. Zero missing-script warnings were recorded. No score-post result markers occur; the inspected automatic score path is boss-defeat-gated and this run never progresses into combat.

Next blockers, not repaired here

GAME-22: GameManager.Start starts initialization, hides startup UI, and calls PauseGame. GameInitialization prepares reward/spawn/player flags but has no completion call into the existing run-start handoff. Source search finds GameManager.OpenGate only at its declaration, with no matching call in gameplay C# or Arena Stage 1/animation events. That method contains resume, timer starts, and ShowUI. This fits the paused-looking runtime, but actual time scale/readiness flags were not sampled. Establish a focused coordinator regression and review menu/gate ownership before changing it; do not blindly insert the legacy OpenGate call, which currently calls the generic closing transition.

GAME-23: The now-reachable launch emits two DOTween “Sequence has started and is now locked” warnings at 09:12:03.267. MenuController.GateAnimation constructs an autoplay sequence, waits 0.5 seconds, then Append/Join attempts add the later gate panels after it is locked. The scene still loads, so these warnings are separate from the missing arena handoff. Verify intended gate timing and exactly-once completion before repairing construction. DOTween also reports one safe-mode-captured error during deliberate probe shutdown; it is not counted as another gameplay exception or proof of the stall's cause.

Preservation and boundary

After completed Editor/build runs, reviewed/restored only automatic Linux toolchain insertion and newly generated Addressables linker/Linux metadata. Of 58 snapshotted paths, only MainMenu and the existing Editor runner differ; all 56 others retain exact pre-run bytes. Normal-profile hashes, including the byte-backed-up engine preferences, are unchanged. Unknown audio deletion, Plastic evidence, and the nonempty Git index lock remain preserved. No commit/push was attempted.

Both candidate probes were deliberately stopped after their bounded observations; launcher/player returned 0. This is terminal diagnostic evidence, not a complete gameplay pass. No Editor/candidate remains. The Unity skill now notes that missing persistent targets can fail silently and that quiet logs do not establish working controls.

Next focused work is GAME-22's arena startup/readiness handoff, with GAME-23 gate semantics reviewed where necessary. Default one-player routing has evidence; co-op, remaining characters/difficulties/stages, gameplay pause/rewards/death/retry, saves, full runs, and Windows/Steam freeze acceptance remain unverified. No features were added; stabilization remains unfinished.