# Release status: 0.6.2 prepared for publication PokeSim 0.6.2 is a patch on 0.6.1 that publishes the image for linux/arm64 ([#269](https://github.com/afk-sapien/PokeSim/issues/269)), adds app store templates ([#273](https://github.com/afk-sapien/PokeSim/issues/273)), and fixes the Rocket Hideout, healing and errand loops found by the stage ladder gate. pokecore moves to 0.11.0 and PyBoy RS stays at 0.1.4. See the [release notes](docs/release-notes.md). The publication workflow must verify the exact tagged commit, build the packages and both container images, and verify the uploaded assets before making the release public. The publication receipt is recorded after that succeeds. PokeSim 0.6.1 was published on October 30, 2026 ([notes](docs/release-0.6.1.md)). 0.5.0 moves every adventure to the Rust emulator (PyBoy RS 0.1.2 through Core 0.7.0) and adds Gold, Silver and Crystal. See the [0.5.0 release notes](docs/release-0.5.0.md). Core and PyBoy RS are not on PyPI: PokeSim depends on their GitHub release wheels, named in `pyproject.toml` and hashed in `uv.lock`. Both dependency releases exist, their published assets match the lock, and the publication receipt records the completed release checks. The [beta 3 gameplay receipt](docs/validation/gen2-rust-beta3.json) records fresh Rust campaigns through Red in Gold, Silver and Crystal, 100-encounter postgame checks with a mid-battle restart, all three native Gen II cable pairings and all six Red/Blue Time Capsule pairings. Each fresh campaign uses Cyndaquil and seed 1. These checks close the fresh-campaign and private cable evidence gaps for that configuration, without claiming every starter, seed or platform. ## Before the next PokeSim release The next PokeSim release needs pokecore 0.11.1 or later published first. The [state layer slices](docs/design/pokecore-state-layer.md) make PokeSim import pokecore names that pokecore 0.11.0 does not have, starting with `pokecore.storage.read_box_counts`. Cut the release from `packages/pokecore` and pin it as [Publishing](docs/publishing.md#pokecore-releases) describes. Pull request checks install the workspace pokecore, so only the release workflow proves PokeSim against a published one. ## Known limits, deliberately not addressed here - **Recovery never gives up.** An exchange that cannot be finished is retried forever, now slowly. A ceiling would mean abandoning an exchange already committed on one side, which is the one path that can actually lose a Pokémon. It needs a design and a test, not a constant. Until then, a permanently stuck exchange still freezes stop, archive, edit and backup for that pair, and the only exit is to resolve whatever the recovery is failing on. - **The commit path still holds `self.guard` across the two stage calls**, up to 55 seconds each, so a cancel that arrives during staging waits for them. That ordering is deliberate: a cancel must not race a commit. - **The scheduler's candidate search is still quadratic** in offers, and re-runs from scratch every ten seconds, though each combination is now cheap: about 0.2 s per pair of full libraries. - **The bundled broker Compose file serves an unauthenticated endpoint on 0.0.0.0** and returns full inventories, and that endpoint is expensive to compute. The broker is optional and is not part of the Library deployment. Do not expose it beyond a trusted network. - **Journal screenshots already stored blank are not repaired**, including the one in the shipped Journal image. Only new entries are retaken. - **Seen counts, level 100 species and perfect finds have no backfill.** Journal entries never recorded them, so their history starts with 0.4.0 (seen) and 0.4.2 (the other two). - **League rotation has limited endurance coverage.** A private copied-save replay verified the reserve swap through PC menus. Repeated complete rematches with rotating teams still need an extended gameplay run. - **Legacy per-entry rewind states are kept** (about 24 MB for the busiest adventure). They stopped growing in an earlier release and are what lets an old Journal entry rewind. - **No formatter or type checker.** Ruff runs the Pyflakes rules only, and 15% of functions carry return annotations. Gameplay validation is bounded. Synthetic tests, copied-save marathon and purchase replays, and demonstration-ROM worker checks do not establish uninterrupted multi-day cartridge gameplay on all platforms. Existing private gameplay and cable-trading receipts retain their original scope. Back up the complete library before upgrading. Import legacy adventures into a new application folder with the old application stopped. [Historical release and deployment records](docs/history/releases-through-rc31.md) remain available for earlier version receipts and their limitations.