Files
LlamaCasty/bugs.md
T
gramps 8e1d6f44db Scene strip tile artwork + on-air indicator (creator ruling 2026-10-10). Top-bar tiles now carry their own art: each canonical scene's tile is a per-scene CRT-styled image stored in the internal DB (Scene.ThumbnailAssetId - additive migration, seeded at heal from the creator's five Downloads JPGs via SceneThumbnailSeedPaths), and the preview pane keeps rendering the scene's ORIGINAL background - never the tiles. One shared on-air image (Gemini 4zajyl...jpg) replaces the staged scene's tile and follows the scene swap ('the on-air screen jumps around the top bar as the user swaps scenes'): stored as an Asset BLOB tracked by the OnAirImageAssetId Setting (EnsureOnAirImage, same contract as the alert clip) with MainViewModel.OnAirSeedPath override; RefreshSnapshotsAsync shows it for the staged scene, otherwise thumbnail-or-background art, and a staged Live with no on-air art still falls back to the green placeholder (minis never render live captures). Removed the 6px #22c55e rectangle in PreviewPane's backdrop ('green outline around the preview screen' that surfaced when a scene had no background) - the outer PreviewGlow red border is the real live signal. Doubled the scene-tile labels (FontSize 10 -> 20). Fixed a real bug this surfaced: Save()'s Asset pruner only kept Source/alert-clip rows, so the first save would have DELETED the seeded tile + on-air assets - the keep-set now includes Scene.ThumbnailAssetId and the OnAirImageAssetId Setting. New Settings/Load/Save migrations + SceneThumbnailTests (4 tests: seeded tile in strip, preview keeps original bg, Live-staged tile, no-seed fallback, on-air swap + persistence). 427 pass, 0 build warnings. (Unit: strip tiles + on-air)
2026-10-10 13:27:26 -07:00

57 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Bugs
## Scene strip tile + on-air artwork assets deleted on the next Save (FIXED 2026-10-10)
The scene tiles and the shared on-air image are stored as Asset-table BLOBs (per-scene
`Scene.ThumbnailAssetId` + the `OnAirImageAssetId` Setting). `LayoutStore.Save()` runs an Asset
pruner that only keeps rows referenced by `Source`, the alert clip setting, and — after the fix —
the two new references: it `DELETE FROM Asset WHERE Id NOT IN (SELECT ThumbnailAssetId FROM Scene …,
SELECT Value FROM Settings WHERE Key = 'OnAirImageAssetId')`. Without that, the very first save after
seeding would have wiped the freshly-imported tile art, and every tile would have silently fallen
back to the scene's background until the next launch re-seeded it.
## Scene strip / F-keys out of sequence (FIXED 2026-10-10)
Report: "the ordering of the 5 screens and their corresponding F-key is out of sequence." The strip
renders `Scenes ORDER BY SortOrder` but each tab's F-key label is name-derived, so the two can drift
when a session persists a non-canonical order (on the creator's DB: Chat SortOrder 2, BRB 3 — tabs
showed "Chat F4" then "BRB F3").
Fix (same commit): `MainViewModel.LoadLayout` calls the new
`ReorderScenesToCanonical()` after loading — the five canonical scenes render in F-key order
(Starting, Live, BRB, Chat, Ending = F1-F5), renamed (non-canonical) scenes keep their loaded order
after them; the next auto-save re-stamps SortOrder to the corrected index. One integration test
(`SceneOrderTests`) seeds a Chat-before-BRB DB and asserts the loaded order + F1-F5 labels, then that
a save persists the corrected SortOrder (fresh load keeps canonical order).
## Desktop "locked" after the app starts while a fullscreen game is running (FIXED 2026-10-10)
Report: once the app is started, the desktop is "locked" — the mouse can no longer interact with it —
which made streaming live gameplay impossible.
Root cause: at launch the main window **activates** (WPF default `ShowActivated=true`). If the creator
is already playing an exclusive-fullscreen game (e.g. THE DIVISION 2 while starting a gameplay stream),
activating LlamaCasty makes Windows drop that game to the taskbar; the app's 1920×1040 window then sits
over the whole work area, so the desktop looks locked and the game can't be reached with the mouse.
Fix (same commit as this entry): the window no longer steals focus when a full-screen game owns the
foreground at launch — `MainWindow.xaml.cs` ctor sets `ShowActivated = !_viewModel.FullscreenGameRunningNow`,
and the new `MainViewModel.FullscreenGameRunningNow` (initially added in `MainViewModel.Background.cs`)
wraps `GetForegroundFullScreenMonitorIndex() != null`. Result: opening the app while in-game leaves the
game focused and alive; opening it normally behaves exactly as before.
Verification: build clean (0 warnings). Real-app reproduction/test launch deferred until the creator is
off-mouse — the real-mouse + fullscreen-detector tests must not run while a game owns the screen.
## iTunes music showing on mic meter
Playing music via iTunes causes the mic meter to show audio levels. The WASAPI
mic capture (`DataFlow.Capture`) and loopback capture (`DataFlow.Loopback`) are
separate devices. If iTunes audio appears on the mic meter, it is likely acoustic
coupling — the mic picking up speaker/headphone output. Verify by muting the mic;
if the meter still shows levels, check Windows Sound settings for stereo mix or
"listen to this device" routing.
## Live recording ≠ "recording results" shown in Chat view (NOTE ONLY — no fix)
User note (2026-09-14): the recording produced while live is completely different
from the "recording results" surfaced in the Chat view. Do NOT attempt to fix or
reconcile them pre-1.0 — this entry exists so the discrepancy is never rediscovered
as a surprise. When the reconciliation work is eventually queued, start by mapping
both recording paths side by side.