Skip to content

control_panel: loud persistent-override banner — #793 Phase 2 - #798

Open
dfattal wants to merge 1 commit into
mainfrom
feat/793-phase2-override-banner
Open

control_panel: loud persistent-override banner — #793 Phase 2#798
dfattal wants to merge 1 commit into
mainfrom
feat/793-phase2-override-banner

Conversation

@dfattal

@dfattal dfattal commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

Phase 2 of #793. Addresses the dp use persistence footgun directly.

Why

dp use writes HKLM PreferredPlugin and persists across reboots. A box left pinned (e.g. to sim_display for a test) keeps using that DP for every app and every reboot until someone notices — and #792 raised the stakes by making the override force the weaving DP too.

What

An unmissable banner at the very top of the Control Panel, shown only when an override is active:

  • amber [!] DP OVERRIDE ACTIVE - '<id>' is forced for every app and persists across reboots until reset
  • a red "Reset DP override now" button (one-click dp reset)

Rendered before the have_info early-return, so even a mis-pinned DP that breaks runtime startup is still self-evidently the cause. Uses only cimgui symbols already present (igPushStyleColor_Vec4 / igPopStyleColor).

Verified on the Leia box (dp use sim-display → panel shows the banner → reset restores auto/Leia):

Not in scope

A true session-scoped override (auto-clear on service restart) needs runtime support — the service reads PreferredPlugin from HKLM at startup with no session-scoped mechanism. Left to a follow-up; the loud banner + one-click reset covers the footgun the persistence created. Phase 3 (per-display override) also remains in #793.

🤖 Generated with Claude Code

`dp use` writes HKLM PreferredPlugin and PERSISTS across reboots — the footgun
where a box left pinned (e.g. to sim_display for a test) keeps using that DP for
every app and every reboot until someone notices. #792 made the override force
the weaving DP too, which raises the stakes.

Add an unmissable banner at the very top of the panel, shown only when an
override is active: an amber "[!] DP OVERRIDE ACTIVE - '<id>' is forced for every
app and persists across reboots until reset" line plus a red "Reset DP override
now" button (one-click `dp reset`). Rendered before the have_info early-return so
a mis-pinned DP that breaks the runtime is still self-evidently the cause. Uses
only already-present cimgui symbols (igPushStyleColor_Vec4/igPopStyleColor).

Phase 2 of #793. A true session-scoped override (auto-clear on service restart)
needs runtime support — the service reads PreferredPlugin from HKLM at startup
with no session-scoped mechanism — so it's left to a follow-up; the loud banner
+ one-click reset covers the footgun the persistence created.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cu4e8sNuHMkSsazZrQfWDE
@dfattal
dfattal requested a review from a team as a code owner July 25, 2026 17:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant