Files
LlamaCasty/HANDOFF.md
T

2.5 KiB

HANDOFF — 2026-09-08

Branch / Commit State

main HEAD = f6802c7 — take-23: stride-correct CropBounds Fill rendering.

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. 7 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.

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