- PlayerBar no longer overlaps the sidebar on desktop (offsets by sidebar width),
so Settings/collapse stay reachable while playing.
- Sidebar collapse toggle moved onto the header logo icon; remove bottom button.
- Prod server: catch-all proxy so any non-SPA, non-asset request is forwarded to
ABS — only Shelfless needs to be exposed, ABS stays internal.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
React + Vite + TypeScript SPA covering the full ABS feature set (library
browsing, item detail, metadata/cover editing, podcasts, player with session
sync, admin: users/libraries/scanner/server settings). Dev uses a dynamic
CORS proxy; production is served by server/index.mjs (static + reverse proxy
to ABS_URL). Includes systemd unit and installer under deploy/.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>