austinried 8b43de25f7 address final review: coalesce sync requests, fix page-cap edge
- SyncManager now uses a conflated request channel instead of tryLock, so a
  request that arrives during a sync (e.g. add-source switching the active
  server) is queued and runs afterwards against the then-active source
  instead of being dropped.
- Paged loops count raw server rows, not accepted entities, so an empty-id
  row on an otherwise full page no longer ends the scan early and prunes
  the unseen tail.
- The cap now fails when the page just past it is non-empty, not only when
  it is full, matching the bound the error message reports.
- fetchRank rethrows the cap instead of downgrading an over-cap album scan
  to empty ranks.
- Docs: the mutex lives in SyncManager, and the prune still holds the
  existing-id set.
2026-10-04 00:29:58 +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
2026-10-04 00:29:56 +00: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%