No description
Find a file
Simon Kuehn f915bba966 feat: admin panel, Mistral client, attribute management, API key command
- Fix EasyAdmin 5 routing: #[AdminDashboard] attribute + easyadmin.routes loader
- Fix login: _username/_password field names, CSRF stateless token config,
  sessions directory, Opcache reload after cache:clear
- Add MistralClient behind OllamaClientInterface — switchable via services.yaml alias
- Add Attribute CRUD with EnumType form + ChoiceField display (enum-safe rendering)
- Add Article Type CRUD with AssociationField for attribute assignments
- Add app:api-keys:create console command (bcrypt-hashed, never stored as plaintext)
- Add redis ext to Docker image + symfony/redis-messenger, start workers
- Translate all UI strings to English
- Add tests: MistralClient, ApiKey, CreateApiKeyCommand, StringArrayType,
  ArticleTypeCrudController, AttributeDefinitionCrudController (82 tests total)
- Update design doc: tech stack, AI backend switching guide, ops section

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 20:15:13 +00:00
.gitea/workflows feat: add Gitea Actions CI (CS Fixer, PHPStan, Pest + migrations) 2026-05-14 04:25:50 +00:00
bin feat: install Symfony 7 skeleton with Doctrine, Messenger, UID, Security 2026-05-14 04:21:34 +00:00
config feat: admin panel, Mistral client, attribute management, API key command 2026-05-17 20:15:13 +00:00
docker feat: admin panel, Mistral client, attribute management, API key command 2026-05-17 20:15:13 +00:00
docs/superpowers/specs feat: admin panel, Mistral client, attribute management, API key command 2026-05-17 20:15:13 +00:00
migrations feat: implement Plan 2 — Article Management API 2026-05-14 05:19:20 +00:00
public feat: install Symfony 7 skeleton with Doctrine, Messenger, UID, Security 2026-05-14 04:21:34 +00:00
src feat: admin panel, Mistral client, attribute management, API key command 2026-05-17 20:15:13 +00:00
templates/security feat: admin panel, Mistral client, attribute management, API key command 2026-05-17 20:15:13 +00:00
tests feat: admin panel, Mistral client, attribute management, API key command 2026-05-17 20:15:13 +00:00
.env feat: add MistralClient as switchable alternative to OllamaClient 2026-05-17 16:03:16 +00:00
.gitignore feat: add PHPStan level 9, PHP CS Fixer, Pest; fix docker user=1000 to avoid root-owned files 2026-05-14 04:25:30 +00:00
.php-cs-fixer.php feat: implement Plan 2 — Article Management API 2026-05-14 05:19:20 +00:00
composer.json feat: admin panel, Mistral client, attribute management, API key command 2026-05-17 20:15:13 +00:00
composer.lock feat: admin panel, Mistral client, attribute management, API key command 2026-05-17 20:15:13 +00:00
docker-compose.override.yml feat: add Docker Compose environment with Caddy, PostgreSQL 17, Redis, PHP-FPM workers 2026-05-14 04:14:55 +00:00
docker-compose.yml fix: revert to FastCGI TCP — Unix socket requires root on FPM master 2026-05-17 18:03:06 +00:00
phpstan.neon feat: implement Plan 2 — Article Management API 2026-05-14 05:19:20 +00:00
phpunit.xml.dist feat: add PHPStan level 9, PHP CS Fixer, Pest; fix docker user=1000 to avoid root-owned files 2026-05-14 04:25:30 +00:00
symfony.lock feat: admin panel, Mistral client, attribute management, API key command 2026-05-17 20:15:13 +00:00