Commit Graph
1033 Commits
Author SHA1 Message Date
austinried d76f236f59 downloads: recover reset observation and skip progress work 2026-11-14 12:05:29 +00:00
austinried 50c4dfce03 sync: batch playlist origin lookups 2026-11-14 12:05:29 +00:00
austinried 746446be86 queue: make reset remapping origin-safe and bounded 2026-11-14 12:05:29 +00:00
austinried df8cf73385 ui: preserve pending older queue loads 2026-11-14 12:05:29 +00:00
austinried 97e165e8c2 ui: preserve queue windows during reconciliation 2026-11-14 12:05:29 +00:00
austinried eb4d537437 test: drop reverse queue debug output 2026-11-14 12:05:29 +00:00
austinried 31e4596860 ui: reconcile queue edits against current rows 2026-11-14 12:05:29 +00:00
austinried b95b8c3569 ui: validate queue moves against content revisions 2026-11-14 12:05:29 +00:00
austinried e4549f5fa1 test: combine queue removal coverage 2026-11-14 12:05:29 +00:00
austinried e2c3f31c26 ui: serialize queue moves with row updates 2026-11-14 12:05:29 +00:00
austinried 2766affa65 ui: roll back rejected multi-step queue edits 2026-11-14 12:05:29 +00:00
austinried 4d5328d8a0 playback: report whether queue edits were applied 2026-11-14 12:05:29 +00:00
austinried 97e700a1ab test: cover rejected queue edit snackbars 2026-11-14 12:05:29 +00:00
austinried 5fadc21455 ui: roll back rejected queue edits 2026-11-14 12:05:29 +00:00
austinried 64ec3265b7 ui: reject stale and mixed-generation queue edits 2026-11-14 12:05:29 +00:00
austinried 9514bc501a downloads: reconcile bulk deletion as one batch 2026-11-14 12:05:29 +00:00
austinried 35f4f9178b downloads: adapt reset tests to prepared publication 2026-11-14 12:05:29 +00:00
austinried e4d97f7aba downloads: harden queue reset reconciliation
Refresh per-source rows under the reconciliation mutex before reset decisions and chunk queue-visibility checks to respect SQLite bind limits.

Cover a blocked pre-completion emission and source deletion at the bundled SQLite variable limit.
2026-11-14 12:05:29 +00:00
austinried cc94dfc458 downloads: reconcile visible queue reset baselines
Consume captured reset points on the first collector emission and leave pending sources uninitialized during reconciliation.

Build ordered baselines from queue-visible completed downloads and ignore pruned-row transitions while retaining all-row state and recovery.
2026-11-14 12:05:28 +00:00
austinried 79915d6c7a library: skip queue resets for missing songs 2026-11-14 12:05:28 +00:00
austinried 4e72b1f38d downloads: preserve completed reset baselines 2026-11-14 12:05:28 +00:00
austinried ed19ca2ece library: reconcile queues after starred and download changes 2026-11-14 12:05:28 +00:00
austinried 481f12c892 sync: preserve legacy identity during queue resets 2026-11-14 12:05:28 +00:00
austinried 544b442f4e sync: make queue reset publication recoverable 2026-11-14 12:05:28 +00:00
austinried 705c93053f sync: publish queue resets after commit
Prepare queue and playback reconciliation inside the reset transaction without publishing listener, cache, or revision state. Publish through a non-suspending, non-cancellable post-commit step so committed resets are never retried over later edits.

Keep the pending-origin clear under the cursor lock without a redundant single-statement transaction, and cover listener and post-clear write failures.
2026-11-14 12:05:28 +00:00
austinried ffc61bdbd2 sync: use playlist deletion count 2026-11-14 12:05:28 +00:00
austinried 3de80dacdd sync: reuse playlist song deletion helper 2026-11-14 12:05:28 +00:00
austinried 95c8a2a915 sync: preserve queue lock order during resets
Move pending-origin clearing into the queue mutation lock, acquire the cursor lock before Room, and clear pending rows before cache, revision, or listener side effects. Keep sync listener reconciliation transactional for retries while preserving direct reset commit visibility.
2026-11-14 12:05:28 +00:00
austinried 92e5bb45c9 sync: simplify library deletion 2026-11-14 12:05:28 +00:00
austinried 2afad4fa0d sync: verify updates recreate pending origins 2026-11-14 12:05:28 +00:00
austinried 4e51f906fe sync: consume pending origins with queue resets 2026-11-14 12:05:28 +00:00
austinried 548bf39136 sync: reset queues only for successfully changed origins 2026-11-14 12:05:28 +00:00
austinried acc820e263 playback: reconcile detached items during offline transitions 2026-11-14 12:05:28 +00:00
austinried 4b5d02f17b playback: keep detached fallback out of published position 2026-11-14 12:05:28 +00:00
austinried fd0eb0a9a0 playback: retain durable reset identity through Media3 2026-11-14 12:05:28 +00:00
austinried 01ccc6475d playback: resolve song tap behavior inside queue mutation 2026-11-14 12:05:28 +00:00
austinried a9738c6311 playback: preserve detached fallback queue state 2026-11-14 12:05:28 +00:00
austinried 767c3db1ae playback: serialize transitions and preserve detached playback
Run transition bookkeeping under the queue mutation lock, retain detached playback when its final survivor is removed, and restore offline repeat wrapping without a forward survivor. Centralize detached survivor rebuilding and add regressions for each defect.
2026-11-14 12:05:28 +00:00
austinried 018f30a3d8 playback: preserve playback across canonical queue resets 2026-11-14 12:05:28 +00:00
austinried 762639cab5 queue: invalidate keyset cursors on edits 2026-11-14 12:03:42 +00:00
austinried 94c7fba536 queue: preserve ambiguous legacy reset identity 2026-11-14 12:03:42 +00:00
austinried ddc6811c34 queue: suppress shuffled context removal 2026-11-14 12:03:42 +00:00
austinried 04dba5ef76 queue: leave ambiguous migrated fragments unreset 2026-11-14 12:03:42 +00:00
austinried 0448842f60 queue: retain reset identity across duplicate edits 2026-11-14 12:03:42 +00:00
austinried b9085af44c queue: preserve fragmented origin entry identity 2026-11-14 12:03:42 +00:00
austinried 44e2eb7ae8 queue: add serialized, origin-aware mutations 2026-11-14 12:03:42 +00:00
austinried f43bc877f0 Revert "brand: lift the icon background off black"
This reverts commit d9af47323a.
2026-11-14 09:22:54 +00:00
austinried d9af47323a brand: lift the icon background off black
The near-black #120C12 behind the icon reads as black on dark home
screens, and the same fill backs the store icon, feature graphic and
README logo. Raise it to a plum #2D1C2D (L* 4.6 -> 13.1) so the
background is visible without costing the #F862F8 foreground its
contrast. The amber nightly background moves from #1A1200 to #2E2000 by
the same lightness step, so it stays amber instead of drifting to
brown-black.

Raster assets were recoloured from the committed originals; the vector
sources in images/ have no background and are unchanged.
2026-11-12 13:07:46 +00:00
austinried 02404ef562 ui: rename the song tap preference 2026-11-12 13:03:41 +00:00
austinried d05fb6fc07 playback: resolve the pending tap preference inside the start lock 2026-11-12 07:53:06 +00:00