3.3 KiB
3.3 KiB
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: uncommitted (3 modified + 1 untracked: TASKS.md, ai.md, HANDOFF.md, Distribution.md).
What's In Flight
Nothing — clean tree, ready for next task.
Landmines
- TextBox.Mode=OneWay is required for
RecordFolderDisplaybinding (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
RealAppHostdispatcher deadlock); individual tests pass in isolation. Usedotnet teston 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