siftlode/backend
npeter83 740a14af4b feat(playlists): rail sorting, consolidated item sort, persist selection
1) Fix: the selected playlist is now persisted (localStorage) and scrolled into view,
   so F5 keeps it instead of jumping to the first one.
2) Consolidate the in-detail sort: one key select (Title/Duration/Channel) + an
   asc/desc direction toggle (was separate A-Z / Z-A / shortest / longest options);
   add Channel as a sort key. Direction also orders the channel groups when grouping.
3) Left rail sorting: by name / item count / total length, asc/desc, plus an
   'unsynced first' toggle that floats playlists with unpushed edits to the top.
   Backend: list/summary now return total_duration_seconds (grouped sum). The rail
   also shows each playlist's total length. Sort prefs persist to localStorage.
2026-06-15 22:13:32 +02:00
..
alembic feat(playlists): unify Saved into a built-in Watch later playlist 2026-06-15 15:33:53 +02:00
app feat(playlists): rail sorting, consolidated item sort, persist selection 2026-06-15 22:13:32 +02:00
alembic.ini feat: M1 foundation — compose stack, FastAPI, Google OAuth, encrypted tokens 2026-06-11 01:01:37 +02:00
Dockerfile feat: M1 foundation — compose stack, FastAPI, Google OAuth, encrypted tokens 2026-06-11 01:01:37 +02:00
entrypoint.sh chore: rebrand Subfeed -> Siftlode 2026-06-14 04:40:22 +02:00
log_config.json chore: structured timestamped logging across the backend 2026-06-11 04:26:18 +02:00
requirements.txt fix(security): patch cryptography CVEs, upgrade pip at build, harden /auth/upgrade 2026-06-14 05:59:34 +02:00