docs: file #407 — windowed resolution offering starves on RDP (video-mode gating)

Campaign CC gate round 1, second finding. The RDP virtual display
advertises exactly two video modes (1920x1080 + the 2056x1290 desktop),
so #391's curated catalog — correct for fullscreen mode switches —
leaves the WINDOWED size dropdown with nothing below 1920. Windowed
sizes need no video mode; the fix splits the offering by target state
(union list for the dropdown, hardware-gated validation only for the
fullscreen apply). Fix lands with this gate round's batch; live
workaround confirmed: drag-resize.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-08-16 08:58:51 +02:00
parent 344d88bff7
commit 26e6f984f4

View file

@ -24,6 +24,38 @@ What does NOT go here:
- Every session: scan OPEN issues at start; promote/close anything we touched during the session before ending. - 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. - Promoting to a Phase: mark as `DONE (promoted to Phase X)` + commit SHA where the Phase entry landed.
## #407 — Windowed resolution offering starves on RDP/virtual displays (video-mode gating)
**Status:** OPEN (Campaign CC gate round 1, 2026-08-16)
**Severity:** MEDIUM (windowed usability on remote/virtual displays)
Found live during the CC gate over RDP: the Config Resolution dropdown
offered exactly two entries — `1920x1080` and the desktop's own
`2056x1290` — because the RDP virtual display's driver advertises only
those two video modes (measured via `EnumDisplaySettings`: the physical
2560x1440 monitor's mode list is not visible to the remote session at
all; the two secondary virtual displays expose only `800x600`).
`DisplayModeCatalog` (#391) honestly curates what the monitor
enumerates — the defect is the DESIGN conflation: the WINDOWED size
offering is gated on fullscreen-capable video modes, but a windowed
client needs no video mode — any size that fits the desktop is
displayable. On a physical monitor the conflation is invisible (rich
mode list); on RDP it collapses to nothing below 1920.
Fix direction: split the offering by target state. The dropdown offers
(static modern ladder entries that fit the desktop) (curated hardware
modes), ascending; the windowed apply (a plain Size write) accepts any
offered entry ≤ desktop; the fullscreen apply keeps the hardware-catalog
validation + `GlfwDisplayModeSwitcher`'s monitor-mode-list hard guard
UNCHANGED (a fullscreen pick of a non-hardware mode refuses safely,
log-and-stay per #388 — the #392 apply-result seam is that family's
existing follow-up). #391's "an offered mode is by construction a
supported one" invariant narrows to the fullscreen half and must be
re-documented; register IA-22 (user-directed curation) gets the same
amendment. Immediate workaround (confirmed live): drag-resize the
windowed client — resize events rebuild the swapchain (#387) and the
retail UI rescales from its 800x600 authored canvas.
## #406 — Launcher records a crashed client as `exited{code:0,reason:"graceful"}` ## #406 — Launcher records a crashed client as `exited{code:0,reason:"graceful"}`
**Status:** OPEN (Campaign CC gate round 1, 2026-08-16) **Status:** OPEN (Campaign CC gate round 1, 2026-08-16)