Files
LlamaCasty/HANDOFF.md
T

3.9 KiB
Raw Blame History

HANDOFF — Session State

Branch

task24-notifications (from main @ 809c066, which is pushed) — dirty, uncommitted, TASK 24 complete and green.

Uncommitted work: TASK 24 toast notifications — COMPLETE, ready to commit

  1. Library: Notification.Wpf 11.0.0 added to ytLive.csproj (MIT; notice #10 in THIRD-PARTY-NOTICES.txt). Restore pulls Notification.CoreUI 11.0.0 + Microsoft.Xaml.Behaviors.Wpf 1.1.142 + DI.Abstractions 10.0.8.
  2. Seam: Services/INotificationService.cs (Show(title, message, AppNotificationSeverity) + Info/Success/Warning/Error extensions); Services/NotificationService.cs impl — pure BuildRequest mapping + Cards tint table, Dispatcher-marshalled Show. Host: NotificationArea x:Name="ToastArea" last child of MainWindow root grid (RowSpan=4, bottom-right above footer, Margin="0,0,12,96").
  3. Call sites (ViewModels/MainViewModel.cs): 5 MessageBox migrations (webcam ×2 → Warning, image read → Warning, sign-in unsuccessful → Warning / failed → Error) + 7 log-only promotions (go-live prep ×3 Error, frame-pump death Error, mic-missing Warning, premium-lapse Warning, saved-session sign-out Info). Offline license re-validation skip left log-only on purpose; SocialsDialog slot-delete confirm stays modal. _notifications field initialized at declaration (VM built from XAML).
  4. Tests: unit NotificationServiceTests (8 cases: routing/lifetimes/tints) + the ONE integration NotificationAreaIntegrationTests.Info_Auto_Dismisses_And_Error_Sticks (real window-hosted area; visual-tree reads marshalled via _app.Run).
  5. Build 0 warnings; 221 total, 218 pass — only the 3 pre-existing failures below.

⚠️ Landmines

  • User verdict (2026-08-23): "The AI wrote fucked up code after repeatedly and intentionally misunderstanding instructions." Extends the ai.md 2026-08-22 audit flag — trust nothing from those sessions without manual verification.
  • Pre-existing test failures are THREE (not caused by this branch):
    1. AudioPipelineTests.Mix_HonorsProviderGains_AndGameMute_KillsTheLoopback
    2. SourceNamingTests.Duplicate_Sources_Get_Next_Free_Numbered_Name (StagedScene seeds a "Game Capture" the test doesn't filter)
    3. SceneCatalogTests.EnforceBackgroundPolicy_Sets_Flag_For_All_Scenes (asserts against elements never inserted)
  • Real-MainWindow tests MUST set LayoutPathOverride (ai.md) — DB pollution wiped real data once.
  • Notification.Wpf gotchas (recorded in ai.md/TASKS.md): area routing by XAML Name; unknown AreaName silently drops; NeverExpires() = TimeSpan.MaxValue; ToHex() = #AARRGGBB.

Next steps

  1. Commit this branch (code + docs + notices, one commit), then merge/PR per Good Dog Rule (one integration test ✓).
  2. User visual pass on Windows: toasts look right bottom-right, error sticky with close button, no overlap with footer/chat.
  3. Then the stale background tests repair queue (unit-level): SourceNaming filter + SceneCatalog policy test.

Build

taskkill.exe /F /IM ytLive.exe  # if running
"/mnt/c/Program Files/dotnet/dotnet.exe" build "C:\Users\gramp\Documents\Code\projects\ytLive\ytLive.csproj"
"/mnt/c/Program Files/dotnet/dotnet.exe" vstest "C:\Users\gramp\Documents\Code\projects\ytLive\ytLive.Tests\bin\Debug\net8.0-windows10.0.19041.0\ytLive.Tests.dll"

Polar.sh resources

Resource ID
Org ID c05fb364-b967-4f6c-adf2-8a144e46d085
Product d105dfa1-497e-423b-8cd4-e0ee2e3abbc0
Price 7c1b6f70-cf8c-46df-9bc8-6703f9fa64d0
Benefit 80f66bc1-d5a3-44a1-b9ea-1709ae508535
Checkout URL https://buy.polar.sh/polar_cl_ueMy8AyAClO0o0yo19IroZwKTbD587gzUsjEW3bFapw
Validate endpoint POST https://api.polar.sh/v1/customer-portal/license-keys/validate
Key prefix LCYT-

v1 vision

A streaming tool so intuitive it needs no manual — go live or record in minutes, OBS-free.