This branch is only reached when a session worker exists, so a failed
trim is transient: either ffmpeg has not written the first playlist yet,
or the read failed. Returning 404 told clients the stream was gone, and
many abandon it rather than polling again.
Return 503 with a Retry-After hint instead. Cancellation now logs at
debug rather than warning, since the client has already disconnected and
this endpoint is polled continuously by every viewer.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ErsatzTV.Tests references NUnit, NUnit3TestAdapter and Shouldly, but not
Microsoft.NET.Test.Sdk. Without it `dotnet test` builds the project and
then discovers nothing in it, so the two MultiSelectBase tests added
alongside the project in #2738 have never actually run.
Adding the package lets them execute; both pass, and a solution-wide
`dotnet test` still reports no failures.
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* Add select all controls to media lists
* Refine select-all helper and add coverage
* Adjust select-all button alignment
* Tighten select-all helper semantics
* Allow tests to access internal members
* Rename select-all helper and avoid shift tracking
* Simplify select-all reset helper
* Keep pager centered and move select-all right
* Add missing div
* create test project for main app; move and rename new tests
* remove core => main app reference
* cleanup unused imports
* Fix button behavior when the screen is small
* update changelog
---------
Co-authored-by: Jason Dove <1695733+jasongdove@users.noreply.github.com>