# TODO This file tracks the next practical work items for BearWave on macOS. ## High Priority - Harden packaging and distribution - move beyond the current SwiftPM-staged debug-style app bundle - clarify signing, entitlements, and notarization path - Expand playback diagnostics - expose clearer failure reasons per stream - improve visibility into buffering, retry, offline, and codec issues - Add more verification around playback behavior - playback state transitions - metadata updates - retry behavior ## Medium Priority - Improve cache management - add eviction for API cache - add eviction for artwork cache - review memory growth during long sessions - Refine artwork behavior - make fallback ordering more explicit - verify radio artwork behavior across edge cases - Tighten documentation drift - keep `README.md`, `AGENTS.md`, and `ARCHITECTURE.md` aligned with code changes ## Lower Priority - More advanced favorites/folder workflows - Additional menu bar workflows - More targeted UI polish for empty/loading/error states ## Technical Debt - `AppModel` should stay under control as the app grows; watch for coordinator bloat - `script/build_and_run.sh` is central to local development and currently carries packaging assumptions that should eventually move into a cleaner release pipeline - The share-folder copy of the repo should not be treated as the current source of truth ## Things Not To Regress - Global search must stay independent from the current browse page - Search ranking must stay stricter than raw API substring results - Explicit playback states must remain visible in the model and UI