78 lines
5.4 KiB
Markdown
78 lines
5.4 KiB
Markdown
# HANDOFF — 2026-10-10 (strip tile artwork + on-air tile unit; uncommitted)
|
|
|
|
## At a glance
|
|
- **Branch** main (no feature branch). Pushed through `5685c5d`; 19 commits local, **not pushed**
|
|
(push at the creator's call).
|
|
- Scene-order unit committed `06f88f4`; desktop-lock committed `63bf844`. The **strip tile
|
|
artwork unit below is uncommitted**.
|
|
|
|
## Branch
|
|
- main (no feature branch). Pushed through `5685c5d` (TRAX toggle); everything after is local,
|
|
**not pushed** (push at the creator's call).
|
|
|
|
## New work unit (this handoff) — VERIFIED, ready to commit
|
|
Strip tile artwork + on-air indicator (creator ruling 2026-10-10). Three sub-parts:
|
|
|
|
1. **Per-scene CRT tile art** — each canonical scene's top-bar tile is its OWN image stored in the
|
|
internal DB (`Scene.ThumbnailAssetId`, additive migration, seeded at heal from the creator's five
|
|
Downloads JPGs via `SceneThumbnailSeedPaths`). The preview pane keeps rendering the scene's original
|
|
background — never the tile. `Save()` Asset prune now keeps `Scene.ThumbnailAssetId` rows
|
|
(this was a real bug: the first save would have deleted the seeded tiles).
|
|
2. **On-air image** — one shared image (`Gemini_Generated_Image_4zajyl4zajyl4zaj.jpg`) that REPLACES the
|
|
staged scene's tile ("the on-air screen jumps around the top bar as the creator swaps scenes").
|
|
Stored as an Asset BLOB tracked by the `OnAirImageAssetId` Setting (`EnsureOnAirImage`, same contract
|
|
as the alert clip; prune keep-set extended). Seed path override: `MainViewModel.OnAirSeedPath`.
|
|
`RefreshSnapshotsAsync`: staged scene → on-air art; unstaged → own thumbnail or background art;
|
|
staged Live without on-air art → green placeholder (unchanged invariant: minis never render captures).
|
|
3. **Preview + labels polish** — removed the 6px `#22c55e` rectangle in `BackdropLayer`
|
|
(`Controls/PreviewPane.xaml`) — the ONLY live signal is the outer `PreviewGlow` red border
|
|
(`MainViewModel.Streaming.cs`, transparent otherwise); the redundant rect was only visible when a
|
|
scene had no background ("green outline around the preview screen" the creator saw). Scene-tile
|
|
labels doubled: `Controls/SceneThumbnailStrip.xaml` FontSize 10 → 20.
|
|
|
|
- Files: `Models/Scene.cs`, `Services/LayoutStore.{Migrations,Load,Save,Settings}.cs`,
|
|
`ViewModels/MainViewModel.Background.cs`, `Controls/PreviewPane.xaml` (rect removed),
|
|
`Controls/SceneThumbnailStrip.xaml` (label), `ytLive.Tests/SceneThumbnailTests.cs` (4 tests).
|
|
- Full suite **427 passed / 0 failed / 0 warnings** (one run flaked on the known
|
|
`RealMouseDrag_…PersistsTheReorder` env test — needs an idle desktop — and passed on re-run;
|
|
nothing in this unit touches layer reorder). Existing 3 tile tests stub seed paths + `OnAirSeedPath`
|
|
so the suite is hermetic; the new 4th test covers the on-air swap + persistence.
|
|
- **To commit later (this unit only):** the files above. Then the working tree is back to just the
|
|
creator's pinned-chat unit (NOT mine to commit).
|
|
|
|
## Desktop-lock unit (COMMITTED 63bf844)
|
|
- `ShowActivated = !FullscreenGameRunningNow` + `FullScreenDetectorOverride` seam + `DesktopLockTests`.
|
|
Creator still to verify in-game (launch while an exclusive-fullscreen game owns the foreground).
|
|
|
|
## Scene-order unit (COMMITTED 06f88f4)
|
|
- `ReorderScenesToCanonical()` + `SceneOrderTests`. The creator's DB (Chat SortOrder 2, BRB 3) heals to
|
|
canonical F1-F5 order at load; next save re-stamps SortOrder.
|
|
|
|
## Dirty files — current reality (2026-10-10)
|
|
- **NOT mine — do NOT commit:** the creator's in-flight "pinned chat" unit (`Models/YouTube.cs`,
|
|
`ViewModels/MainViewModel.Chat.cs`, untracked `Helpers/RelayCommandGeneric.cs`, and **its hunks in
|
|
`Controls/LeftPanel.xaml`**), plus the creator's untracked `Assets/llamacasty*` art.
|
|
- ⚠️ Pre-commit: `scripts/verify.sh` runs `scripts/scope-check.sh` against ALL working-tree changes —
|
|
the not-mine pinned-chat + art files WILL flag. Pass them as declared-known.
|
|
|
|
## Next step
|
|
- Commit this unit (files listed above; gate already green at 427/427, 0 warnings). Then the creator
|
|
launches the app on the real DB: the five CRT tiles seed from `C:\Users\gramp\Downloads\Gemini_…`,
|
|
the staged scene's tile shows the on-air image, the preview shows the scene's real background with no
|
|
green frame, and the tile labels are legible (FontSize 20). Push is still at the creator's call.
|
|
|
|
## Tests
|
|
- Full suite **427 passed / 0 failed / 0 skipped / 0 warnings** (2026-10-10). Known env flakes:
|
|
`Mix_HonorsProviderGains…` (fails while system audio plays), `RealMouseDrag…` (needs an idle desktop),
|
|
`Round_Clip_Corner…` (grab/geometry under active mouse). The verify gate whitelists only the latter two —
|
|
`RealMouseDrag…` failing mid-session needs one re-run when the desktop idles.
|
|
|
|
## Also still open
|
|
- **Vertical-format regression (STALE, not fixed):** 1080p60 vertical selection no longer shrinks the
|
|
capture border in the preview. Mechanism mapped (see prior summary): the crop Rectangle
|
|
`Controls/PreviewPane.xaml:319-322` bound to `OutputRectX/Y/W/H` + `IsOutputCropped`, driven by
|
|
`MainViewModel.Streaming.cs` `ApplyStreamQuality` from `SelectedQuality` (binding + ctor only,
|
|
`new("Vertical 1080p60", 60, 8.0, 1080, 1920)`), `DimRects` in `MainViewModel.cs:91-94`. Root cause
|
|
unknown — paused.
|
|
- ⛔ Sudo password rotation pending (user; then update both password lines in `CREDENTIALS.md`).
|
|
- TASK 56 secret scan before `gramps/LlamaCasty` goes public. TASK 55 disk hygiene queued. |