austinried e6386ebddd keep the up-next block reachable when the playing context track is removed while shuffled
Review found that removing the playing context track while shuffled with a
non-empty up-next block stranded the block behind the cursor: the
repository moves `upNextAnchor` to the preceding track, but the cursor's
re-derived slot position can land after the block, so the queued tracks
were skipped. Re-anchor the block to the track the cursor lands on, same
as `playAt`/`toggleShuffle`.

- regression test loops the sequence over fresh random seeds and asserts
  the block stays reachable; fails without the fix ("stranded behind the
  cursor").
- `removingTheCurrentTrackWhileShuffled...` now asserts the canonical slot
  the current track occupies instead of recomputing the production position
  formula (which only checked the implementation against itself).
- `QueueRepository.removeAt` returns Unit; every caller discarded the
  snapshot and re-read it, so it no longer builds one.
2026-10-04 00:30:01 +00:00
2022-04-28 15:41:45 +09:00
v2
2023-04-28 12:26:02 +09:00
v2
2023-04-28 12:26:02 +09:00
2021-08-23 14:48:24 +09:00
2022-06-20 19:01:25 +09:00
S
Description
A music streaming app for Subsonic-compatible servers
GPL-3.0
58 MiB
Languages
Kotlin 99.1%
Nushell 0.7%
Nix 0.1%