Bookmark Sync
- Two-way bookmark sync with ABS server
- Bookmarks and chapters work on inactive cards (starts playback from that point)
- Bookmark button always visible on all cards
Home Screen
- Add genre sections to home screen via Customize Home (+) button
- Header and bottom nav hide on scroll, reappear on scroll up
- Section detail grid/list view persists across sheets
- Playlist podcast episodes show correctly (#143)
Series
- Sub-series grouping with expandable headers, animated expand/collapse
- Grid view shows stacked cover tiles for sub-series
Admin
- Popular podcasts discovery with iTunes top charts and genre filters (#140)
- Bulk download/delete podcast episodes
- Match podcast metadata via iTunes search
- View user listening sessions
- Quick podcast management access from library screen (root only)
Sleep Timer
- Auto sleep can stop at end of chapter instead of fixed duration (#142)
- Sleep timer only shows countdown on the active card
Battery & Performance
- ~77% reduction in background battery drain during streaming
- Fixed ExoPlayer buffer byte cap (Long/int cast bug)
- Position stream polling reduced from 60fps to 2Hz
- Optimized sleep timer, accelerometer, and home widget intervals
- Force direct play to avoid unnecessary server transcoding
- Background timers stop on pause, restart on play
Bug Fixes
- Fix iOS playback silently freezing near end of USAC/xHE-AAC audiobooks
- Fix Android Auto resuming from stale position after listening further in-app
- Fix custom headers not sent on socket.io connections (#148)
- Fix chapter bar flickering on tab switch
- Fix covers not updating when changed on server
- Fix large library search/series timeouts
- Fix Download Remaining count in series sheet
- Fix account sheet safe area and scrollability with many accounts
- Fix bottom sheet safe areas (genre picker, customize, account)
Other
- Account switcher redesigned with server info
- Admin controls restricted to root users only
- Covers auto-bust cache on server changes