# HANDOFF — Session State ## Branch / Commit State **`main`**, working tree is **DIRTY** — ready to commit. See "Changes" below. No feature branches pre-1.0: all work lands on `main` per work unit. ## Changes (uncommitted, ready to commit) **Gear menu cleanup + App Settings + single Start button (TASK 30):** - Removed Gear-menu `Save Layout`/`Save Layout As…`/`Open Layout…` + dead VM commands/methods. - App Settings panel: "Default Location for Recordings" with Browse + Use Downloads reset. - Single Start button (`Content="Start"` in XAML; `PrimaryButtonText`/`IsStreamingStart` removed). - Fallback chain: configured → `%USERPROFILE%\Downloads` → `MyVideos`. - ONE fallback test `DefaultRecordFolder_Falls_Back_To_Downloads`. **Socials button + hover glow (new):** - Socials button moved from footer (scenes/sources column) to preview bottom row, left of TRAX button, inside a horizontal StackPanel. `MouseEnter`/`MouseLeave` handlers pulse the `SocialBarElement` `DropShadowEffect` (BlurRadius 24→48, Opacity 0.7→1.0 sine wave at 30ms tick). `MouseLeave` restores original values. **Bug fix:** `TextBox` binding `RecordFolderDisplay` changed to `Mode=OneWay` (get-only property caused TwoWay crash on startup). **Files touched:** `MainWindow.xaml`, `MainWindow.xaml.cs`, `ViewModels/MainViewModel.cs`, `ytLive.Tests/LayoutStorePersistenceTests.cs`, `TASKS.md`, `HANDOFF.md`. ## 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. - **Test suite hangs** when running full suite (WPF `RealAppHost` dispatcher deadlock); individual tests pass in isolation. Investigate before relying on full-suite results. - **Pre-commit gate:** `./scripts/verify.sh` — clean build (0 warnings) + full tests + scope check. ## Todo state - TASK 18: shipped. Remaining = running-app verification (creator). - TASK 21: Increment A shipped (`eba6af5`). Decoder blocked on ffmpeg. - TASK 22 (audio sync offset): not started. - TASK 30: gear cleanup + record location + single Start — ready to commit. - Monetization: deferred (creator rethinking price/subscription model). - Socials hover glow: new, ready to commit.