Skip to content

Stabilization batch 03

Scope: GAME-14, basic-upgrade stage eligibility. No new features, reward balancing, stage renumbering, asset edits, or main-menu freeze changes.

Correction and checks

GameInitialization.ImportRewardTable checked the basic upgrade's stage-array length but ignored the selected boolean. Add that missing guard before importing the upgrade. Special and boss import behavior remains unchanged.

The existing Editor-only runner now exposes TinyChaos.EditorTools.StabilizationChecks.RunBatch03. It invokes the actual production iterator through its first yield, where import/table clearing has completed. It does not start subsequent preparation or gameplay coroutines. Inactive temporary objects avoid scene lifecycle dependencies; temporary dictionaries, initialization flags, and singleton references are restored in finally, and temporary objects/assets are destroyed. No player saves, real upgrade assets, Steam, or backend services are used.

Check group Original code Corrected code
First-stage basic eligibility: allow true, exclude false/empty, accept a valid one-stage array; clear previous table entries FAIL: disabled entry imported PASS
Second-stage basic eligibility: use the second flag, exclude empty/too-short arrays; clear previous table entries FAIL: disabled entry imported PASS
Special/boss eligibility: exclude disabled/empty/too-short entries, retain special/boss overlap and Mythic boss-only routing, clear previous table entries PASS PASS

Original code: Batch 03: 1/3 checks passed., Editor exit 1 (CLI exit 6). After the single production-line change: Batch 03: 3/3 checks passed., CLI/Editor exit 0. Both runs used Unity 6000.2.8f1 on Linux with -nographics -buildTarget Linux64. Temporary logs: /tmp/tinychaos-batch03-before.log and /tmp/tinychaos-batch03-after.log; raw launch logs are not committed.

Both runs compiled without C# errors and reported the known CS8785 generator warning (TOOL-03). Neither logged the prior Unity Version Control configuration exceptions or null-reference exceptions. That difference does not close TOOL-01: these checks did not enter Play Mode. Corrupted .plastic workspace deletions/backups/logs were already present at the start of this batch and were preserved unchanged.

Unity's automatic package changes were reviewed and restored to the exact captured pre-batch bytes; EditorBuildSettings was also checked against its captured bytes. The unresolved audio deletion and prior batch-02 edits were preserved. The initializer's CRLF line endings and metadata were preserved. Earlier batch checks were not rerun because their production methods were unchanged.

Remaining limits and checkpoint

GAME-14's source defect is fixed with method-level regression evidence. Synthetic stage indices 1 and 2 establish the filter contract; they do not establish which upgrade assets the current selectable stages expose. GAME-15's overlapping stage indices require a separate identity/catalog investigation before any asset renumbering. No complete reward UI/run, rendered Linux player, Windows IL2CPP build, or menu-freeze reproduction was tested here.

Five source defects now have targeted passing regression evidence across batches 01–03; the imported-class and material leads were separately resolved without production changes. This is one completed batch at the owner's quota checkpoint. The stabilization goal remains unfinished; wait for the next check-in before starting another batch.