From 229242e1fed57775c3b50bddda942f9da1a526ce Mon Sep 17 00:00:00 2001 From: Erik Date: Thu, 13 Aug 2026 18:03:39 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20file=20#392=20=E2=80=94=20refused=20ful?= =?UTF-8?q?lscreen=20enter=20leaves=20the=20persisted=20flag=20diverged=20?= =?UTF-8?q?(blast=20M4;=20needs=20an=20apply-result=20seam)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- docs/ISSUES.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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