Adds a mandatory pre-tag step to the release process: build the R8-shrunk
release candidate and smoke-test it on a real device, including a first-run /
permission-not-granted state. The v2.7.0 launch crash (calendar observer
registered before the permission gate) reached users because it only manifests
in the minified release build on a device without the permission already
granted — the debug build and an already-permissioned phone both hid it.
- New `releaseTest` build type: same R8 shrinking + obfuscation as `release`,
but debug-signed with a `.releasetest` applicationId suffix so it installs
alongside the production and debug apps. Never published; CI only ever builds
the real `release` variant from the tag.
- scripts/verify-release.sh: builds + installs `releaseTest` and resets it to a
first-run state, with an on-device checklist.
- docs/RELEASING.md: formalize the release/vX.Y.Z branch flow and the on-device
verification gate before tagging.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>