docs(master-plan): tick off §8 P1 mobile app-launch UX (code-complete)

Mobile launch UX is code-complete on branch `companion-mobile-ux` (store-driven
panel, no interstitial, in-app WebView footer + loader, mesh 100dvh, ElectrumX
icon, companion v0.4.7 + shared debug keystore). Marked code-complete pending
on-device/mobile-web verification and merge to main.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
archipelago 2026-06-23 04:11:25 -04:00
parent 2afd18c6de
commit 256d354048

View File

@ -147,7 +147,9 @@ Beta Live (public). Hardening priorities feeding the gate:
- **P1** LUKS2 full-partition encryption for `/var/lib/archipelago/` - **P1** LUKS2 full-partition encryption for `/var/lib/archipelago/`
(AES-256-XTS, Argon2id, key from setup password + hardware salt). (AES-256-XTS, Argon2id, key from setup password + hardware salt).
- **P1** Meshtastic plug-and-play parity with MeshCore. - **P1** Meshtastic plug-and-play parity with MeshCore.
- **P1** Mobile app-launch UX — drop the "this app opens in a tab" interstitial. - **P1 ✅ CODE-COMPLETE** (branch `companion-mobile-ux`, 2026-06-23; needs
on-device + mobile-web verification before merge to `main`) — Mobile app-launch
UX — drop the "this app opens in a tab" interstitial.
Two surfaces (both: no interstitial screen, launch the app directly): Two surfaces (both: no interstitial screen, launch the app directly):
- **Companion app (Android):** open **every** app in the **in-app WebView** - **Companion app (Android):** open **every** app in the **in-app WebView**
(not just non-iframeable ones) — *and* carry the current mobile-iframe footer (not just non-iframeable ones) — *and* carry the current mobile-iframe footer
@ -157,6 +159,20 @@ Beta Live (public). Hardening priorities feeding the gate:
the Android in-app WebView bridge, and the mesh-mobile iframe footer controls. the Android in-app WebView bridge, and the mesh-mobile iframe footer controls.
(Reference prior work: `b5a9deb8` in-app webview for non-iframeable apps, (Reference prior work: `b5a9deb8` in-app webview for non-iframeable apps,
`d1fbcd9b` "open in browser" via native bridge.) `d1fbcd9b` "open in browser" via native bridge.)
- **✅ Done (branch `companion-mobile-ux`):** mobile launches now use the
store-driven panel (no route push) so the background tab no longer changes and
closing returns you where you launched; tab-only apps open directly (in-app
WebView on companion via `openInApp`, new browser tab on PWA) with **no
interstitial**; the Android `InAppBrowser` (`WebViewScreen.kt`) gained a bottom
footer bar (back/forward/reload/open-in-browser/close) + a centered loading
screen (favicon + progress); a shared `AppLoadingScreen` (icon + progress)
replaced the black/spinner loaders on the app session **and** legacy iframe
overlay; the dashboard is pinned to `100dvh` on mobile so the mesh chat/tools
panes stop sliding under the tab bar in mobile browsers (no-op in companion);
ElectrumX shows its real icon in My Apps. Companion APK bumped to **v0.4.7**
(versionCode 11) with a committed shared debug keystore so updates install
without an uninstall. **Not yet:** merge to `main`; publish the 0.4.7 companion
download (deferred until the gate work lands so they ship together).
**Post-beta (deferred — do not start until gate is green):** P2P encrypted **Post-beta (deferred — do not start until gate is green):** P2P encrypted
voice/video (WebRTC over federation via Tor); watch-only wallet + mesh BTC voice/video (WebRTC over federation via Tor); watch-only wallet + mesh BTC