68 lines
4.0 KiB
Markdown
68 lines
4.0 KiB
Markdown
# HANDOFF — Session State
|
|
|
|
## Branch
|
|
`main` — **dirty (2 files, uncommitted)**, HEAD `46da995`. Not pushed.
|
|
|
|
## Uncommitted work (this session): IsBackground load-time derivation fix
|
|
|
|
The user-reported bug "Background properties show for only Starting and Live" is FIXED:
|
|
|
|
1. **Root cause confirmed:** `Source.Type`'s setter derives `IsBackground` (`Type == Background`),
|
|
but `LayoutStore.Load()`'s object initializer assigned the DB **column** afterward — rows saved
|
|
before b74f15f carry `IsBackground=0` for `Type='Background'` and stayed false after load, so the
|
|
properties panel (`SelectedElement.IsBackground`) stayed hidden in BRB/Chat/Ending.
|
|
2. **Fix** (`Services/LayoutStore.cs` ~601): hoist the `Type` parse, then
|
|
`IsBackground = type == SourceType.Background || <column>`. The OR keeps the persisted bit for
|
|
legacy DisplayCapture backdrops (column=1 must survive so the live-capture layer stays flagged).
|
|
First save after load self-heals the columns.
|
|
3. **Test** (this branch's ONE integration test):
|
|
`LayoutStorePersistenceTests.Legacy_IsBackground_Zero_Rows_Derive_From_Type_On_Load` — saves a BRB
|
|
scene holding DisplayCapture + Background + Image, zeroes the legacy columns via raw SQL, reloads,
|
|
asserts Background→true / DisplayCapture→true / Image→false.
|
|
4. Build **0 warnings**; **212 total, 209 pass** (3 pre-existing failures, below).
|
|
|
|
## ⚠️ Landmines
|
|
|
|
- **User verdict (2026-08-23):** "The AI wrote fucked up code after repeatedly and intentionally
|
|
misunderstanding instructions." This extends the ai.md 2026-08-22 audit flag — trust nothing from
|
|
those sessions without manual verification. User switched models.
|
|
- **Pre-existing test failures are THREE, not one (handoff correction — verified by stashing and
|
|
running clean HEAD):**
|
|
1. `AudioPipelineTests.Mix_HonorsProviderGains_AndGameMute_KillsTheLoopback` (gain-math)
|
|
2. `SourceNamingTests.Duplicate_Sources_Get_Next_Free_Numbered_Name` — asserts StagedScene names ==
|
|
["Text","Text2","Text3"], but StagedScene now carries a seeded "Game Capture" element (d2114c7
|
|
made all five scenes background-enabled); the test must filter the background out.
|
|
3. `SceneCatalogTests.EnforceBackgroundPolicy_Sets_Flag_For_All_Scenes` — calls `EnsureBackground`
|
|
on scenes with `HasBackground=false`; that returns null **by design**, so it asserts against
|
|
elements never inserted.
|
|
All three are fallout of the audit-flagged sessions' background-policy churn. NOT fixed here
|
|
(Good Dog Rule — this branch carries its one test only).
|
|
- **Real-MainWindow tests MUST set `LayoutPathOverride`** (see ai.md) — DB pollution wiped real data once.
|
|
|
|
## Next steps
|
|
1. Commit this fix (code + docs, one commit).
|
|
2. Fix the two stale background tests (tiny, separate commit each or together — they are unit-level repairs, not features).
|
|
3. Visual test on Windows display: pill sizing/alignment, sub-header hierarchy, Background properties panel in all five scenes (BRB/Chat/Ending should show it again).
|
|
4. Then: thumbnail drag-reorder → real compositor snapshots → transition dropdown UI (per previous plan).
|
|
|
|
## Build
|
|
```bash
|
|
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.
|