diff --git a/docs/ISSUES.md b/docs/ISSUES.md index 9fb720a9..83151052 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -24,6 +24,20 @@ What does NOT go here: - Every session: scan OPEN issues at start; promote/close anything we touched during the session before ending. - Promoting to a Phase: mark as `DONE (promoted to Phase X)` + commit SHA where the Phase entry landed. +## #392 — A refused/failed fullscreen enter leaves `fullscreen: true` persisted against a windowed client + +**Status:** OPEN — filed 2026-08-13 from the #376/#388 blast review (M4). +The save path persists the Full Screen flag BEFORE the apply runs; when +the state-aware apply then refuses (mode not offered / catalog absent) or +the native switch fails, the client stays windowed while settings.json and +the Config checkbox keep saying fullscreen — a silent flag/reality +divergence that survives restarts (it re-creates #377's stuck-flag +recovery shape, minus the crash). The proper fix is an apply-result seam: +`IRuntimeDisplayWindowTarget.Apply` reports what actually took effect and +`RuntimeSettingsController` reconciles the stored `DisplaySettings` — +NOT a store write-back from inside the target (layering). Small, +self-contained; part of the display block's tail. + ## #391 — Resolution list: offer only modern modes from the monitor's real mode list (user-directed curation) **Status:** DONE 2026-08-13 (this commit) — display block slice 2, pending