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

3.9 KiB
Raw Blame History

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.