Docs: TASK 30 + ai.md layout update + HANDOFF refresh

TASKS.md: TASK 30 added (gear cleanup + record location + preview
restructure + avatar fix). ai.md: audio description updated (mic now
in preview bottom row, not footer), resolution tiers updated (bottom
bar: gear/stats/resolution), MainWindow layout description updated.
HANDOFF.md: refreshed to clean-tree state, latest commit 455a409.
This commit is contained in:
2026-08-29 11:02:11 -07:00
parent 455a4096d0
commit 04eab51ead
3 changed files with 63 additions and 28 deletions
+11 -24
View File
@@ -2,39 +2,24 @@
## Branch / Commit State
**`main`**, working tree is **DIRTY** — ready to commit. See "Changes" below.
**`main`**, working tree is **CLEAN** — all changes committed and pushed.
No feature branches pre-1.0: all work lands on `main` per work unit.
## Changes (uncommitted, ready to commit)
**Latest commit:** `455a409` — mic moved to preview, bottom bar restructured, avatar fix.
**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`.
## What's In Flight
**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`.
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.
- **Test suite hangs** when running full suite (WPF `RealAppHost` dispatcher deadlock); individual
tests pass in isolation. Investigate before relying on full-suite results.
- **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
@@ -42,6 +27,8 @@ property caused TwoWay crash on startup).
- 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.
- TASK 30: gear cleanup + record location + single Start + preview layout restructure — shipped
across commits `6031a56` + `61b850f` + `455a409`. Includes: socials button + hover glow,
mic moved to preview pane, bottom bar restructured (gear left / stats center / resolution right),
avatar hidden when signed out.
- Monetization: deferred (creator rethinking price/subscription model).
- Socials hover glow: new, ready to commit.