fix(web): re-point the widget diagnostic at the REAL document — the transparency premise gets verified

The one-shot dump + alpha log was bound to the FIRST capture ever = the initial
about:blank placeholder (alpha=0, rgb=0, 5/5 sessions) — a blind instrument. The
pre-parse transparency injection (1a39b09) is intact but was NEVER verified
(MyMistakes '? VERIFY'), and the 2026-09-10 take still shows a black, opaque
block. Stop guessing: NavigationCompleted for a non-about:blank document now
arms WidgetDumpRemaining=5; the next 5 post-paint captures dump
%TEMP%\ytLive-web-<id>-w1..5.png + shared AlphaStats(min/max/mean/zero%) +
FindContentBounds to startup.log.

The stats line alone names the branch: zero%≈opaque ⇒ the injection did not hold
for this widget's CSS (fix: !important stylesheet / chroma-key); large zero% +
tight bounds ⇒ capture IS transparent and the black lives in the compositor
blend. No new test: WebView2 runtime is not instantiable in the suite and the
re-point is log-only; 8/8 WebView2 tests still pass.
This commit is contained in:
2026-09-10 12:08:53 -07:00
parent f3d578c81b
commit ea347f211c
4 changed files with 125 additions and 91 deletions
+12
View File
@@ -63,6 +63,18 @@ do the same via a pre-parse user.css. Kept the nav handlers as a post-load re-as
3. Do not delete code paths that fix one axis (crop=bbox) while debugging another
(source alpha). Revert scope creep; keep layer contributions separable.
**2026-09-10 follow-up (still not verified, now being resolved):** the "? VERIFY" above was
never closed because the diagnostic itself was blind — the dump + alpha log fired on the FIRST
capture ever, which is always the initial about:blank placeholder document (alpha=0, rgb=0,
5/5 sessions). The REAL widget frame was never seen. The 2026-09-10 take still showed a black,
opaque block with the animation running fine, so either (a) the pre-parse injection does not
hold for this widget's own CSS (capture opaque) — fix = stronger injection / chroma-key — or
(b) the capture has transparent margins and the black lives in the compositor blend. `1a39b09`'s
injection is intact; `WidgetDumpRemaining = 5` now dumps the real widget document post-paint
(`%TEMP%\ytLive-web-<id>-w1..5.png`) + shared `AlphaStats` line → the next app launch names
which branch. Do NOT re-derive the whole transparency story again from this text; the 5-line
diagnostic is the shortest path.
### Shrink / re-encode an image for the README (screenshots → small hero image)
Worked out 2026-08-29 (the recipe was NEVER recorded the first time it was done, so