Files
LlamaCasty/HANDOFF.md
T

76 lines
5.4 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.
# HANDOFF — 2026-10-10 (scene-order F-key fix + desktop-lock fix; both LOCAL, uncommitted)
## At a glance
- **Branch** main (no feature branch). Pushed through `5685c5d`; 18 commits local, **not pushed**
(push at the creator's call).
- Desktop-lock fix committed as `63bf844`; **scene-order fix 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) — READY TO VERIFY, do not commit yet
- **Fix** for the scene-strip / F-key ordering report — `ViewModels/MainViewModel.Scenes.cs` new
`ReorderScenesToCanonical()` (canonical F1-F5 order at load, renamed scenes after; next save
re-stamps SortOrder) called from `MainViewModel.cs:LoadLayout`; `ytLive.Tests/SceneOrderTests.cs`
(new, seeds a Chat-before-BRB DB and asserts order + F1-F5 labels + persisted SortOrder).
See `bugs.md` entry 2026-10-10. Scope-locked files: `ViewModels/MainViewModel.Scenes.cs`,
`ViewModels/MainViewModel.cs` (1 call line), `ytLive.Tests/SceneOrderTests.cs`, `bugs.md`,
`HANDOFF.md`.
- Full suite **423 passed / 0 failed / 0 warnings**. Root cause was the creator's own DB (Chat
SortOrder 2, BRB 3); the fix heals it on next launch regardless of DB history.
- **To commit later (this unit only):** the files listed above. Then the working tree is back to
just the creator's pinned-chat unit (NOT mine to commit).
## Desktop-lock unit (COMMITTED 63bf844 — desktop "lock" fix)
- `ShowActivated = !FullscreenGameRunningNow` + `FullScreenDetectorOverride` seam + `DesktopLockTests`
(3 tests). Committed 2026-10-10. Creator still to verify in-game (launch while an
exclusive-fullscreen game owns the foreground — the game must stay live).
## 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 (scene-order unit): `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.
## What just happened — TASK 51 quality pass (committed 2026-10-09)
1. **Jitter fix (`3057069`) — `MaskSmoother`**: per-session blend 0.75×new + 0.25×previous at the
ONE worker (`CameraManager.RunEffectWorker` → `session.Smoother.Smooth(TrySegment(source))`).
State on `CameraSession`, NOT the segmenter (shared app-wide, contract-pinned to raw output). Null
resets history; first frame passes through; never aliases caller's array; ping-pong buffers (no
per-frame LOH alloc). Weights: OBS obs-backgroundremoval 0.85 default, Jitsi 0.7/0.3 best
(0.5/0.5 smears). Test `Temporal_Smoothing_Damps_Segmentation_Jitter_Across_Frames`: x=6 → first
255 / smoothed 58 / raw-unsmoothed 0. ⚠️ Gotcha: worker guards a re-queued identical frame
reference — pump frame2 as a NEW instance.
2. **Blur "heavy" fix (this commit) — quadratic radius**: `BlurRadius(strength)` = 1 + 5·s²,
`MaxBlurRadius` 12→6 small px (≈ 24 full px max). Default 0.5 = 2 small px (was 6 under the old
linear curve) — ~3× lighter spread. Rationale: StreamFX defaults Box blur Size to 5, author stops
downscaled blurs ~8px. Test `Blur_default_strength_is_gentle_and_full_strength_is_strong` pins the
mapping and step-edge behaviour (reach 9px default vs 26px max). Point-source probes vanish below
the 0.5 rounding (3 box passes dilute a spike) — use a step edge, not a spike, to measure blur.
## Next step
- Creator launches the app: the scene strip must show Starting/Live/BRB/Chat/Ending in order with
F1-F5 correct (the creator's DB had Chat before BRB; the load-time reorder heals it and the next
save re-stamps SortOrder). Also still to verify when convenient: the desktop-lock fix while an
exclusive-fullscreen game owns the foreground. Then I can commit the scene-order unit.
## Tests
- Full suite **423 passed / 0 failed / 0 skipped / 0 warnings** (2026-10-10; includes the new
`SceneOrderTests`). Known env flakes remain `Mix_HonorsProviderGains…` (fails while system audio
plays) and `RealMouseDrag…` (needs an idle desktop).
## 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.
- **Vertical recording file closed:** the recording itself is 1080×1920 60fps correctly; the
"whitespace" was the app's preview UI, not the file. Audio loudness (`ebur128`) for the private video
was never run and the thread is closed unless the user reopens it.
- Blur-heaviness = fixed (above). Yellow-border regression = stale thread.
- ⛔ 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.