Stabilization batch 09¶
Scope: build the batch-08 candidate and exercise its repaired Tutorial button in a real Linux IL2CPP player. This is an acceptance/diagnostic batch; no production source, scene, feature, or regression-runner changes.
Candidate and safeguards¶
The installed CLI built StandaloneLinux64 with Unity 6000.2.8f1. The command follows the CLI workflow, with output /tmp/tinychaos-batch09-linux/TinyChaos.x86_64, log /tmp/tinychaos-batch09-build.log, and provenance /tmp/tinychaos-batch09-provenance.json. Build start/end UTC: 06:11:50.723 / 06:15:23.263 on 2026-10-24. Terminal CLI result and provenance both report success/exit 0. Source provenance is 5347e4600bb897ca1c9fa8cb80cb095f6ee0ce0a, dirty; this is not a verified Steam source mapping.
GameAssembly SHA-256 is c9990b14d8445504f87d9808d0b603427248c94625fc145f0dd2c1b9fcbbd957, matching batch 06. The intervening production correction was a scene binding, so an unchanged native assembly does not mean the built scene is unchanged. The launcher SHA-256 is aeaf13e291886fbd5a99b7dbd7c113b8ee13ed462a419a4d31a8ecbc3241ac70. The existing generator warning did not reappear in this cached build; this does not resolve TOOL-03's compilation/generator concern.
The windowed player used fresh child configuration/cache roots under /tmp/tinychaos-batch09-profile, with no Steam client authentication. A development-only steam_appid.txt beside the temporary executable prevented a Steam library-copy relaunch; exclude that file from a shipping depot. Existing player-profile hashes were captured before launch and match afterward.
A temporary X11 helper verified the exact candidate executable, PID, window ownership, active focus, and 1280×720 client dimensions before each input/screenshot. It sent inputs only while the candidate was already active, with bounded key holds and releases. Screenshots, input timestamps, focus samples, raw logs, and sanitized aggregates remain outside Git under /tmp/tinychaos-batch09*.
Actual player results¶
| Check | Evidence / outcome |
|---|---|
| Startup and usable menu | Logo interval 06:15:38.679–06:15:41.935 UTC: 3.256 seconds, 7/7 focus samples candidate-focused. Space at 06:15:56.527 starts the transition; menu initialization logs at 06:15:59.390. Screenshot shows the menu. This run does not reproduce the reported minute-long freeze. |
| Repaired Tutorial button | Click at client (266,599), 06:16:13.964 UTC, loads the existing Tutorial. Screenshot shows Tinos's welcome dialogue and the Soldier. No entry/PushPage exception occurs. GAME-18's real entry route passes on this candidate. |
| Opening dialogue | Next clicks advance the welcome text and reach “Now move towards the glowing marker ahead” / “USE WASD TO MOVE.” This verifies those opening steps, not every lesson. |
| Movement | A 0.7-second D hold after dismissing the prompt moves the Soldier right; screenshot shows displacement and the active destination marker. |
| Pause/settings | Escape at 06:17:49.288 and again at 06:18:39.741, then P at 06:18:59.485, each produce a matching NullReferenceException in TutorialManager.ShowSettings → InputManagement. No usable pause panel appears. GAME-19 owns this blocker. |
| Return/full playthrough | Not passed: the pause-menu failure prevents the intended menu return path. Remaining movement/dash/combat lessons, tutorial completion, arena gameplay, and Windows/Steam acceptance were not verified. |
The changelog request still returns HTTP 404 (CONTENT-09). Tutorial entry logs five missing-script warnings: CreditPanel, ConfirmBackToMenuPanel, TabsManager, PauseMenuPanel, and SettingsPanel. The three exceptions above occur on the explicitly recorded pause actions; this is stronger attribution than batch 07's unidentified click.
Source follow-up: GAME-19¶
TutorialManager's four panel references point to scene component IDs 1747298746, 484304226, 222612293, and 1893484585. All four component blocks reference absent script GUID 893f1b2a15fc1f149926ef26a7c07594 and contain GamePanel fields (panelName, isMainPanel, firstSelected). The existing GamePanel.cs.meta instead has GUID 490c4f1e9d0dd0548a97d9ebba30ab4c. No asset metadata under Assets resolves the old GUID. This matches the missing-panel warnings and ShowSettings' unguarded panel iteration; verify imported component types before applying a repair.
The same absent GUID occurs 8 times in Arena Stage 1, 12 in Arena Stage 2, 12 in Arena Stage 3, 8 in Experimental, and 4 in Tutorial: 44 serialized components. No matching prefab occurrences were found under Assets/Prefab. These are shared source defects; only Tutorial's runtime failure was exercised here. Preserve component IDs, references, serialized fields, and asset metadata when establishing the intended existing script binding. Do not blindly replace every missing script with GamePanel: the TabsManager warning involves other component GUIDs and needs separate type identification within this repair.
Preservation and next boundary¶
The verified candidate was deliberately stopped by signal after the probe; Unity/launcher returned 0. That terminal result is not a completed tutorial or clean gameplay acceptance claim. No candidate/Editor remains running.
All 49 snapshotted settings/tooling/generated paths match their pre-run bytes after reviewing/restoring only the automatic Linux toolchain insertion and removing newly generated Addressables linker/Linux metadata. The normal player profile is unchanged. Existing audio deletions, Plastic corruption evidence, and nonempty Git index lock remain preserved; no commit/push was attempted.
Next focused batch: establish a failing imported-scene check for GAME-19, restore the intended existing panel/component bindings, then repeat pause/settings and menu return in a candidate. GAME-01 remains unresolved. Stop at the owner's one-batch check-in boundary, with the full stabilization objective unfinished and feature ideas deferred.