# HANDOFF — 2026-09-08 ## Branch / Commit State **`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) 5ca9778 docs: update HANDOFF + MyMistakes.md — take-21 web transparency fix landed e002847 fix(web): feed full canvas to compositor — transparent margins reveal layers beneath (take-21) 70db344 perf(camera): MJPEG negotiation before frame reader — camera drives at its best rate 87509bc (origin/main) docs: restructure TASKS.md into a catalog ``` **Pushed to origin: `87509bc`.** 8 unpushed commits after it. ## Web Overlay — Current State 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) - **Chat overlay missing from recording:** Chat shows in preview but not in recorded output. - **Audio/sync issues:** unspecified, no log yet. - **Webcam/capture speed:** unspecified, no log yet. ## Landmines - testhost shares startup.log with app — filter by time when triaging - Stale testhost/exe locks DLL: `taskkill /F /IM testhost.exe /IM ytLive.exe` first - Do NOT run full-suite vstest (WASAPI hang); flow = clean build + per-class + scope-check - Kill app before build: `/mnt/c/Windows/System32/taskkill.exe /F /IM ytLive.exe` - ffmpeg month-end pinned; `Startup.log` "Recording saved:" shows real final path