Files
James Rich 9f028279b9 fix(mirror): honour managed mode on the Debug Panel route
The Debug Panel is the one Settings route deliberately exempt from the
`connected && !isManaged` gate every sibling carries, justified by a comment
saying it "reads app-local logs only". The Mirror tab put an admin write
(set_display_mirror) and arbitrary input injection on that route, so managed
mode - which exists to lock a device out of configuration - was bypassed
entirely.

Enforced in the ViewModel, because the route will not do it: arming,
one-shot frame requests, key, character and touch sends are all refused while
managed. Disarming still goes through, so a stream already running is torn
down when managed mode arrives mid-session.

The UI gates on `active = connected && !managed` rather than offering controls
that silently do nothing, and the RadioConfig comment now says what the route
actually guarantees, since its old wording is what let this through.

MirrorHeaderRow is split out of DisplayMirrorContent, which was at detekt's
LongMethod limit and could not absorb another line.
2026-09-09 11:19:44 -05:00
..