62e0bf5f11
feat(mail) : MailSettings ApiResource singleton (GET/PATCH /api/mail/configuration)
...
- ApiResource MailSettings expose les operations Get + Patch sur /api/mail/configuration
- Provider + Processor relient le DTO a l'entite MailConfiguration (singleton)
- password en write-only (jamais retourne) + hasPassword en lecture
- chiffrement password via TokenEncryptor (sodium)
- securite ROLE_ADMIN sur les deux operations
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 00:06:01 +02:00
696b40ca80
feat(mail) : install symfony/messenger + browser-kit + ENCRYPTION_KEY test (deps Phase 3)
...
- ajoute symfony/messenger ^8.0 et symfony/doctrine-messenger ^8.0 pour la sync mail async
- ajoute symfony/browser-kit + css-selector en dev pour tests fonctionnels WebTestCase
- ENCRYPTION_KEY ajoutee dans phpunit.dist.xml pour permettre le chiffrement en test
- MESSENGER_TRANSPORT_DSN configure (Doctrine), messenger.yaml minimal (sera enrichi en Task 12)
- fix(orm) : ClientTicket - migre uniqueConstraints en attribut separe (Doctrine ORM 4 deprecation)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 00:05:49 +02:00
cbbc491d69
docs(mail) : plan détaillé Phase 3 — API endpoints, sécurité ROLE_CLIENT, Messenger async (15 tasks)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 23:48:43 +02:00
26fab44dab
docs(mail) : guide configuration cron OS pour mail-sync
2026-05-19 23:39:44 +02:00
0028b489e4
feat(mail) : Makefile — target mail-sync avec options FOLDER et DRYRUN
2026-05-19 23:39:21 +02:00
1fb7460f8e
feat(mail) : commande app:mail:sync avec options --folder et --dry-run
2026-05-19 23:38:40 +02:00
c47434b502
feat(mail) : MailSyncService — syncAll/syncFolder/syncFolderStructure + lock + garde 50%
2026-05-19 23:37:31 +02:00
f245863b78
feat(mail) : MailMessageRepository — findMaxUidInFolder, findLastNByFolder, findAllUidsByFolder
2026-05-19 23:35:30 +02:00
b546f528df
feat(mail) : ImapMailProvider — implémentation complète MailProviderInterface
2026-05-19 23:35:12 +02:00
b5b4288cc0
feat(mail) : DTO MailSyncReport + test unitaire
2026-05-19 23:32:29 +02:00
3a2d8d5bde
feat(mail) : install webklex/php-imap + symfony/lock, configure lock store
2026-05-19 23:32:01 +02:00
23191bdab6
docs(mail) : plan détaillé Phase 2 — ImapMailProvider, MailSyncService, commande app:mail:sync (9 tasks)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 23:29:18 +02:00
5f92cbbf4f
feat(mail) : fixture MailConfiguration OVH defaults (disabled)
2026-05-19 23:22:05 +02:00
f80680e874
feat(mail) : MailProviderInterface + MailProviderException
2026-05-19 23:20:58 +02:00
697197864f
feat(mail) : DTOs — MailFolderDto, MailMessageHeaderDto, MailAttachmentDto, MailMessageDetailDto
2026-05-19 23:20:35 +02:00
0da26ff418
feat(mail) : migration — 4 tables mail_configuration, mail_folder, mail_message, task_mail_link
2026-05-19 23:20:03 +02:00
cd9c16a990
feat(mail) : TaskMailLink entity + repository
2026-05-19 23:17:16 +02:00
0c597bc653
feat(mail) : MailMessage entity + repository
2026-05-19 23:16:52 +02:00
0c80159d7e
feat(mail) : MailFolder entity + repository
2026-05-19 23:16:17 +02:00
3cac87aa24
feat(mail) : MailConfiguration entity + repository + singleton test
2026-05-19 23:15:47 +02:00
07b7d054d5
docs(mail) : plan détaillé Phase 1 — entités, repos, migration, DTOs, interface (10 tasks TDD)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 23:10:36 +02:00
361cc8cfab
docs(mail) : master plan d'intégration mail OVH IMAP — 7 phases (foundations, sync, API, services front, UI, intégration tâches, admin)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 22:49:39 +02:00
930e1a1e37
fix(help) : retire definePageMeta auth (middleware global déjà appliqué)
2026-05-19 21:12:05 +02:00
55301c9c63
feat(help) : centre d'aide in-app — page /help avec sidebar + 9 sections markdown stylées, icône ? dans la topbar
2026-05-19 21:09:19 +02:00
5fb7fbe66c
fix(workflow) : M4 - aligne la séquence workflow.id après recréation de l'identity (évite conflit avec row Standard de M1)
2026-05-19 20:59:37 +02:00
c1560468e6
fix(workflow) : WorkflowDrawer - input position natif (MalioInputText n'accepte pas les number)
2026-05-19 20:59:37 +02:00
f86698e7cd
docs(workflows) : plan d'implémentation + validations Matthieu sur le spec + gitignore dumps locaux
2026-05-19 20:59:37 +02:00
1fd2c05db3
chore : bump version to v0.4.0
2026-05-19 20:59:37 +02:00
9f179e400d
feat(workflow) : MCP - list-statuses projectId + list-workflows + switch-project-workflow + maj descriptions create/update-task
2026-05-19 20:59:12 +02:00
6a37349cf7
feat(workflow) : bulk status désactivé sur sélection multi-projets, scoped au workflow du projet
2026-05-19 20:59:12 +02:00
52b78d6bbc
feat(workflow) : ProjectWorkflowSwitchModal + section workflow et bouton switch dans ProjectDrawer
2026-05-19 20:59:12 +02:00
e6d765f7bb
feat(workflow) : my-tasks - kanban groupé par catégorie avec badge statut, suppression drag-to-status
2026-05-19 20:59:12 +02:00
5d42009348
feat(workflow) : kanban projet et archives basés sur workflow.statuses du projet
2026-05-19 20:59:12 +02:00
8e4ddf00a8
feat(workflow) : admin UI - WorkflowDrawer + AdminWorkflowTab + remplacement onglet Statuts, suppression composants obsolètes
2026-05-19 20:59:12 +02:00
18bc96082f
feat(workflow) : DTOs front Workflow + category sur TaskStatus + workflow embarqué sur Project + service + i18n
2026-05-19 20:59:12 +02:00
6a084489ea
feat(workflow) : endpoint POST /projects/{id}/switch-workflow + processor transactionnel
2026-05-19 20:59:12 +02:00
80a41db34f
feat(workflow) : protège la suppression d'un workflow lié à des projets (409)
2026-05-19 20:59:12 +02:00
cf94635121
feat(workflow) : valide que task.status appartient au workflow du projet
2026-05-19 20:59:12 +02:00
eec61c089c
feat(workflow) : migration M4 - alignement schéma Doctrine (indexes + IDENTITY)
2026-05-19 20:59:12 +02:00
a9f87be8e5
feat(workflow) : listener garantissant un seul workflow isDefault=true
2026-05-19 20:59:12 +02:00
25f2fc4b16
feat(workflow) : fixtures - workflow Standard + statuts catégorisés + projets attachés
2026-05-19 20:59:12 +02:00
a21914312a
feat(workflow) : migration M3 - workflow requis sur Project (RESTRICT)
2026-05-19 20:59:12 +02:00
f6a947ec15
feat(workflow) : migration M2 - rattache les statuts existants à Standard + category
2026-05-19 20:59:12 +02:00
03f3c85fd8
feat(workflow) : migration M1 - création table workflow + seed Standard
2026-05-19 20:59:12 +02:00
8a68e0d397
feat(workflow) : ajoute workflow requis sur Project (RESTRICT)
2026-05-19 20:59:12 +02:00
43e6d1aed2
feat(workflow) : ajoute workflow et category sur TaskStatus
2026-05-19 20:59:12 +02:00
a3e3fd6da6
feat(workflow) : ajoute l'entité Workflow et son repository
2026-05-19 20:59:12 +02:00
b8b03048b6
feat(workflow) : ajoute l'enum StatusCategory (5 catégories canoniques)
2026-05-19 20:59:12 +02:00
Matthieu
ba86a71e12
docs(workflows) : ajout note de reprise sur autre poste
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 20:59:12 +02:00
Matthieu
6a942def3f
docs(workflows) : spec workflows de statuts par projet
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 20:59:12 +02:00