- 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
- Increased auth-form max-width from 400px to 600px to match site styling
- Reduced form-group margin-bottom from 3rem to 1.5rem for better spacing
- Added display:none to error/success message boxes by default
- Message boxes now only show when server sets display-error/display-success
- Fix CSS paths in admin.chtml, login.chtml, and player.chtml
(change /static/ to /asteroid/static/)
- Fix navigation links to use correct /asteroid/ prefix
- Fix player link to include trailing slash (/asteroid/player/)
- Resolves 'layout fuckage' issues in SystemConfiguration branch
All templates now properly load CSS and navigation works correctly.
- Fixed find-user-by-id to handle BIT type database IDs
- Updated user-has-role-p to extract role from list format
- Enhanced API endpoint to return properly formatted JSON data
- Added comprehensive debugging for authentication flow
- Created login.chtml template with CLIP data binding
- Resolved 'Error loading users' issue in admin panel
- Fixed find-user-by-id to handle BIT type database IDs
- Updated user-has-role-p to extract role from list format
- Enhanced API endpoint to return properly formatted JSON data
- Added comprehensive debugging for authentication flow
- Created login.chtml template with CLIP data binding
- Resolved 'Error loading users' issue in admin panel