Four visual residuals from the lead's own live-client captures of
1.0.2-cc.m, all root-caused via decomp + live-DAT evidence:
- R4-1: Skills credits value overlapped mid-caption again. Root cause
was a missing UiLayoutPolicy raw-edge reflow on UiButton's value-child
rect (the child is base-inherited across four sibling buttons of
differing widths, so its baked-in OriginalParentWidth diverges from
the actual 231px-wide Skills credits button) plus an HJustify.Right
value child mapped to Center instead of a real far-edge Right.
- R4-2: the single-sprite scrollbar thumb tiled (GL_REPEAT) instead of
drawing once — DrawTiled was reused for a small fixed marker graphic
whose native size is far smaller than the track-proportional thumb
rect. New DrawThumbMarker draws exactly one native-size instance.
- R4-3: the skills info-box formula line clipped past the surrounding
gold frame's own authored bottom edge (the pane's own raw box is 20px
taller than the frame that visually contains it) — clamp the pane's
Height to the frame's bottom (register AD-105, since retail's
ShowSkillsText has no code relationship to the frame to cite).
- R4-4: the Appearance help text started mid-sentence — the box was
never touched by its page controller, so it kept UiText's chat-style
PreserveEndOnLayout=true default; the scroll model's wasAtEnd check is
vacuously true on its first-ever overflow transition, pinning the
first render to the bottom. Set PreserveEndOnLayout=false (a static
top-oriented report, not a transcript) and wired the box's own nested
authored scrollbar, never wired before.
App suite live-DAT env 5372/3 -> 5379/3 (+7, zero regressions). Runtime
1735/0 unchanged. Full solution 14585/4 skips/1 failure (the documented
Core.Net NakEmission full-solution-only flake, confirmed standalone-pass).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>