docs: update HANDOFF + MyMistakes.md — take-24 PasteKey fix landed

This commit is contained in:
2026-09-08 13:29:22 -07:00
parent 081e4c1bf8
commit e564e9884c
2 changed files with 17 additions and 17 deletions
+6 -13
View File
@@ -2,9 +2,10 @@
## Branch / Commit State
**`main` HEAD = `f6802c7`** — take-23: stride-correct CropBounds Fill rendering.
**`main` HEAD = `081e4c1`** — take-24: PasteKey includes CropBounds — stale raster cache fixed.
```
081e4c1 fix(web): add CropBounds to PasteKey — stale raster cache was corrupting transparency
f6802c7 fix(web): stride-correct CropBounds Fill rendering in compositor (take-23)
84aa70f docs: MyMistakes.md — take-22 full fix for widget scale/position + transparency
ed9d7c1 fix(web): CropBounds metadata + Fill-style scaling in compositor — transparent margins preserved, widget fills element rect (BROKEN — reverted)
@@ -14,21 +15,13 @@ e002847 fix(web): feed full canvas to compositor — transparent margins reveal
87509bc (origin/main) docs: restructure TASKS.md into a catalog
```
**Pushed to origin: `87509bc`.** 7 unpushed commits after it.
**Pushed to origin: `87509bc`.** 8 unpushed commits after it.
## Web Overlay — Current State
take-22 (`ed9d7c1`) BROKE the widget — the CropBounds stride was wrong (pixel index used `w = cbW` crop width instead of `src.Width` canvas stride, reading garbage from the full-canvas buffer). REVERTED by the take-23 revert of `ed9d7c1`.
take-23 (`f6802c7`) is the correct fix:
- `VideoFrame.CropBounds?: (X,Y,W,H)` — metadata on the frame
- `WebView2Manager` sets `CropBounds = (cropX, cropY, cropW, cropH)` on the LatestFrame
- `BlitContentRaw` detects CropBounds and uses Fill-style scaling (stretch to cover, no aspect preservation) using `src.Width` (canvas stride = 1920) for ALL pixel buffer indexing — not the crop width
## Resolved this session
- **Audio regression (TASK 26):** Non-event — external headset volume control was at minimum.
- **Web overlay scale/position + transparency:** take-23 at `f6802c7`. The stride fix was critical — take-22 used crop width (e.g., 800) instead of canvas stride (1920) in pixel indexing, reading garbage from the full-canvas buffer and destroying content.
take-22 (`ed9d7c1`) BROKE: stride bug (crop width used for canvas buffer indexing) — REVERTED.
take-23 (`f6802c7`): stride fixed, but PasteKey missing CropBounds → stale raster cached → transparent pixels corrupted to opaque.
take-24 (`081e4c1`): FIX. `PasteKey` now includes `frame.CropBounds`. Different crop bounds = cache miss = fresh raster with correct alpha.
## Still open (needs your run + log)