- Relocated Alpine.js, HTMX, Flowbite, Bowser, Inapp-spy, and Animate.css assets out of node_modules into safe vendor folders during build.
- Created cross-platform Node.js copy-assets.js script to copy required front-end packages.
- Updated base.html template to serve assets from secure vendor folders instead of node_modules and fixed Alpine plugin loading order.
- Modified .gitignore to ignore portable local development tools and compiled vendor assets.
- Force-pushed enhanced template loader with multi-path support
- Removed build artifacts from version control
- Added template compilation files to gitignore
- Build artifacts now properly generated during compilation
Plus submodule changes:
- Enhanced template loading logic to support multiple candidate paths
- Custom Jinja2 loader for compiled Plus templates
- Proper gitignore for build artifacts
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace raw SQL UPDATE statements with metadata caching system
- Add smart User model properties for allow_downloads/allow_live_tv
- Properties check server-specific keys (allowSync, EnableContentDownloading, etc.)
- Fix all media server clients: Plex, Jellyfin, Emby, AudiobookShelf, Navidrome, RomM, Kavita, Komga
- Remove problematic raw SQL from admin routes
- Eliminates concurrent transaction conflicts causing "database is locked" errors
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>