Files
LlamaCasty/HANDOFF.md
T

2.1 KiB
Raw Blame History

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