v0.9.1 — Reuse freed memory across matches
This bugfix release enables heap reclamation by default to prevent the guest
contiguous-memory arena from filling up during long sessions. The exhausted
arena was observed alongside upside-down menu icons, incorrect fight callouts
and persistent white UI rectangles in issue #26.
Changes
- Set
RECOMP_HEAP_RECLAIM=1as a runtime default on Windows, Linux/Steam Deck
and macOS, allowing freed guest-memory blocks to be reused across matches. - Add
[CONTIG] high-water N MiB of 64 (reclaim on|off)diagnostics in 4 MiB
steps to make arena growth visible in gameplay logs. - The scene-purge proposal from PR #27 is excluded; the fix is
PR #28.
Validation and monitoring
The Windows reporter's experimental-build log confirms reclamation enabled,
with zero arena-exhaustion messages during roughly 52 minutes of logged
rendering and at least 20 match starts. The highest reported watermark is
52 MiB, with no 56 MiB threshold reached in the 64 MiB arena. Earlier affected
logs contained 1,469 exhaustion messages across three sessions, beginning after
7–8 match starts. The reporter reports no errors so far; the owner also reports
a successful Steam Deck play-test with the change. All 25 PR CI checks passed.
The Windows comparison spans an earlier version and a reinstall, so it is not
a controlled same-version A/B. No new native macOS gameplay test or controlled
performance benchmark was performed for this fix. We will continue monitoring
issue #26 for recurring corruption or new regressions.
Updating
Run the setup for your platform and update the existing installation. The
setup builds the game locally from your own dump and preserves player data.
For diagnosis, RECOMP_NO_HEAP_RECLAIM=1 suppresses the new default. Also remove
any explicitly supplied RECOMP_HEAP_RECLAIM value for this comparison: the
runtime enables reclamation whenever that variable exists, even if it is 0.
RECOMP_NO_DEFAULTS=1 continues to skip all runtime defaults.