From 704e70f60affbaafc95bd31e31ab3d9fe33b95f6 Mon Sep 17 00:00:00 2001 From: funman300 Date: Mon, 6 Jul 2026 13:27:42 -0700 Subject: [PATCH] docs(changelog): cut v0.41.0 section Renames Unreleased to 0.41.0 (2026-07-06), noting it consolidates the v0.40.x patch tags that were cut without sectioning. Adds entries for today's safe-area resume re-poll fix (#116) and the plugin module test-split phase (#118). Co-Authored-By: Claude Fable 5 --- CHANGELOG.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index de35860..35aa75b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ project follows [Semantic Versioning](https://semver.org/). ## [Unreleased] +## [0.41.0] — 2026-07-06 + +> Consolidates everything shipped since v0.39.0, including the v0.40.0–v0.40.3 +> patch tags (which were cut from this section without renaming it at the time). + ### Added - **Rules decision record: unlimited stock recycling.** Documented in @@ -32,6 +37,10 @@ project follows [Semantic Versioning](https://semver.org/). ### Changed +- **Engine plugin modules restructured.** The five oversized plugin files + (card, hud, settings, game, input) are now module directories with their + test suites in sibling `tests.rs` files — no behaviour change; first phase + of the module-split plan (#118). - **Core type ownership.** Routed all klondike/card imports through `solitaire_core` and unified local `Suit` / `Rank` with upstream `card_game` types. @@ -43,6 +52,12 @@ project follows [Semantic Versioning](https://semver.org/). ### Fixed +- **Safe-area insets now re-polled after app resume.** The inset poller settled + permanently once insets first resolved, so inset changes while backgrounded + (fold/unfold, rotation, gesture ↔ 3-button nav switch) kept stale layout until + the app was killed. Each resume now re-arms a fresh poll window; the cached + value is rewritten only when it actually changed, so unchanged resumes still + cause no relayout flash. (#116) - **Tableau fill on foldables / tall screens.** The tableau fan now spreads from each column's total depth (face-down cards included) and refills on the cold-start deal, every move, and on resize (incl. the Android safe-area-inset