- Added About page with detailed technical stack, AGPL license info, and community links
- Added Status page for both frameset and non-frameset modes
- Fixed all navigation links to use /asteroid/frameset as home (workaround for Radiance routing)
- Removed broken AJAX loadInFrame() navigation in frameset content pages
- Fixed logout buttons to redirect properly after logout
- Added spectrum analyzer support for live-stream-audio element ID
- Updated all Home links across the site to avoid Radiance welcome page
- Made About and Status pages consistent between frameset and non-frameset modes
- Added proper navigation to all pages with About, Status, and other links
- Add user password change functionality in profile page
- Add admin password reset functionality in admin dashboard
- Fix listener count to show total from Icecast root tag
- Replace concatenate with format
- Add with-error-handling to API endpoints
- Make Icecast port binding configurable via ICECAST_BIND env var
- Add comprehensive docstrings to public functions
Note: Password reset has known issue with LambdaLite db:update
not updating password-hash field. Issue reported as an issue.