Files
LlamaCasty/HANDOFF.md
T

3.6 KiB
Raw Blame History

HANDOFF — 2026-10-09 (TASK 51 webcam background Remove + Blur — BUILT)

Branch

  • main (no feature branch). Pushed through f8dd107; everything after is local, not pushed (push at the creator's call).

Dirty files (NOT mine — do NOT commit)

  • The in-flight "pinned chat" work unit: Models/YouTube.cs, ViewModels/MainViewModel.Chat.cs, untracked Helpers/RelayCommandGeneric.cs, and its hunks in Controls/LeftPanel.xaml (lines ~599–610, the chat area). TASK 51 slice 5 edited the SAME file in a different region (the webcam properties, ~line 287); only the TASK 51 hunk was staged (git apply --cached of that hunk alone) — the pinned-chat hunks are still unstaged and untouched.
  • The creator's untracked logo art in Assets/ (llamacasty text.*, llamacasty-text-nobg*.png, thin logo wordmark.png).

What just happened — TASK 51, all five slices

  1. Engine — Google's MediaPipe Selfie Segmenter (landscape, Apache-2.0) converted to ONNX by tools/selfie-seg/ and verified vs MediaPipe's own runtime; embedded resource; onnxruntime CPU.
  2. Blur — background at ¼ res, 3 box passes, mask-blended; Remove gets edge feather.
  3. Config — WebcamSceneConfig.BackgroundEffect + BackgroundStrength, persisted (additive cols).
  4. Hookup — CameraManager renders per-scene effect variants (one segmentation per raw frame on a latest-frame-drop worker; raw path untouched); VM SyncWebcamEffects() declares/adopts them. Synthetic 720p Debug: segment 1.6 ms, Remove 3.3 ms, Blur 17.5 ms.
  5. UI — Background section in the webcam's Layers properties: Remove / Blur PillToggles, radio-exclusive, + Strength slider (visible while an effect is on). Also this session: 64-bit requirement (PlatformTarget=x64), GPL-3.0-or-later licensing, README rewrite, TASK 55 (disk hygiene) + TASK 56 (secret scan before going public) queued.

Tests

  • Full suite 412 passed / 0 failed, 0 build warnings. New: BackgroundEffectEngineTests (Remove, Blur, bundled-model contract), CameraManagerTests (variant reaches compositor + preview, raw stays raw), LayoutStorePersistenceTests (per-scene roundtrip + legacy migration), WebcamBackgroundPillTests (radio semantics + XAML wiring).
  • Known environment flakes (not regressions): Mix_HonorsProviderGains… (fails while system audio plays), RealMouseDrag… (needs an idle desktop).

Known issues / follow-ups

  • Creator's real-camera check (TASK 51): toggle Remove/Blur on a webcam, watch edges/lighting, and read startup.log → "background effects avg … ms/frame".
  • onnxruntime.dll ~17 MB; TASK 48's MSIX publish must pin -r win-x64 (x64-only already enforced).
  • Still stale, not rewritten: ai.md "Windows packaging" (Store IAP / branding-flash paid delta) and "Monetization" sections; MARCOM.md asset table (llama-logo.png doesn't exist).
  • TASK 56: secret-scan the full history BEFORE the Gitea repo (gramps/LlamaCasty) goes public.
  • Carried: "Use default background" toggle still not working (from 2026-10-07).

Also shipped after TASK 51 (2026-10-09)

  • Brand flash OFF by default (MainViewModel.ShowBrandFlash = false; feature kept).
  • Audio loudness: SpeechLeveler auto-gain in the voice chain + honest mic meter (no +10 dB boost). Creator's upload was −28.5 LUFS; the same audio through the new chain measures −17.9 LUFS.
  • Private broadcast close-out: Enter keeps / Escape deletes (KeepBroadcastDialog, videos.delete). Untested against the real API — first real private stream is the check.

Next step

  • Creator runs the app: webcam → Layers properties → Background → Remove / Blur + Strength.