From 332f3657e2d6c1bf167bb40a4c51543cd4ef8681 Mon Sep 17 00:00:00 2001 From: Darkaxt Date: Tue, 1 Sep 2026 01:13:14 +0200 Subject: [PATCH] release: prepare Thor UI candidate rc84 Record the completed Thor lower-display remediation, preserve the parser evidence reuse boundary, and add protected release notes for the next monotonic signed candidate.\n\nCo-Authored-By: Claude --- .github/workflows/release.yml | 1 + release/RELEASE_NOTES_1.1.0-rc.84.md | 35 ++++++++++++++++++++++++++++ release/compatibility-evidence.json | 2 +- release/v1-ready.json | 4 +++- 4 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 release/RELEASE_NOTES_1.1.0-rc.84.md diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3ab25ad6..4fb27b05 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -297,6 +297,7 @@ jobs: jq -e '.v11Rc76PortableChallengeExpansion == true' release/v1-ready.json >/dev/null jq -e '.v11Stage7CrossFeatureUiConformance == true' release/v1-ready.json >/dev/null jq -e '.v11SaveSynchronizedKnowledgeCheckpoints == true' release/v1-ready.json >/dev/null + jq -e '.v11Rc84ThorLowerDisplayRemediation == true and .v11Rc84ReleaseQaIsolation == true' release/v1-ready.json >/dev/null if grep -Eiq '[A-Z]:\\|dualdex-expanded-corpus|ExtractedPath' \ reports/dualdex-parser-compatibility.json \ reports/dualdex-parser-compatibility.md \ diff --git a/release/RELEASE_NOTES_1.1.0-rc.84.md b/release/RELEASE_NOTES_1.1.0-rc.84.md new file mode 100644 index 00000000..438cf943 --- /dev/null +++ b/release/RELEASE_NOTES_1.1.0-rc.84.md @@ -0,0 +1,35 @@ +# DualDex 1.1.0-rc.84 + +RC84 is the signed release candidate for the completed Thor lower-display usability remediation. It preserves the RC78 hotfix 5 RetroArch activation correction while incorporating the exact packaged-WebView fixes validated across the full `538×445` Thor matrix. The RC number advances to 84 so its Android version code remains monotonic after the immutable RC78 hotfix sequence. + +## Thor lower-display usability + +- Rework compact Browse, Pokédex details, Battle, Party, Trainer, Local Map, Area Guide, Settings, setup/recovery, Specimens, and linked detail routes for the Thor viewport. +- Keep important actions reachable with bounded route-local scrolling, larger touch targets, keyboard-safe focus behavior, and visible text floors across 85%, 100%, and 135% Android font scales. +- Make discovered-mode Pokédex counts truthful: All represents the full parsed catalog, while Seen, Caught, and Team enable only when matching projected entries exist. +- Add clustered Local-map point selection and a contained Area Guide flow without stealing controller focus from the game. +- Organize Settings into focused categories, retain accessible confirmation dialogs, and keep recovery actions explicit. +- Extend the authoritative in-game clock across normal content and drill-down routes while leaving setup and recovery surfaces uncluttered. +- Preserve truthful Battle Entry, Attack, Rarity, and unavailable Moves states from sanitized raw-memory pipeline evidence. + +## Reliability and isolation + +- Bound companion requests and contain loopback peer disconnects without crashing the Android host. +- Keep optional Area Guide projection failures local to that module. +- Retain the RetroArch-free simulator, raw-memory controls, and clean-start large-heap provisioning exclusively in the debug source set. +- Verify that the release application remains `DualDexApplication`, does not request `largeHeap`, contains no QA-only controls, and bundles no ROM. + +## Measured validation + +- Exact packaged Thor matrix: 40 preserved-view captures covering all remediation stages and both overworld and Battle states. +- Thor WebView runner: 14/14 scenarios passed. +- Companion unit gate: 35 files and 309/309 tests passed. +- Public Chromium acceptance: 52/52 Playwright tests passed. +- Pull request CI, CodeQL, public Chromium acceptance, and packaged Android managed-device acceptance passed. +- Clean debug QA uninstall/install acceptance completed all 11 exact Modern Emerald catalog phases at the stock 192 MiB AVD growth limit with one uninterrupted process; this validates the QA harness and does not alter release heap policy. + +## Delivery + +- This candidate uses Android version code `1010084`. +- The candidate is built and signed only through the protected GitHub Actions environment; production signing material is never exposed to the repository or local workspace. +- DualDex remains read-only and sends no game commands or emulator-memory writes. diff --git a/release/compatibility-evidence.json b/release/compatibility-evidence.json index d245db1b..dd5e5185 100644 --- a/release/compatibility-evidence.json +++ b/release/compatibility-evidence.json @@ -12,7 +12,7 @@ }, "scopeDecision": { "type": "NONPARSER_REUSE", - "attestation": "Fresh raw parser evidence was generated at the named source commit; downstream release packaging, acceptance tests, API-30-compatible Android bounded reads, repository-policy alignment, public nonsecret GitHub policy access, schema-bound comparison selection, binary-safe public-asset privacy validation, the Area Guide projection correction, and CRC-less RetroArch session activation with evidence-bound epochs changed afterward without changing parser, catalog, build, wrapper, or corpus-execution source." + "attestation": "Fresh raw parser evidence was generated at the named source commit; downstream release packaging, acceptance tests, API-30-compatible Android bounded reads, repository-policy alignment, public nonsecret GitHub policy access, schema-bound comparison selection, binary-safe public-asset privacy validation, the Area Guide projection correction, CRC-less RetroArch session activation with evidence-bound epochs, Thor lower-display companion UI remediation, Android loopback disconnect containment, and the debug-only RetroArch-free QA harness and clean-start heap provisioning changed afterward without changing parser, catalog, build, wrapper, or corpus-execution source." }, "cacheDecision": { "type": "BUMP_REQUIRED", diff --git a/release/v1-ready.json b/release/v1-ready.json index 428ebc8c..6c0c6e5e 100644 --- a/release/v1-ready.json +++ b/release/v1-ready.json @@ -4,7 +4,7 @@ "applicationId": "com.darkaxt.dualdex", "stage": 8, "status": "ready-for-github-signing", - "verifiedDate": "2026-08-29", + "verifiedDate": "2026-09-01", "openV1LedgerItems": 0, "baseFirst50Selected": 50, "mapFirst50Available": 26, @@ -158,6 +158,8 @@ "v11Rc76PortableChallengeExpansion": true, "v11Stage7CrossFeatureUiConformance": true, "v11SaveSynchronizedKnowledgeCheckpoints": true, + "v11Rc84ThorLowerDisplayRemediation": true, + "v11Rc84ReleaseQaIsolation": true, "gen1CompiledEvolutionCoveragePercent": 96.62, "gen1CompiledLearnsetCoveragePercent": 93.56, "gen1CompiledTypeChartCoveragePercent": 95.79,