2026-07-23 21:53:29 +01:00
|
|
|
# HANDOFF — deploy companion APK 0.5.1 (vc21) to nodes
|
|
|
|
|
|
|
|
|
|
**For: the agent on archi-dev-box.** User-reported failure this evening:
|
|
|
|
|
pairing flow on Framework PT — downloaded the companion from the node's
|
|
|
|
|
QR, then the pairing scan didn't work. The APK the node serves predates
|
|
|
|
|
today's scanner fixes; the pipeline below gets the fixed build into the
|
|
|
|
|
user's hands.
|
|
|
|
|
|
|
|
|
|
## What changed on main today (all merged)
|
|
|
|
|
|
|
|
|
|
- **Pairing-scanner fix** (`QrScannerOverlay.kt`): ZXing decode attempts are
|
|
|
|
|
frame-gated (~7/s, was every frame — the CPU contention made the preview
|
|
|
|
|
stutter badly enough to never decode) and PreviewView uses TextureView (no
|
|
|
|
|
more black flash on open). This is the likely fix for "doesn't scan".
|
|
|
|
|
- Three-finger menu gesture (was two-finger, collided with scroll) + one-time
|
|
|
|
|
teaching overlay ~2 min after login.
|
|
|
|
|
- Native wallet QR scanner behind `window.ArchipelagoQr` + WebView file-chooser
|
|
|
|
|
support; web scan modal hands live scanning to it.
|
|
|
|
|
- npub-keyed saved servers (pairing contract item 1, PR #106).
|
|
|
|
|
- Served APK refreshed: `neode-ui/public/packages/archipelago-companion.apk`
|
2026-07-23 22:17:24 +01:00
|
|
|
is now **0.5.3 / versionCode 23**. On top of the 0.5.1 scanner fixes it
|
|
|
|
|
guarantees dual-path peering — the node's LAN endpoint (direct p2p, npub-
|
|
|
|
|
keyed dial hints) AND the Archipelago public anchor (vps2, baked into the
|
|
|
|
|
app so even an old node's QR can't leave the phone LAN-only) — and fixes
|
|
|
|
|
the two field failures from the user's 5G test (screenshots, 21:54):
|
2026-07-23 22:00:15 +01:00
|
|
|
- **Mesh VPN no longer kills the phone's internet** — the IPv6-only TUN
|
|
|
|
|
never called `allowFamily(AF_INET)`, so Android blocked all IPv4 while
|
|
|
|
|
the mesh was up. Now allowed (+ `allowBypass`).
|
|
|
|
|
- **Off-LAN connect works** — `connect()` no longer hard-fails when the
|
|
|
|
|
scanned LAN IP doesn't answer; it brings the mesh up and probes the
|
|
|
|
|
node's ULA (`meshIp`) with retries before reporting failure.
|
2026-07-23 21:53:29 +01:00
|
|
|
|
|
|
|
|
## What to do
|
|
|
|
|
|
|
|
|
|
1. Redeploy the web-ui bundle from current main to the active nodes —
|
|
|
|
|
web root `/opt/archipelago/web-ui/` (NOT a neode-ui/ subfolder), all
|
|
|
|
|
nodes the user pairs against, at minimum the one Framework PT scans.
|
|
|
|
|
2. Verify the served artifact really updated:
|
|
|
|
|
`curl -sI http://<node>/packages/archipelago-companion.apk` — size should
|
|
|
|
|
change (~27 MB build of 2026-07-23), or pull it and check
|
|
|
|
|
`aapt dump badging` shows `versionCode='21' versionName='0.5.1'`.
|
|
|
|
|
3. The demo stack gets its images from CI (run 100 pushed today with the new
|
|
|
|
|
web bundle) — confirm the Portainer stack re-pulled, or trigger its
|
|
|
|
|
redeploy, so the demo QR also serves vc21.
|
2026-07-23 22:17:24 +01:00
|
|
|
4. **Node side is half the 5G story**: away-from-home reachability needs the
|
|
|
|
|
NODE connected to the public anchor too. On Framework PT (and any test
|
|
|
|
|
node): deploy current main (node-side npub-first `fips.pair-info`), then
|
|
|
|
|
verify `sudo -n fipsctl show status` reports the anchor connected —
|
|
|
|
|
`fips.reconnect` RPC if not. A phone can dial the anchor perfectly and
|
|
|
|
|
still fail if the node never enrolled with it.
|
|
|
|
|
5. Re-test the user's exact flows with vc23 (updates any older install in
|
|
|
|
|
place): (a) pair ON the LAN, then switch the phone to 5G — the UI must
|
|
|
|
|
come up via the mesh ULA; (b) pair while ALREADY on 5G (never on the
|
|
|
|
|
node's LAN) — scan, VPN consent, and the connect must succeed through
|
|
|
|
|
the anchor. If either fails, capture `adb logcat` around the attempt and
|
|
|
|
|
`fipsctl show sessions` on the node, and report back.
|