Implements optional session idle and absolute timeout logic, including new environment variables for configuration. Adds last_activity_at to sessions, enforces timeouts on token refresh, and introduces a scheduler job to clean up idle sessions. Also introduces progressive lockout for failed logins and updates documentation and examples accordingly.
Improved comments and guidance in .env.example for DB variables, clarified volume path in docker-compose.yml.example #336
Fixed formatDistanceRaw usage in UserGoalsStatsComponent.vue by adding the missing argument.
Changed example SMTP settings in .env.example to use ProtonMail and generic email address. Added detailed SMTP environment variable documentation to advanced-started.md. Updated index.md to mention Apprise and password reset via email.
Replaces legacy email service with Apprise-based notification system for password reset emails. Removes core/email.py, adds core/apprise.py, and updates backend logic to inject and use AppriseService. Moves email message construction to a dedicated module, updates environment variable usage, and improves error handling and frontend feedback for email sending failures.
Renamed geocoding-related config variables for clarity and consistency, defaulted REVERSE_GEO_PROVIDER to 'nominatim', and updated related usages in activity utils. Removed unused GEOCODES_MAPS_API from .env.example. Updated documentation and example compose file to reflect changes. Upgraded Python dependencies in poetry.lock.