3.9 KiB
3.9 KiB
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
- Library:
Notification.Wpf11.0.0 added toytLive.csproj(MIT; notice #10 inTHIRD-PARTY-NOTICES.txt). Restore pullsNotification.CoreUI11.0.0 +Microsoft.Xaml.Behaviors.Wpf1.1.142 + DI.Abstractions 10.0.8. - Seam:
Services/INotificationService.cs(Show(title, message, AppNotificationSeverity)+ Info/Success/Warning/Error extensions);Services/NotificationService.csimpl — pureBuildRequestmapping +Cardstint 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"). - 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._notificationsfield initialized at declaration (VM built from XAML). - Tests: unit
NotificationServiceTests(8 cases: routing/lifetimes/tints) + the ONE integrationNotificationAreaIntegrationTests.Info_Auto_Dismisses_And_Error_Sticks(real window-hosted area; visual-tree reads marshalled via_app.Run). - 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):
AudioPipelineTests.Mix_HonorsProviderGains_AndGameMute_KillsTheLoopbackSourceNamingTests.Duplicate_Sources_Get_Next_Free_Numbered_Name(StagedScene seeds a "Game Capture" the test doesn't filter)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
- Commit this branch (code + docs + notices, one commit), then merge/PR per Good Dog Rule (one integration test ✓).
- User visual pass on Windows: toasts look right bottom-right, error sticky with close button, no overlap with footer/chat.
- 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.