docs+test: #372 — Options tabs blank + Gameplay buttons dead at first connected gate
The user's first Campaign OP connected gate (ACDREAM_RETAIL_UI=1, live ACE) failed: Character/Chat/Config tabs render blank, only Exit Game of the seven Gameplay buttons visibly acted. A live-DAT mount probe (committed, env-gated) proves the panel BUILDS completely — root UiTabPanel with a 4-entry tab table, all four page slots, all three page ListBoxes as UiTemplateListBox with row templates, all seven buttons as UiButton — and the three page controllers' Bind() run at mount. So the defect is in the live render/input path the whole fixture suite never exercises (mount -> ActivateTabs -> tab-click SwitchTo -> row draw / button hit-test): the OP2-blast structural-false-negative class. Blocks the OP3-OP6 gates; needs a dedicated debug slice + a gate-representative test, not a guess. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
1e36d4a7a1
commit
c3ed32fb5a
2 changed files with 143 additions and 0 deletions
|
|
@ -24,6 +24,50 @@ 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.
|
||||
|
||||
## #372 — Options panel: Character/Chat/Config tabs render BLANK on screen and most Gameplay buttons do nothing (connected-gate failure)
|
||||
|
||||
**Status:** OPEN — filed 2026-08-11 at Campaign OP's first connected gate
|
||||
(`ACDREAM_RETAIL_UI=1`, live ACE). The user found: opening the Options panel
|
||||
(F11/toolbar) shows the Gameplay tab, but switching to Character/Chat/Config
|
||||
shows a BLANK page, and of the seven Gameplay buttons only **Exit Game**
|
||||
visibly did anything.
|
||||
|
||||
**NOT a missing-layout bug — the panel builds fully.** A live-DAT mount probe
|
||||
(`tests/AcDream.App.Tests/UI/Layout/OptionsPanelLiveMountProbeTests.cs`,
|
||||
`ACDREAM_PROBE_LIVE_MOUNT=1`) confirms against the real DATs that the
|
||||
production mount (`ImportInfos(0x2100006E, 0x1000018D)`) resolves the root as
|
||||
a `UiTabPanel` with a 4-entry tab table, all four page slots
|
||||
(`0x10000212/11/1000050C/13`), all three page ListBoxes as `UiTemplateListBox`
|
||||
with their row templates (Character 3, Chat 9, Config 8), and all seven
|
||||
Gameplay buttons as `UiButton`. The three page controllers' `Bind()` also run
|
||||
at mount (the live log's `ChatOptionsPageController … 'ID_ChatOption_TextFilter_*'
|
||||
did not resolve` spam proves ChatOptionsPageController.Bind executed) — and
|
||||
every one of those `Bind` paths is green in the fixture-driven conformance
|
||||
suite.
|
||||
|
||||
**So the defect is in the LIVE render/input path the tests never exercise** —
|
||||
the mounted → `ActivateTabs()` → tab-click → `SwitchTo` (page-slot
|
||||
`Visible` flip) → row draw / button hit-test chain. Every campaign test
|
||||
exercises `Bind()` in isolation and asserts widget structure; none drives a
|
||||
real tab switch on a mounted panel and asserts the switched-in page's rows
|
||||
actually draw, nor a real click reaching a Gameplay button's handler. This is
|
||||
the exact structural-false-negative class the OP2 blast review named (green
|
||||
tests over a live-only failure). Leading hypotheses to run down in the fix
|
||||
(not yet root-caused): (a) page-slot `Visible` flips false→true AFTER the
|
||||
ListBox/`UiScrollablePanel` computed its layout while hidden, so rows are
|
||||
zero-height/culled until a relayout; (b) the switched-in page slot or the
|
||||
Type-8 root's draw/hit-test doesn't cascade to descendants built post-mount;
|
||||
(c) the "dead" Gameplay buttons (Exit-to-CharSel dialog, Use-Mouse-Turning
|
||||
chat lines, UA/RA failure text) each have an invisible EFFECT rather than a
|
||||
dead click — needs per-button confirmation. Configure Keyboard + In-Game
|
||||
Help ARE correctly inert (OP8 pending).
|
||||
|
||||
**Blocks the OP3/OP4/OP5/OP6 connected gates** — they cannot pass until the
|
||||
non-Gameplay tabs render and the Gameplay buttons act. Fix is a dedicated
|
||||
debug slice (live render-path instrumentation, NOT a guess), then a
|
||||
gate-representative test that mounts+activates+switches+asserts-drawn so this
|
||||
can never regress green again.
|
||||
|
||||
## #371 — Options-panel row viewport culls whole rows instead of clipping; tall filter blocks can vanish entirely at some scroll offsets
|
||||
|
||||
**Status:** OPEN — filed 2026-08-11 at the OP5 review-fix round (S2).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue