Files
LlamaCasty/HANDOFF.md
T

46 lines
3.3 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`**, working tree is **CLEAN** — all changes committed and pushed.
No feature branches pre-1.0: all work lands on `main` per work unit.
**Latest commit:** `6826786` — docs: add Distribution.md (IP protection plan with Polar.sh backbone).
## What's In Flight
Nothing — clean tree, ready for next task.
## Landmines
- **TextBox.Mode=OneWay** is required for `RecordFolderDisplay` binding (get-only computed property).
- **Pre-existing test failures (do not chase):** `AudioPipelineTests.Mix_HonorsProviderGains…` +
`RoundClipInteractionTests.Round_Clip_Corner_Is_Grabbable…`.
- **App running locks `ytLive.exe`** → build fails MSB3027. Kill PID before building.
- **Test suite hangs** when running full vstest (WPF `RealAppHost` dispatcher deadlock); individual
tests pass in isolation. Use `dotnet test` on individual test classes, not the full suite DLL.
- **Pre-commit gate:** `./scripts/verify.sh` — clean build (0 warnings) + full tests + scope check.
## Todo state
- TASK 3 (Capture Pipeline): 27/30 items done. Open: preview compositor (16), text source (17), alerts (20). Window capture absorbed into Screen picker (done). Background removal excluded from this build.
- TASK 4 (RTMP Ingest): ✅ Shipped — all 7 items done (compositor, FFmpeg locator, encoder+RTMP, WASAPI audio, frame-pipeline, health stats, one-click go-live).
- TASK 9 (Stream Management): items 1–3 shipped (reusable stream, health monitoring). Items 4–7 open: live chat, error handling, visibility picker, full broadcast form.
- TASK 10 (Monetization): steps 1–7 shipped. Velopack auto-update pending.
- TASK 18: shipped. Remaining = running-app verification (creator).
- TASK 19/23 (Control Surface UX): ✅ Shipped — thumbnails, transitions (Cut/Fade/Move), edit mode, left panel two-state.
- TASK 20 (Hotkeys): ✅ Shipped — F1-F5 scenes, F6-F9 actions, config UI, global hotkeys, conflict detection, persistence.
- TASK 21 (Media source): Increment A shipped (model + persistence). Slices 4–12 open (decoder, FramePump wiring, compositor, loop/volume, UI, tests). Blocked on ffmpeg for integration test.
- TASK 22 (Audio sync offset): not started — required for v1.
- TASK 30: gear cleanup + record location + single Start + preview layout restructure — shipped across commits `6031a56` + `61b850f` + `455a409`.
- Monetization: deferred (creator rethinking price/subscription model).
- **File refactor (next):** MainViewModel.cs (3,900 lines) will be split into functional partials (Scenes, Background, Webcam, Audio, Trax, Socials, Streaming, Chat, Overlays, Account, License). MainWindow.xaml (1,681 lines) will be split into UserControls. Zero behavior change, tests stay green. Decided this session.
## Session summary (2026-08-29)
- Corrected task status tracking: TASK 4 → ✅ Done, TASK 3 item15 (Window capture) → ✅ absorbed into Screen picker, TASK 3 status updated to 27/30
- ai.md updated: TASK 4 steps 5-7 added as shipped, stale "frame-pipeline wiring follows" removed
- HANDOFF.md todo state expanded with full statuses for all active tasks
- Discussed file organization: MainViewModel.cs (3,900 lines) is a god-object with 49 commands mixing scenes, camera, audio, streaming, socials, overlays, and auth. Next session: split into functional partials