Files
LlamaCasty/HANDOFF.md
T

74 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.