Files
LlamaCasty/HANDOFF.md
T

4.7 KiB
Raw Blame History

HANDOFF — Session State

Branch / Commit State

main, clean tree, 11 local commits NOT pushed until the user's "commit and push" lands with this file's commit (expect main == origin/main at handoff commit). Tonight's series (newest first):

  • this commit — docs: HANDOFF rewrite
  • 4509bef — docs: record-OR-stream ruling, scheduling scope, SYNC provenance, playout declined
  • af0d372 — docs: take-two outcomes (arrival-stamping, resolver key, top-bar model, TASK 18 status)
  • 89fee6c — fix: webcam identity→device key + always-present Start + [light]LABEL[pill] order
  • 97ffc42 — chore(pump): render/submit stage-timing stats, 5s windows
  • 8dcaee0 — fix(encoder): stderr logging + any-exit-is-failure + resolver null logging
  • 7f2bda8 — fix(audio): game meter × volume (GameMeterHonestyTests)
  • 5ead064 — fix(audio): _delayedMix NRE — killed the "known failure", the hang, AND the log flood; LoopbackGain honest
  • 5a1a3c5 — fix(18): stop ends everything — pills clear, failures roll back (SessionTeardownTests)
  • 688682d — feat(9): transition(complete) close-out (never existed before)
  • 22b780e — fix(ffmpeg): month-end re-pin (daily aged out → 404) + actionable wrap

What tonight was

Creator's first native runs since the refactor: startup crash → fixed (3 stacked faults); PM audit → v1-complete declaration + out-of-product list (TASKS.md file end); first-ever real recordings → the recording pipeline now demonstrably produces H.264+AAC MP4s (Downloads\recordings\, ffmpeg cached in %APPDATA%\ytLlive\tools\).

Test suite: ZERO known failures (audio class was the last — root-caused to an uninitialized field; TASK 22's fault is recorded in its entry). Per-class Windows-host vstest runs everything including RealApp; only the FULL suite hangs (WASAPI teardown — don't run it).

OPEN — do tomorrow, in order

  1. Take 3 (user records ~30s, record-only): read %APPDATA%\ytLlive\startup.log — the new FramePump stats: n/target frames per 5s, avg render Xms submit Yms lines will name the stage behind the ~2fps producer starvation (symptoms: short file + 30x time-lapse + garbled audio, one cause — rawvideo stamps by arrival). Also check: webcam now IN the output (89fee6c), meter follows the volume knob, Stop slides pills off + Start present, top bar grouping feels right. Also: take-2's file stayed auto-named ty-…-0000.mp4 — did the rename modal appear?
  2. Then code, one integration test per change: starvation fix (from #1's data) → radio pills / record-OR-stream enforcement (ruling captured in TASKS.md TASK 18; BeginGoLive(alsoRecord) dies) → top bar Option A pending user approval (his "still not correct" message predates tonight's 89fee6c — have him LOOK first) → empty-state ruling pending: disabled / rehearsal (my recommendation) / default-record → SYNC slider placement ruling pending (feature is his, permanently; position is open).
  3. Un-asked questions (don't nag, just have the answers ready): why-stupid confirmation on simultaneous rec+stream was given (VOD copy + hardware drag) ✓; "other issues" from take 1/2 — user mentioned them but never listed; take 2 preview questions.

State of the app

Boots clean, records clean-ish (starvation pending), preview honest, top bar reordered per spec, webcam-key fixed but NEVER verified in a real recording until take 3. The user's layout DB is intact (real C920 row confirmed by direct sqlite read — the 'test-camera' log lines are testhost noise, both processes share startup.log).

Landmines

  • testhost shares startup.log with the app — filter by time when triaging.
  • Stale testhost/exe locks the DLL (MSB3027): taskkill /F /IM ytLive.exe / testhost.exe first.
  • Do NOT run full-suite vstest (hangs); do NOT claim suite totals — per-class only.
  • AudioPipelineTests is healthy now but was the "known failure" graveyard — any new failure there means a live-loop regression; read the logged stack (catches now log WITH stack + 5s throttle).
  • Real-MainWindow tests MUST use LayoutPathOverride + temp DB; VolumePushOverride seam exists so volume-slider tests never touch the machine's speakers.
  • verify.sh's full-suite step hangs from WSL — flow tonight: clean build (0 warnings) + per-class vstest + scope-check, all through the Windows dotnet.exe host.
  • ffmpeg pin: month-end rule recorded (TASKS.md); BtbN keeps dailies ~14 days.

@ User note

No unsolicited roadmap/next-step lists — work the queue above, report what changed, keep responses SHORT (his words, twice tonight: walls of text are not getting read). Good dog: one integration test per change. Committing is expected; pushing on his word — tonight he said push with the handoff.