What's new
Features
- Module system: Runtime-loadable modules with server-side discovery from the
modules/directory - Admin controls: Enable/disable modules and reorder navigation menu in Settings
- Dynamic routing: Third-party module pages load automatically when enabled
- Docker support: Mount external modules via
MODULES_DIRenvironment variable - Example module:
pyamortiza— Brazilian mortgage amortization calculator - PWA install: Refactored install prompt using new
pwa-install.jsutility
Bug fixes
- Toast type
'error'corrected to'danger'in Settings (CardDAV and meal types sections) PUT /api/v1/preferencesnow requires admin role when changingdisabled_modules- Module stays visible in navigation when a non-admin user encounters a transient load error