Files
LlamaCasty/HANDOFF.md
T

1.5 KiB

HANDOFF — 2026-11-05 (TASK 21 — video file layer)

State

  • main; TASK 21 is complete: a video file added from the (+) menu decodes, composites into preview and stream, loops on toggle, and stops with its last scene reference. 3·17 (text layers) completed 2026-11-04.
  • New test MediaSourceAcquisitionTests (add → one decoder starts + frames reach the layer + loop flip reaches the decoder + remove → stops). App build is 0 warnings.
  • Media is picture-only: MediaVideoSource decodes with -an, so a video file's own soundtrack is silent on stream — the loopback does not carry it because nothing plays it. Two routes recorded in task-21 item 10 (alert-style mixer feed vs TRAX-style local play); no volume slider until one exists.

Next action

  • Next queued unit: TASK 49 (chat profanity filter). Day 3's TASK 32/33 resilience slices are still outstanding — 32·4 (fragmented MP4) is the smallest.
  • Do not push absent a checkpoint request.

Landmines

  • LayerReorderPersistenceTests.RealMouseDrag_OnTheLayerList_PersistsTheReorder injects physical mouse input. Do not run it while the desktop is in use.
  • Integration tests constructing MainWindow must set a temporary LayoutPathOverride and clear it in finally.
  • Media sessions are keyed per path, not per layer: acquire through EnsureMediaSession, release through ReleaseMediaIfUnused, never AcquireAsync twice for one path.
  • Bundled FFmpeg stays outside the single-file exe (ExcludeFromSingleFile="true").