archy/docs/HANDOFF-2026-07-23-companion-apk-deploy.md
Dorian 35849c88c6 chore(android): companion 0.5.1 (vc21) — refresh served APK + deploy handoff
The APK served from the pairing QR predated today's scanner fixes, so
the download-then-scan flow still hit the laggy scanner. Bumps the
version so phones update in place, refreshes the served artifact
(signed v1+v2+v3, verified), and adds the archi-dev-box deploy handoff.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 21:53:29 +01:00

2.2 KiB

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 is now 0.5.1 / versionCode 21 (this commit).

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.
  4. Re-test the user's exact flow: node UI → Companion popup → download APK via QR → install (vc21 updates vc19/vc20 in place) → scan the pairing QR. If the scan still fails on-device with vc21, capture adb logcat around the scan and report back — the parser accepts the npub-first QR (fanchors self-anchor first), so a remaining failure would be camera- hardware-specific, not format.