Watch
1
0
Fork
You've already forked SouveraineOS
0
SouveraineOS/docs/tasks/21-reboot-android-confirmation.md
Fimeg adce4441cc tasks: log 07-21 findings (culver A/B/D/E, mic wedge, overview, keyboard); add 19-23
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).
2026-07-24 10:21:44 -04:00

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

  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.