35 lines
2.1 KiB
Markdown
35 lines
2.1 KiB
Markdown
# HANDOFF — 2026-09-06
|
||
|
||
## Branch / Commit State
|
||
|
||
**`main` HEAD = `e002847`** — web transparency fix (take-21): feed full canvas to compositor.
|
||
|
||
```
|
||
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
|
||
0f059ec docs: HANDOFF — #12 landed (element rasters), MJPEG next, web transparency spin-guarded
|
||
6d11e8b perf(compositor): reuse per-element rasters in-place — take-16 GC-churn fix
|
||
87509bc (origin/main) docs: restructure TASKS.md into a catalog — one file per task in TASKS/
|
||
```
|
||
|
||
**Pushed to origin: `87509bc`.** 4 unpushed commits after it.
|
||
|
||
**`today-slices` branch @ `ce87490`** — preserves 17-commit chain. Fallback recovery.
|
||
|
||
## Resolved this session
|
||
|
||
- **Audio regression (TASK 26):** Non-event — external headset volume control was at minimum, not a code bug.
|
||
- **Webcam black square / web overlay transparency:** FIXED at `e002847`. Root cause: `bccdb48` introduced alpha cropping; the CROP was fed to the compositor, which `UniformToFill`-zoomed the opaque content to cover the entire element rect. Fix: feed the FULL `1920×1080` canvas to the compositor; transparent margins reveal layers beneath; the alpha crop (`outPixels`) is used only for the preview `WriteableBitmap`. `0f441d8` (take-19) had the right insight but introduced `CanvasRing` alongside the fix — the ring reuse caused additional breakage. Take-21 keeps the single `CanvasScratch` buffer (no ring), feeds full canvas, Epoch increments per frame.
|
||
|
||
## MyMistakes.md update needed
|
||
|
||
The spin-guard entry for the web overlay needs updating with the take-21 resolution. See that file.
|
||
|
||
## 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
|