Skip to content

Batch 48 · Scaled menu panels clear the viewport

2026-10-27. GAME-24; starting HEAD 1831558f. Focused animation repair, with no menu redesign or gameplay/balance change. Implementation edc36af2 precedes this separate documentation/evidence commit.

Reproduction and correction

The owner narrowed the report to Settings/another menu panel. Settings itself uses zoom, but Achievements and several other pages slide. In the unchanged batch-46 Linux IL2CPP player at a guarded 1280×720 client, opening Achievements, pressing Back and then opening Settings leaves the lower Achievements panel visibly covering both the main menu and Settings. The old transform offset uses Screen.height (720 pixels) as canvas units; this menu's reference canvas is 1920×1080, so at 1280×720 it moves only 480 rendered pixels. Screenshots capture the completed, stationary obstruction rather than an intermediate tween frame.

AnimFunc now projects the root-canvas and animated rectangle corners into the animated element's parent coordinates and computes enough travel to put its entire rectangle beyond the viewport, including nested scale, pivot and oversized-panel cases. Entry starts on the opposite side and still finishes at the existing zero anchored position. Canvas-free fixtures retain the old screen-distance fallback. Public signatures, direction enum values, 1/Speed duration, ease choice, unscaled update/delay, event opt-in and replacement cancellation stay intact. No scene/layout, settings, save or gameplay consumer is changed.

The new Editor runner first had an Edit Mode fixture error; that result is excluded. Its Play Mode geometry harness exercises the production methods without real boot/save/Steam initialization. The original runtime passes 3/6 groups and exits1: canvas scales 0.75/0.5 and nested oversized bounds fail. Exactly the same harness after correction passes 6/6 and exits0, covering all four directions, two cycles each, four canvas scales, rotated/scaled parents, offset pivots, larger panels, replacement cancellation and disabled completion. Forced tween completion proves geometry/event outcomes, not elapsed animation behavior. The existing RunBatch15 supplies separate real normal-time and paused/delayed coroutine evidence: 7/7, exit0.

Native verification

The required Editor/CLI builds the dirty reviewed candidate as Linux x64 IL2CPP (Standalone backend 1), exit0 in 730.869 seconds. Source revision is 1831558f, including the three pinned intended implementation paths. This build time is not menu-animation or freeze timing. Artifact/provenance hashes remain private under /tmp/tinychaos-batch48-*.

The old batch-46 executable reproduces the obstruction at 1280×720 and quits naturally, exit0. The rebuilt player completes three Achievements open/Back cycles (two at 1280×720 and one at 960×540), two subsequent Settings openings, a horizontal Play/character-selection page open/Back control at 960×540, and the quit dialog's actual Yes action. Inspected client-buffer screenshots show the panel fully absent after Back and all Settings controls visible. It quits naturally, exit0. Both temporary config documents are byte-identical to their prepared copies, with zero traced config-write begins and no exception heading in either player log. No stage/run was started.

Inputs were limited to the exact executable/PID/window with active-window and input-focus guards. The first new-player input attempt arrived before its window existed and was refused by the guard; no input was sent, and readiness was then established. Child-only XDG roots are supplied by the owned launcher. Supported config loading is traced and the distinctive probe volume is visibly restored; config files stay beneath the temporary roots. The sanitized runtime trace does not print their resolved absolute paths. Direct client captures avoid desktop crop offsets. Original accepted captures include baseline-after-achievements.png and baseline-settings-obstructed.png; corrected captures include fixed-after-achievements.png, fixed-settings.png, fixed-after960.png and fixed-settings960.png, all under /tmp/tinychaos-batch48-*. Known optional Steam/service and DEMO translation warnings remain; this is not online/localization acceptance. Native player elapsed times include inspection/background time and are not GAME-01 evidence.

Preservation and remaining scope

Before verification, private capture /tmp/tinychaos-batch48-preserve-53aa7f123f/ saved 7,743 pre-existing project files and 8,178 Unity/profile hashes with recoverable preferences. All 7,742 captured project files outside the one intended AnimFunc edit match exactly; the two new runner/metadata paths match the candidate manifest. All 78 previous rebuild implementation paths remain byte-identical. The immutable selected source baseline is unchanged at 604/608 matches, retaining its four previously documented exceptions; AnimFunc is outside that selected pin set. Inventory becomes 259 scripts; 257 old rows remain byte-preserved, one reviewed row changes and one runner row is added. Legacy input-consumer membership remains 23. Four scoped MS gates append to 139 prior rows (143 total); all 27 open workstream follow-ups remain open.

The Editor/build inserted only the Linux toolchain node in package manifest/lock and two new Addressables linker files. Reviewed generated copies were archived; captured package bytes were restored and only the two newly generated linker paths removed. Performance-test metadata appeared transiently during build and was removed by Unity's build cleanup; none remains. TimeManager, build lists, other settings/scenes, the untracked Linux.meta and unresolved audio deletions remain as captured.

Two shared Editor session preference keys and four normal-game Unity session/connection bookkeeping keys changed during verification. Their key-only differences were reviewed and generated copies archived. Exact shared preferences were restored after Editor exit, and normal-game preferences after player exit. The normal game's 1 captured prefs file and shared Editor prefs now match exactly, with no new normal game save/config. Outside the game/preference boundary, Unity changed 7 bookkeeping files, added 4 and rotated out 4 earlier archived-event files; that engine state is retained. Thus the entire Unity profile tree is not claimed unchanged. Raw logs, temporary profiles, screenshots, manifests, artifact/provenance data and recovery copies remain private outside Git. No Editor or owned candidate remains running.

Continue the existing dependency-ordered core player assembly/development arena work. New rebinding/setup screens, four-player layouts and broad UI/UX remain deferred to R7. The overall GAME-24 migration and rebuild goal remain open. Dedicated GAME-01, physical-device/full gameplay and Windows IL2CPP acceptance are not established by this batch.

Documentation validation keeps all 53 issue IDs routed once, checks 856 local links and preserves the prior 139 gate rows. Staged whitespace checks pass; raw logs/profiles are excluded.