3.8 KiB
3.8 KiB
HANDOFF — Session State
Branch
main — clean, 0 warnings.
What shipped this session
- TASK 10 — Polar billing + Velopack auto-updates (steps 1–7)
- TRAX meter double-attenuation fix
- LAN infrastructure documented — all servers in
ai.md+CREDENTIALS.md - llamavault NFS/SMB diagnosis
- Control Surface UX — all 10 phases complete (StagedScene/LiveScene, thumbnails, edit gating, transitions, brand rename)
- Sliding pill toggle — green ON (#22c55e) / red OFF (#ef4444), replaces checkbox
- Backdrop → Background — full C# rename, SQL column rename with migration, asset files renamed,
Source.IsBackgroundnew→overridefix, legacy "Backdrop" display name migration - Geometry mismatch error — red text when custom background aspect ratio >5% off 16:9
- Per-scene background properties —
UseDefaultBackground+CustomBackgroundPathonSceneElement(superclass), persisted per-source viaBackgroundPath_{sourceId}/BackgroundUseDefault_{sourceId}in Settings table - All five scenes have backgrounds —
SceneCatalog.HasBackgroundreturnstruefor all canonical scenes.EnforceBackgroundPolicyno longer strips backgrounds from non-Live scenes. - Pill toggle label — "Use default background:" TextBlock before toggle
- Pill toggle wiring —
SelectedElement.PropertyChangedsubscription triggersUpdateBackgroundImage+RefreshSnapshotsAsync+ScheduleSaveonUseDefaultBackgroundchange
Background layer rules
- Every scene has a Background layer at position 0 — undeletable (trash icon hidden, context menu "Remove Layer" hidden,
RemoveElementreturns early) IsBackgroundis derived fromSourceType.BackgroundviaSource.Typesetter — impossible to forget- All five scenes have default images stored in Asset BLOBs in SQLite
- First run: pill ON for all five, shipped defaults load
- Toggle OFF → browse for custom file, FQFN stored
- On reload: try to load custom file; if missing, fall back to default asset
EnsureDefaultBackgroundre-seeds missing backgrounds on scene switch (covers Starting, BRB, Chat, Ending; Live covered by seed methods)
Current state
- 0 warnings, 0 errors
- 210/211 tests pass (1 pre-existing AudioPipeline gain-math failure)
- Deleted backgrounds re-seed automatically via
EnsureDefaultBackground
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 | 70e037cd-9bcb-414e-8b26-c82c1d268f65 |
| 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- |
Next steps
- Visual testing — run on Windows display, verify backgrounds show for all 5 scenes
- Thumbnail drag-reorder — reorder scenes via drag on thumbnail strip
- Real snapshot generation — replace placeholder colors with compositor-rendered thumbnails
- Transition dropdown UI — add XAML control to pick transition type + duration
v1 vision
A streaming tool that's intuitive and ready to go out-the-gate with nothing held back. Minimal configuration — they're ready to go live or record. Eliminate the OBS pain-point completely.