docs: audit and update documentation for Dec 10 (#556)

STATUS.md:
- add PRs #550-554 (pagination, album management, playlist toggle)
- update last modified date

docs/frontend/state-management.md:
- add pagination support to tracks cache section

docs/backend/background-tasks.md:
- add ATProto sync and teal scrobbling to task list

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>

authored by zzstoatzz.io Claude and committed by GitHub 0c010d5b 9facaf5e

Changed files
+26 -2
docs
+21 -1
STATUS.md
··· 47 48 ### December 2025 49 50 #### public cost dashboard (PR #548, Dec 9) 51 52 - `/costs` page showing live platform infrastructure costs ··· 354 355 --- 356 357 - this is a living document. last updated 2025-12-09.
··· 47 48 ### December 2025 49 50 + #### pagination & album management (PRs #550-554, Dec 9-10) 51 + 52 + **tracks list pagination** (PR #554): 53 + - cursor-based pagination on `/tracks/` endpoint (default 50 per page) 54 + - infinite scroll on homepage using native IntersectionObserver 55 + - zero new dependencies - uses browser APIs only 56 + - pagination state persisted to localStorage for fast subsequent loads 57 + 58 + **album management improvements** (PRs #550-552): 59 + - album delete and track reorder fixes 60 + - album page edit mode matching playlist UX (inline title editing, cover upload) 61 + - optimistic UI updates for album title changes (instant feedback) 62 + - ATProto record sync when album title changes (updates all track records + list record) 63 + 64 + **playlist show on profile** (PR #553): 65 + - restored "show on profile" toggle that was lost during inline editing refactor 66 + - users can now control whether playlists appear on their public profile 67 + 68 + --- 69 + 70 #### public cost dashboard (PR #548, Dec 9) 71 72 - `/costs` page showing live platform infrastructure costs ··· 374 375 --- 376 377 + this is a living document. last updated 2025-12-10.
+2
docs/backend/background-tasks.md
··· 7 background tasks handle operations that shouldn't block the request/response cycle: 8 - **copyright scanning** - analyzes uploaded tracks for potential copyright matches 9 - **media export** - downloads all tracks, zips them, and uploads to R2 10 11 ## architecture 12
··· 7 background tasks handle operations that shouldn't block the request/response cycle: 8 - **copyright scanning** - analyzes uploaded tracks for potential copyright matches 9 - **media export** - downloads all tracks, zips them, and uploads to R2 10 + - **ATProto sync** - syncs records to user's PDS on login 11 + - **teal scrobbling** - scrobbles plays to user's PDS 12 13 ## architecture 14
+3 -1
docs/frontend/state-management.md
··· 124 ### tracks cache (`frontend/src/lib/tracks.svelte.ts`) 125 - caches track list globally in localStorage 126 - provides instant navigation by serving cached data 127 - - invalidates on new uploads 128 - includes like status for each track (when authenticated) 129 - simple invalidation model - no time-based expiry 130
··· 124 ### tracks cache (`frontend/src/lib/tracks.svelte.ts`) 125 - caches track list globally in localStorage 126 - provides instant navigation by serving cached data 127 + - cursor-based pagination with `fetchMore()` for infinite scroll 128 + - pagination state (`nextCursor`, `hasMore`) persisted alongside tracks 129 + - invalidates on new uploads (resets to first page) 130 - includes like status for each track (when authenticated) 131 - simple invalidation model - no time-based expiry 132