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).
44 lines
2 KiB
Markdown
44 lines
2 KiB
Markdown
# 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
|
|
|
|
1. Short term (one line): set `NoDisplay=true` in the .desktop so it leaves
|
|
app search; keep the script callable by hand.
|
|
2. 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 `Exec` at the applet, e.g.
|
|
`qs -c souveraine ipc call session rebootAndroid` with the handler in
|
|
sessionScreen, which already owns power actions.
|
|
3. 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.
|