Files
LlamaCasty/HANDOFF.md
T
gramps ff5c005bd9 feat(settings): position slide-out notifications
App Settings now chooses one of six ToastArea positions (left/right ×
top/center/bottom), defaulting to the existing bottom-right. The setting is
persisted per profile and the toast area moves immediately; edge gutters keep
bottom notifications above the footer.

ToastPositionIntegrationTests covers live repositioning and restart persistence.
617 tests green, clean build with 0 warnings.

Reference scan: OBS Notifier supports user-configured notification placement:
https://github.com/DmitriySalnikov/OBSNotifier
2026-11-11 10:10:21 -08:00

38 lines
2.5 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-11-11 (recovery fixes + alert placement; creator UI 2→3 next)
## State
- `main`; `b265d42` is the latest pushed commit. Recovery fixes and alert placement are committed locally,
verified, and not pushed yet.
- **Done:** TASK 35 scene-linked audio, TASK 55 disk hygiene, TASK 65 replay clips, TASK 37 defaults/current split.
- TASK 37: SQLite keeps an immutable default snapshot beside build-stamped current rows; App Settings can
restore the staged scene or all scenes, offline only. Webcam identity survives both restore paths.
- TASK 14·15 mic input gain was closed by creator test (−2.6 dB, works great); slices 16–18 remain.
- Recovery incident: private test hit step-down on 85% loss; encoder restart reused a broken audio pipe.
Step-down now closes/recreates audio in order; recovery notifications/stops marshal to the dispatcher.
- App Settings now controls slide-out toast position (six left/right × top/center/bottom positions).
- Verification: **617 tests green, clean build with 0 warnings** (`FAST=1 ./scripts/verify.sh`). Creator test
was stable (~5.1 Mbps, 31 fps, 0.2% drop); its log showed no step-down/reconnect event.
- Steam remains blocked on Valve identity/tax review; no app IDs or store page.
## Next action
- Next: creator-directed **2) sticky click-to-dismiss alerts → 3) core-metric change cues**, one test/commit
each. Then resume **40·A/C/D → Move → 9·5 → 14·16/17/18 → 66 → 67 →
68 → 69 → 70 → 36**.
- Ask creator before TASK 68 about first-run ON-AIR default; before gold pass, settle the Release
single-instance mutex behavior.
- TASK 34 scheduling and TASK 50 recording publish are retired; YouTube owns those surfaces.
- Do not push app commits absent a checkpoint request.
## Landmines
- Preview frame-source layers need a `PreviewPane` DataTrigger; pin each new type with a visibility test.
- Bundled-art healing compares bytes (`LayoutStore.AssetMatches`); a compiled version constant races its resource.
- Pack URIs for bundled assets must be assembly-qualified (`/LlamaCasty;component/Assets/…`).
- Media sessions are keyed by path + look; never acquire by raw path.
- Audio pipe allows one server per name; DEBUG suffixes it, Release does not.
- Any test constructing `MainWindow` must use a temporary `LayoutPathOverride` and clear it in `finally`.
- Build with the Windows `dotnet.exe` host from WSL; read render numbers in Release.
- Bundled FFmpeg stays outside the single-file exe (`ExcludeFromSingleFile="true"`).