feat(ui): add current-launch logs tab
Add Live Chat and Logs tabs to the non-edit left panel. Expose a bounded process-local AppLog feed so the newest messages appear first without importing earlier startup.log contents or changing file logging. Ref: https://obsproject.com/forum/resources/understanding-obs-studio-log.473
This commit is contained in:
+13
-16
@@ -1,27 +1,24 @@
|
||||
# HANDOFF — 2026-11-02 (scene-local alert ticker)
|
||||
# HANDOFF — 2026-11-02 (current-launch Logs tab)
|
||||
|
||||
## State
|
||||
|
||||
- `main`; ticker work is local and not pushed.
|
||||
- Standalone `SourceType.Ticker` is addable once per scene, has per-source settings, and shows the
|
||||
in-memory current + queued alert feed. It does not persist event history.
|
||||
- Stream Alerts keeps one box per layout; its ticker shares `Ticker` settings but shows only the
|
||||
active event. Existing per-Source columns persist the settings without a schema migration.
|
||||
- Focused build succeeded; the new integration test and all `AlertTickerPreviewDisplayTests` pass.
|
||||
- `main`; scene-local ticker commit `20f0594` is local, not pushed.
|
||||
- Logs tab work is in progress: non-edit panel has Live Chat first/default and Logs second. Logs
|
||||
reads only the process-local AppLog buffer (newest 500, newest first); file logging and rotation
|
||||
remain unchanged, and prior-launch file contents are not loaded.
|
||||
- The Logs-panel integration test passes; clean app build is 0 warnings and scope check passes.
|
||||
|
||||
## Next action
|
||||
|
||||
Next queued unit: Day 1 system-message strip; also check the queued Debug-only test-access rule.
|
||||
Keep one integration test per change. Do not push absent a milestone/checkpoint request.
|
||||
Run the declared-scope verification and commit the Logs-tab unit. Then resolve the outstanding
|
||||
UI/content test failures one issue at a time, with a separate local commit for each resolved task.
|
||||
Do not push absent a milestone/checkpoint request.
|
||||
|
||||
## Landmines
|
||||
|
||||
- Build/test with Windows `dotnet.exe`; the full suite can hang in WASAPI teardown.
|
||||
- Focused ticker tests pass; clean app build is 0 warnings. Full suite reports 13–14 UI/content
|
||||
failures (508/521 or 507/521 pass), matching the prior baseline note; none is a ticker test. Their
|
||||
relationship to this change is unconfirmed, and `verify.sh` currently only allows two other tests.
|
||||
- The integration assertion is in `ytLive.Tests/AlertTickerPreviewDisplayTests.cs` and must use
|
||||
`LayoutPathOverride`/clear it in `finally` if it constructs `MainWindow`.
|
||||
- Scene tickers are dynamic per-element sources; only the AlertBox ticker uses the pump's global
|
||||
ticker overlay callback.
|
||||
- Full suite after Logs changes: 13 failed / 509 passed of 522; the same UI/content failures remain
|
||||
(none in Logs or ticker tests). They are the next queued work, not to be masked or added here.
|
||||
- Any integration test constructing `MainWindow` must set `LayoutPathOverride` to a temporary DB
|
||||
and clear it in `finally`; AppLog path overrides are also process-wide and are serialized here.
|
||||
- Bundled FFmpeg stays outside the single-file exe (`ExcludeFromSingleFile="true"`).
|
||||
|
||||
Reference in New Issue
Block a user