Skip to content

Stabilization batch 06

Scope: GAME-16/17, the character-readiness and menu-wiring failures reproduced in batch 05. No new gameplay features or content.

Corrections

CharacterManager previously indexed its empty character list from OnEnable, before the Start coroutine populated it. Disable cleanup also indexed the current selection, which could differ from what was subscribed. Setup now runs from a cancellable enable-time routine: defer one frame, wait for the ready catalog, then prepare the UI. Pending setup stops on disable and can restart; an already initialized component refreshes on enable without resetting choices. Public selection/mode actions wait for initialization.

Localization refresh uses one paired LocalizationSettings.SelectedLocaleChanged subscription, resolving current active selections instead of retaining selected-character StringChanged subscriptions. Locked players no longer prevent the other active player's description refresh. The existing default player mode and content are retained. Complete language/co-op/re-enable interactions are not declared verified by the startup probe.

MainMenu's existing MainMenuManager now references its existing MenuController (930601069) and CharacterManager (455391814). Only those two serialized references changed in the scene. Positive character/menu initialization markers were added to distinguish successful execution from a path that never ran. Existing GUIDs, scene identities, stage data, saves, and earlier batch fixes are retained.

Focused checks

TinyChaos.EditorTools.StabilizationChecks.RunBatch06 extends the existing Editor-only partial runner in MenuStartupChecks.cs. It uses temporary objects/catalogs with reference restoration and no player-save or backend initialization; scene bindings are read through a preview scene.

Check Before After
Enable before catalog readiness FAIL: index exception PASS
Catalog iterator waits, then imports the ready catalog PASS PASS
Disable cleanup after a changed selection index FAIL: index exception PASS
Both MainMenu references resolve to existing components in the scene FAIL: missing MenuController PASS

Baseline: Batch 06: 1/4 checks passed., Editor exit 1 / CLI exit 6. Correction: Batch 06: 4/4 checks passed., CLI/Editor exit 0. Logs: /tmp/tinychaos-batch06-before.log and /tmp/tinychaos-batch06-after.log. These method checks do not claim complete rendered selection, locale switching, or re-enable interaction coverage.

Rebuilt player evidence

The same built-in Linux IL2CPP command used in batch 05 succeeded with exit 0, using output /tmp/tinychaos-batch06-linux/TinyChaos.x86_64, log /tmp/tinychaos-batch06-build.log, and provenance /tmp/tinychaos-batch06-provenance.json. Build interval: 2026-10-24 03:53:05.543–04:01:38.657 UTC. The source is still committed revision 5347e460 plus the reviewed dirty working tree. It is not a certified Steam revision.

A fresh graphical player ran with isolated temporary configuration/cache roots at /tmp/tinychaos-batch06-profile, local-only development Steam app ID, requested 1280×720 windowed settings, and timestamped logs. Steam authentication was unavailable as expected. Normal game-profile hashes remained unchanged. The test ended at its intended 100-second limit (probe exit 124); that is separate from the successful build result.

UTC player marker Result
04:02:05.672 AppInitiator startup begins.
04:02:06.464 AppInitiator startup complete: 0.792 seconds between those async markers.
04:02:06.688 Character selection initialized successfully.
04:03:12.095 MainMenu initialized successfully after the splash/hyperspace handoff.

No timestamped runtime exceptions were logged during the probe. The previous character index exception and missing-menu-controller error did not recur. GAME-16/17 therefore have focused regression and actual player initialization evidence. No full run, selected-character transfer into gameplay, physical-controller/co-op acceptance, or Windows IL2CPP verification was performed.

The probe also records a 61.867-second wall-clock interval between logo sequence start (04:02:06.251) and completion (04:03:08.118), before the press-key transition. This must be investigated, but is not yet a controlled reproduction of the owner's freeze: focus and time scale were not sampled, and PlayerSettings disables running in the background. The changelog 404 appeared during this interval; timing coincidence does not identify its cause.

A bounded helper waiting for character/logo readiness timed out before calling its key sender. No synthetic keypress was sent. Later player logs show entry through the ordinary input-gated transition and successful menu initialization. This is observed execution, not a claimed automated-input test. Next freeze work must record foreground/background state and frame/main-thread progress while the long interval is occurring.

Runtime log/summary: /tmp/tinychaos-batch06-player.log and /tmp/tinychaos-batch06-runtime-summary.json. Raw logs are not committed. Known generator warnings remain; no C# or shader build errors were found. CONTENT-09's changelog request still fails independently.

Preservation and checkpoint

Automatic Linux package edits were reviewed and restored to exact pre-batch bytes. Captured settings/build profiles, URP asset, .plastic files, prior fixes, and the unresolved audio deletion were preserved. Build-generated Addressables metadata was removed after exit; performance-test JSON assets were removed by their callbacks. Existing source/scene line endings and metadata were retained. Editor/player/helper processes reached terminal results; no second player was launched to chase the newly observed interval in this batch.

This completes one verified batch. Pause automatic continuation at the owner's requested one-batch-per-check-in quota boundary. The full stabilization objective remains unfinished. The next focused batch should investigate the logo interval under controlled focus/frame/stack observation, then continue actual menu/navigation/run acceptance. Feature ideas remain deferred.