docs(roadmap): P1 mobile app-launch UX — drop 'opens in a tab' interstitial

Companion app: open every app in the in-app WebView (not just non-iframeable),
carrying the mobile-iframe footer controls into the WebView. Mobile web (PWA):
open tab-apps directly in a new tab. No interstitial on either surface. Touch
points + prior commits (b5a9deb8, d1fbcd9b) noted.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
archipelago 2026-06-22 16:57:44 -04:00
parent 27299ea687
commit 22b05de6d9

View File

@ -147,6 +147,16 @@ Beta Live (public). Hardening priorities feeding the gate:
- **P1** LUKS2 full-partition encryption for `/var/lib/archipelago/`
(AES-256-XTS, Argon2id, key from setup password + hardware salt).
- **P1** Meshtastic plug-and-play parity with MeshCore.
- **P1** Mobile app-launch UX — drop the "this app opens in a tab" interstitial.
Two surfaces (both: no interstitial screen, launch the app directly):
- **Companion app (Android):** open **every** app in the **in-app WebView**
(not just non-iframeable ones) — *and* carry the current mobile-iframe footer
controls into the WebView (back/forward/reload/close — good, useful UX).
- **Mobile web browser (PWA):** open tab-apps directly in a **new browser tab**.
Touch points: `neode-ui/src/stores/appLauncher.ts`, `AppLauncherOverlay.vue`,
the Android in-app WebView bridge, and the mesh-mobile iframe footer controls.
(Reference prior work: `b5a9deb8` in-app webview for non-iframeable apps,
`d1fbcd9b` "open in browser" via native bridge.)
**Post-beta (deferred — do not start until gate is green):** P2P encrypted
voice/video (WebRTC over federation via Tor); watch-only wallet + mesh BTC