Records what the 2026-07-21/22 sessions actually found and shipped, so the ledger matches reality: - TASK-16: A, B, D landed; C (contact card) implemented, phone acceptance pending; new unit E (history-fill boot amnesia) done. - TASK-08: shell-side state projection exists; add the maintenance- lease requirement so a deploy can never race the idle lock again (root cause of the 19:29 auto-lock-during-deploy crash). - TASK-09: stale-lock incident — panel/IRQ alive, session-lock routing stale; capture both in the resume test. - TASK-14: expand to the Auxo-style running-app surface and an unconditional Home tap; folds in the GLES OpacityMask and workspace-ratchet findings. - TASK-17: pin the iOS-like keyboard target and the Hyprland key-safety hammer test. - Mic trace path corrected to its new home. New: TASK-19 (settings control center), TASK-20 (player video + agent control), TASK-21 (reboot-to-Android confirmation), TASK-22 (settings/fullscreen tweaks), TASK-23 (culver locked-notification nudge).
2 KiB
TASK 21 — reboot-to-Android confirmation applet
Status: 2026-07-22 — scoped, not started. Size: single-session.
Why (it went off)
/usr/share/applications/blueline-reboot-android.desktop on the phone execs
blueline-reboot-android (slot switch to B + warm reboot) with ZERO
confirmation. On 2026-07-22 the overview OSK preedit bug made typed search
silently empty, Casey tapped blind, hit this entry, and the phone slot-
switched to Android mid-session. Recovery needed fastboot
(fastboot set_active a; fastboot reboot). A one-tap irreversible slot flip
must not sit bare in app search.
Also relevant: the warm reboot it performs is the cold-boot-doctrine violation (TZ/remoteproc poison) — the applet should warn about that, or the script should do the cleanest shutdown it can before switching.
Do
- Short term (one line): set
NoDisplay=truein the .desktop so it leaves app search; keep the script callable by hand. - Real fix: a confirmation surface in the shell —
- Dialog in souveraine style (the stepUp-card / sessionScreen pattern): "Switch to Android? The phone reboots into slot B; getting back needs Reboot-to-Linux from Android or fastboot."
- Confirm → run existing
blueline-reboot-android; cancel → no-op. - Point the .desktop
Execat the applet, e.g.qs -c souveraine ipc call session rebootAndroidwith the handler in sessionScreen, which already owns power actions.
- Verify the Android side has a symmetric "reboot to Linux" path so the round trip never needs fastboot; name it in the applet text.
Acceptance
Tapping the search result shows the confirmation; cancel is a no-op; confirm lands in Android; slot a boots back to Linux afterward without fastboot.
Connects to
TASK-14 (the search bug that pulled the pin), blueline-mark-boot-successful (already guards retry exhaustion — this failure was a deliberate slot switch, not retry burn), session authority / sessionScreen power actions.