6031a5682d
KISS: removed Gear-menu Save/SaveAs/Open Layout (redundant with auto-save; multi-layout = OBS). App Settings: first real setting — Default Location for Recordings (Browse + Use Downloads reset, fallback: configured → Downloads → MyVideos). Single Start button (pills = intent, button = trigger). Socials button moved to preview bottom row, left of TRAX; hover pulses the SocialBarElement DropShadowEffect (sine wave BlurRadius 24→48, Opacity 0.7→1.0 at 30ms). TextBox OneWay binding fix for get-only RecordFolderDisplay. ONE fallback test. Build 0 warnings, 247 tests (2 known).
48 lines
2.4 KiB
Markdown
48 lines
2.4 KiB
Markdown
# 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.
|