- Add frameset architecture for persistent audio playback across navigation
- Create frameset-wrapper.chtml as main container with two frames
- Create audio-player-frame.chtml for persistent 80px bottom player frame
- Create front-page-content.chtml and player-content.chtml for frame content
- Add routes for frameset wrapper, content frames, and player frame
- Audio continues playing when navigating between pages
- Pure Lisp/HTML solution with no additional JavaScript dependencies
- Player frame includes quality selector and now-playing display
- Updates every 10 seconds via /api/asteroid/partial/now-playing-inline
- Add /api/asteroid/partial/now-playing-inline endpoint for inline text
- Refactor admin.js to use server-side partial (removes 23 lines of JSON/XML parsing)
- Fix hardcoded path in convert-to-docker-path to use *music-library-path* variable
- Consistent with front-page and player refactoring from upstream
- Improves portability and reduces client-side JavaScript complexity