docs(ui): repair retail fidelity ledger

This commit is contained in:
Erik 2026-07-10 17:05:12 +02:00
parent f98050854d
commit 5931a820ea
5 changed files with 56 additions and 29 deletions

View file

@ -46,7 +46,6 @@ Copy this block when adding a new issue:
---
## #166 — Port the portal String-table lookup for WeenieError / UseDone text
## #191 — Tapping W (brief forward press) glides forward without playing the step animation
## #194 — WbDrawDispatcher._groups is never pruned (minor)
@ -1543,7 +1542,7 @@ R5/R6 touches the action list. **Where:**
---
## #158 — Character window — deferred polish
## #202 — Port the portal String-table lookup for WeenieError / UseDone text
**Status:** OPEN
**Severity:** LOW
@ -1558,7 +1557,7 @@ R5/R6 touches the action list. **Where:**
---
## #159 — Retail chat ChatVM lacks Fps/Position providers — /framerate and /loc degrade
## #195 — Retail chat ChatVM lacks Fps/Position providers — /framerate and /loc degrade
**Status:** OPEN
**Severity:** MEDIUM
@ -1577,7 +1576,7 @@ R5/R6 touches the action list. **Where:**
---
## #160 — Inventory window close never notifies the controller (NoLongerViewingContents skipped)
## #196 — Inventory window close never notifies the controller (NoLongerViewingContents skipped)
**Status:** OPEN
**Severity:** MEDIUM
@ -1596,7 +1595,7 @@ R5/R6 touches the action list. **Where:**
---
## #161 — Target-mode clicks: inventory grid cells bypass ItemInteractionController while the cursor says TargetValid
## #197 — Target-mode clicks: inventory grid cells bypass ItemInteractionController while the cursor says TargetValid
**Status:** OPEN
**Severity:** MEDIUM
@ -1615,9 +1614,9 @@ R5/R6 touches the action list. **Where:**
---
## #162 — Target-mode cursor is blind to world hover (always pending crosshair over world entities)
## #198 — Target-mode cursor is blind to world hover (always pending crosshair over world entities)
**Status:** OPEN
**Status:** DONE (`769ebef3`, 2026-07-03)
**Severity:** MEDIUM
**Filed:** 2026-07-02
**Component:** ui
@ -1632,18 +1631,23 @@ R5/R6 touches the action list. **Where:**
**Acceptance:** hovering a valid world target in target mode shows the yellow bullseye (0x28); invalid shows the red blocked cursor (0x29).
**Resolution:** `CursorFeedbackController` now accepts the world-hover guid from
the existing world-pick path and merges it only when retained UI did not claim
the pointer. Valid and invalid world targets therefore select retail cursor
states `0x28` and `0x29`.
---
## #163 — Character raise flow: adopt the pending/confirm/rollback ledger
## #199 — Character raise flow: determine and port authoritative/predicted reconciliation
**Status:** OPEN
**Severity:** MEDIUM
**Filed:** 2026-07-02
**Component:** ui / core
**Description:** Item moves reconcile optimistic state through `RecordPending`/`ConfirmMove`/`RollbackMove` (0x0022/0x0023/0x00A0); character raises apply optimistically (`CharacterSheetProvider.HandleRaiseRequest``ApplyLocalRaise`) with no pending snapshot and no rollback. A server-rejected raise leaves ranks/XP wrong until the next full property refresh. Register row AP-73.
**Description:** Item moves reconcile optimistic state through `RecordPending`/`ConfirmMove`/`RollbackMove` (0x0022/0x0023/0x00A0); character raises currently apply optimistically (`CharacterSheetProvider.HandleRaiseRequest``ApplyLocalRaise`) with no pending snapshot and no rollback. First trace whether retail predicts or waits for authoritative state. Then either remove prediction or port a faithful pending/confirm/rollback path. Register row AP-73.
**Root cause / status:** Review finding (theme T2); the spends now at least go through eventful store APIs (extraction commit). Fix direction: pending snapshot + confirm on the server's stat-update echo + rollback on failure, mirroring the item-move ledger.
**Root cause / status:** Review finding (theme T2); the spends now at least go through eventful store APIs (extraction commit). The old issue assumed retail predicts without evidence; Wave 8 requires the named/cdb behavior pin before choosing the reconciliation mechanism.
**Files:** `src/AcDream.App/UI/Layout/CharacterSheetProvider.cs` (`HandleRaiseRequest`), `src/AcDream.Core/Player/LocalPlayerState.cs` (`Apply*Raise`).
@ -1653,7 +1657,7 @@ R5/R6 touches the action list. **Where:**
---
## #164 — Migrate remaining retail-window mounts (vitals/chat/toolbar/inventory + MockupDesktop) to RetailWindowFrame
## #200 — Migrate remaining retail-window mounts (vitals/chat/toolbar/inventory + MockupDesktop) to RetailWindowFrame
**Status:** OPEN
**Severity:** LOW
@ -1672,9 +1676,9 @@ R5/R6 touches the action list. **Where:**
---
## #165 — Reconcile the UI design docs with the shipped D.2b shape
## #201 — Reconcile the UI design docs with the shipped D.2b shape
**Status:** DONE (2026-07-10, retail UI fidelity Wave 0)
**Status:** DONE (`f9805085`, 2026-07-10, retail UI fidelity Wave 0)
**Severity:** MEDIUM
**Filed:** 2026-07-02
**Component:** docs