- Stopwatch between logo and menu: tap to start, tap to stop, tap to reset
- AppController passes md5-based version hash for app.js and style.css to prevent browser caching issues
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
SSH key copied to /var/www/.ssh/ for www-data GitHub access.
All git, composer, and console commands now run as www-data so
var/cache/ files are always owned correctly without a manual chown.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Creates rememberme_token table, drops legacy delight-im/auth tables,
aligns column types with Doctrine entity definitions. Adds UserReset
entity so users_resets is managed by Doctrine instead of raw SQL.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Symfony 8 SPA with Doctrine ORM, Symfony Security, vanilla JS frontend.
Migrated from plain PHP (delight-im/auth + raw SQL) to full Symfony stack.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>