fix(chat): CH2 re-review nits — resize centering, top-aligned flow, sweep wording
Applies the seven NITs from the CH2 re-review (verdict APPROVE-WITH-FIXES, following the REJECT->rework ate0e78883): 1. SpewBoxController's centered Left was captured once via AnchorEdges.Top and replayed forever on resize (UiElement.ApplyAnchor's Left/Right-both-false branch pins a fixed margin). Anchors is now AnchorEdges.None and Tick recomputes Left every frame against the current root width. 2. OneLine=false was defaulting to UiText's bottom-pinned transcript flow (VerticalJustify honored only via ConfigureDatState, which this synthesized element never calls). Added UiText.HonorVerticalJustification so a non-DAT controller can opt the scrollable path into VerticalJustify without a full LayoutDesc binding; SpewBoxController sets VerticalJustify=Top so lines flow from the top of the 450x72 box, matching newest-at-top insert semantics. Noted as invented-pending- measurement in AP-178's row (no new row). 3. Documented the deliberate inversion of UiText.LinesProvider's oldest-first contract in SpewBoxController.Tick (SpewBoxVM.Lines feeds newest-first, which is correct specifically because the box is now top-aligned) and added a test pinning the rendered order (newer message is the topmost line), driving root.Tick. 4. Fixed the stale "retail's code default, 1" comment in SpewBoxControllerTests — MaxConcurrentItems is the shipped LayoutDesc's AUTHORED value, 4. 5. Added the matching unmapped-id diagnostics line to LiveSessionRuntimeFactory's ShowWeenieError sink, matching the pattern GameEventWiring's WeenieError/WeenieErrorWithString handlers already use. 6. Corrected the "EXHAUSTIVE Portal sweep found ZERO" overclaim in SpewBoxLayoutDumpDiagnostic: the loop's id source was DatCollection's top-level aggregate GetAllIdsOfType<LayoutDesc>(), not dats.Portal's own (which reports a count of ZERO for this type), so querying those ids against dats.Portal.TryGet established nothing about Portal either way. Corrected the same overclaim echoed in SpewBoxState's MaxConcurrentItems doc comment and in AP-178's register text (both the table row and the section-header history line). What's actually established: dats.Local hosts the SpewBox layout at 0x21000011; whether Portal also carries a copy remains unestablished. 7. Added a test exercising the full ShowWeenieError -> AddText -> SpewBox path for id 0x0561 (the 50-friends-cap refusal) in LiveSessionCommandRouterTests, mirroring LiveSessionRuntimeFactory's ShowWeenieError closure exactly since every other LiveSessionRuntimeFactory test in this tree is a source-text conformance grep, not an instantiation. Ledger: CH2 ledger row's review column now reads REJECT -> reworkede0e78883-> re-review APPROVE-WITH-FIXES -> nits (this commit); Status header flips CH2 to code-complete/closed pending the user gate, CH3 next. Build green; touched-project tests green (19/19 new/changed, 4351/3354 App.Tests unaffected pass); full Release suite 11,916 passed / 4 skipped / 0 failed (baseline 11,914/4/0 plus the two new tests this commit adds). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
235820b4f6
commit
233c30d13f
9 changed files with 216 additions and 41 deletions
File diff suppressed because one or more lines are too long
|
|
@ -1,10 +1,12 @@
|
|||
# Campaign CH — chat & interface-text retail parity
|
||||
|
||||
**Status:** ACTIVE 2026-08-09 — CH1 complete (implementation `172c6f9a` +
|
||||
review fixes `34d8a3c0`); CH2 code-complete (`77c8296e`), REJECT-reviewed
|
||||
(`docs/research/2026-08-09-ch2-review-findings.md`) and reworked
|
||||
(`e0e78883`), pending the in-client user gate (jump-in-air / jump-loaded
|
||||
refusals showing on-screen, not in chat).
|
||||
review fixes `34d8a3c0`); CH2 CODE-COMPLETE and CLOSED pending the user
|
||||
gate (`77c8296e`, REJECT-reviewed at
|
||||
`docs/research/2026-08-09-ch2-review-findings.md`, reworked `e0e78883`,
|
||||
re-reviewed APPROVE-WITH-FIXES with nits applied this commit) — the sole
|
||||
outstanding item is the in-client user gate (jump-in-air / jump-loaded
|
||||
refusals showing on-screen, not in chat). CH3 (side channels) next.
|
||||
|
||||
**Why now:** first track of the alpha-release program (chat is the most
|
||||
visible daily surface for the friend-alpha). User-directed 2026-08-09.
|
||||
|
|
@ -103,7 +105,7 @@ implementer per slice against a pinned contract (per
|
|||
|---|---|---|---|---|
|
||||
| R1–R4 research | `see docs/research/2026-08-09-chat-retail-*` | — | — | — |
|
||||
| CH1 colors | `172c6f9a` | 11,835 passed / 4 skipped / 0 failed | APPROVE-WITH-FIXES; fixed `34d8a3c0` | pending |
|
||||
| CH2 interface text | `77c8296e`, reworked `e0e78883` | 11,914 passed / 4 skipped / 0 failed | REJECT; reworked `e0e78883` (`docs/research/2026-08-09-ch2-review-findings.md`) | pending |
|
||||
| CH2 interface text | `77c8296e`, reworked `e0e78883` | 11,916 passed / 4 skipped / 0 failed | REJECT → reworked `e0e78883` → re-review APPROVE-WITH-FIXES → nits (this commit) | pending |
|
||||
| CH3 side channels | — | — | — | — |
|
||||
| CH4 commands | — | — | — | — |
|
||||
| CH5 closeout | — | — | — | — |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue