Files
LlamaCasty/HANDOFF.md
T
gramps eba6af5b9b TASK 21 Increment A: media-source model + persistence (schema migration + round-trip test)
SourceType.MediaSource added; MediaSourceType (Video/Audio) and MediaPlaybackState
(Stopped/Playing/Paused) enums. Source gains MediaPath, MediaIsLooping, MediaVolume
(0-1 clamped), MediaPlaybackState. LayoutStore: MigrateSourceTable adds 4 guarded
ALTERs (MediaPath, MediaIsLooping, MediaVolume, MediaPlaybackState); SELECT appends
indices 26-29, INSERT adds 4 columns + params. Round-trip test
MediaSource_Config_Survives_Save_And_Reload passes. Build 0 warnings, 245/247
tests (2 known pre-existing). Gated on creator run for later integration (ffmpeg).
2026-08-29 09:43:29 -07:00

3.3 KiB
Raw Blame History

HANDOFF — Session State

Branch / Commit State

main, last pushed commit 46f4696 (manual-rename modal). Working tree is DIRTY — TASK 21 Increment A (model + persistence for media sources) is fully implemented, verified, and ready to commit. See "In flight" below.

No feature branches pre-1.0: all work lands on main per work unit.

In flight: TASK 21 — next bounded slice = Increment B (FFmpeg video decoder, items 4–5)

What is DONE (uncommitted, ready to commit): Increment A — SourceType.MediaSource enum, MediaSourceType/MediaPlaybackState enums, media config fields on Source (MediaPath, MediaIsLooping, MediaVolume, MediaPlaybackState), LayoutStore migration + SELECT + INSERT, round-trip test (MediaSource_Config_Survives_Save_And_Reload). Build 0 warnings, 245/247 tests (2 known failures), scope check clean.

What is NOT started (Increment B): MediaVideoDecoder — FFmpeg-based video decoder → VideoFrame. Needs ffmpeg present on Windows PATH or in %APPDATA%\ytLlive\tools to test. Currently absent: neither ffmpeg.exe on PATH nor in tools cache (locator's network pull hasn't run). This is a run-the-app wall — not blocked from writing the code, but blocked from headless integration testing. Can be shipped as a compile-verified code commit gated on creator run, or deferred until ffmpeg is present.

Landmines (unchanged)

  • Pre-existing test failures (do not chase): AudioPipelineTests.Mix_HonorsProviderGains… + RoundClipInteractionTests.Round_Clip_Corner_Is_Grabbable….
  • App running locks ytLive.exe → build fails MSB3027 until the creator exits the app.
  • Real-MainWindow tests MUST set LayoutPathOverride — DB pollution wiped real data once.
  • Pre-commit gate: run ./scripts/verify.sh <scope...> — clean build (0 warnings) + full tests + scope check. Do NOT trust an incremental build's "0 warnings".
  • Good Dog Rule: ONE integration test per change.
  • 🔬 Derived-solution rule: record one-off solutions in MyMistakes.md recipes registry same session.
  • Startup diagnostics: %APPDATA%\ytLlive\startup.log.
  • Media-source feature is large (12 items); each later slice (decode, compositor wiring, loop/volume, UI) is its own bounded increment — decoder needs ffmpeg present, can't be headless-tested unless ffmpeg is installed (currently absent from Windows PATH + empty tools cache).

Todo state

  • TASK 18: fully shipped (a9eb360 recording, c8374bd docs, be529a4 verify.sh, 46f4696 rename modal). Only remaining = running-app verification (creator must run the WPF app).
  • TASK 21: Increment A (model + persistence) done and ready to commit. Increment B (ffmpeg decoder) is the next bounded slice — compile-verifiable without ffmpeg, but integration test is walled.
  • TASK 22 (audio sync offset): not started.

Next steps

  1. Commit + push Increment A (the code is ready, gates passed, TASKS/HANDOFF docs updated).
  2. Commit + push the handoff correction (HANDOFF says done, not partial).
  3. Running-app verification of TASK 18 rename/dual-output (creator) — one of two run-app walls.
  4. Increment B: write MediaVideoDecoder (FFmpeg → BGRA8 VideoFrame), compile-verified, gated on creator run for integration test (ffmpeg not present headlessly).
  5. Later TASK 21 slices + TASK 22.