matthieu
3a2d8d5bde
feat(mail) : install webklex/php-imap + symfony/lock, configure lock store
2026-05-19 23:32:01 +02:00
matthieu
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
matthieu
5f92cbbf4f
feat(mail) : fixture MailConfiguration OVH defaults (disabled)
2026-05-19 23:22:05 +02:00
matthieu
f80680e874
feat(mail) : MailProviderInterface + MailProviderException
2026-05-19 23:20:58 +02:00
matthieu
697197864f
feat(mail) : DTOs — MailFolderDto, MailMessageHeaderDto, MailAttachmentDto, MailMessageDetailDto
2026-05-19 23:20:35 +02:00
matthieu
0da26ff418
feat(mail) : migration — 4 tables mail_configuration, mail_folder, mail_message, task_mail_link
2026-05-19 23:20:03 +02:00
matthieu
cd9c16a990
feat(mail) : TaskMailLink entity + repository
2026-05-19 23:17:16 +02:00
matthieu
0c597bc653
feat(mail) : MailMessage entity + repository
2026-05-19 23:16:52 +02:00
matthieu
0c80159d7e
feat(mail) : MailFolder entity + repository
2026-05-19 23:16:17 +02:00
matthieu
3cac87aa24
feat(mail) : MailConfiguration entity + repository + singleton test
2026-05-19 23:15:47 +02:00
matthieu
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
matthieu
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
matthieu
930e1a1e37
fix(help) : retire definePageMeta auth (middleware global déjà appliqué)
2026-05-19 21:12:05 +02:00
matthieu
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
matthieu
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
matthieu
c1560468e6
fix(workflow) : WorkflowDrawer - input position natif (MalioInputText n'accepte pas les number)
2026-05-19 20:59:37 +02:00
matthieu
f86698e7cd
docs(workflows) : plan d'implémentation + validations Matthieu sur le spec + gitignore dumps locaux
2026-05-19 20:59:37 +02:00
matthieu
1fd2c05db3
chore : bump version to v0.4.0
2026-05-19 20:59:37 +02:00
matthieu
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
matthieu
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
matthieu
52b78d6bbc
feat(workflow) : ProjectWorkflowSwitchModal + section workflow et bouton switch dans ProjectDrawer
2026-05-19 20:59:12 +02:00
matthieu
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
matthieu
5d42009348
feat(workflow) : kanban projet et archives basés sur workflow.statuses du projet
2026-05-19 20:59:12 +02:00
matthieu
8e4ddf00a8
feat(workflow) : admin UI - WorkflowDrawer + AdminWorkflowTab + remplacement onglet Statuts, suppression composants obsolètes
2026-05-19 20:59:12 +02:00
matthieu
18bc96082f
feat(workflow) : DTOs front Workflow + category sur TaskStatus + workflow embarqué sur Project + service + i18n
2026-05-19 20:59:12 +02:00
matthieu
6a084489ea
feat(workflow) : endpoint POST /projects/{id}/switch-workflow + processor transactionnel
2026-05-19 20:59:12 +02:00
matthieu
80a41db34f
feat(workflow) : protège la suppression d'un workflow lié à des projets (409)
2026-05-19 20:59:12 +02:00
matthieu
cf94635121
feat(workflow) : valide que task.status appartient au workflow du projet
2026-05-19 20:59:12 +02:00
matthieu
eec61c089c
feat(workflow) : migration M4 - alignement schéma Doctrine (indexes + IDENTITY)
2026-05-19 20:59:12 +02:00
matthieu
a9f87be8e5
feat(workflow) : listener garantissant un seul workflow isDefault=true
2026-05-19 20:59:12 +02:00
matthieu
25f2fc4b16
feat(workflow) : fixtures - workflow Standard + statuts catégorisés + projets attachés
2026-05-19 20:59:12 +02:00
matthieu
a21914312a
feat(workflow) : migration M3 - workflow requis sur Project (RESTRICT)
2026-05-19 20:59:12 +02:00
matthieu
f6a947ec15
feat(workflow) : migration M2 - rattache les statuts existants à Standard + category
2026-05-19 20:59:12 +02:00
matthieu
03f3c85fd8
feat(workflow) : migration M1 - création table workflow + seed Standard
2026-05-19 20:59:12 +02:00
matthieu
8a68e0d397
feat(workflow) : ajoute workflow requis sur Project (RESTRICT)
2026-05-19 20:59:12 +02:00
matthieu
43e6d1aed2
feat(workflow) : ajoute workflow et category sur TaskStatus
2026-05-19 20:59:12 +02:00
matthieu
a3e3fd6da6
feat(workflow) : ajoute l'entité Workflow et son repository
2026-05-19 20:59:12 +02:00
matthieu
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
gitea-actions
d4fdb84a17
chore: bump version to v0.3.34
Auto Tag Develop / tag (push) Successful in 5s
Build & Push Docker Image / build (push) Successful in 19s
v0.3.34
2026-05-13 14:23:42 +00:00
Matthieu
5585fa7ef6
fix(mcp) : exclude DataFixtures from discovery to avoid require-dev autoload error in prod
Auto Tag Develop / tag (push) Successful in 7s
2026-05-13 16:23:35 +02:00
gitea-actions
b301ebbad0
chore: bump version to v0.3.33
Auto Tag Develop / tag (push) Successful in 5s
Build & Push Docker Image / build (push) Successful in 52s
v0.3.33
2026-05-13 12:59:31 +00:00
Matthieu
feaa9f1875
feat(api-token) : génération du token MCP depuis la page profil
...
Auto Tag Develop / tag (push) Has been cancelled
Backend :
- POST /api/me/regenerate-api-token : nouveau controller, ROLE_USER (exclut CLIENT)
- User.apiToken exposé via groupe me:read sur GET /api/me
Frontend :
- Section 'Token API MCP' sur /profile (masquée pour les CLIENT du portail)
- Boutons Copier + Régénérer avec modal de confirmation
- Service api-token + DTO mis à jour + clés i18n fr
2026-05-13 14:59:18 +02:00
gitea-actions
b25be8fd6a
chore: bump version to v0.3.32
Auto Tag Develop / tag (push) Successful in 5s
Build & Push Docker Image / build (push) Successful in 43s
v0.3.32
2026-05-06 13:58:46 +00:00
Matthieu
3e6b0e877a
fix(time-tracking) : filtres projet/tag server-side et vue liste au mois
...
Auto Tag Develop / tag (push) Has been cancelled
- Pousse les filtres projet et tag a l'API (au lieu d'un filtrage client-side
partiel sur la page courante) pour eviter les resultats incomplets en cas
de pagination
- Ajoute les watchers selectedProjectId/selectedTagId qui declenchent un reload
- Mode liste : navigation et plage de chargement passent a 1 mois (au lieu
d'une fenetre de 7 jours qui rendait le mode liste inutilisable)
- Renomme l'option vide du filtre User en "Tous" (etait "User", ambigu)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-06 09:51:18 +02:00
Matthieu
9f3fc05a52
fix(project) : masquer le filtre status en mode kanban
...
En mode kanban, selectionner un statut dans le filtre Status vidait toutes
les autres colonnes ET le backlog (tasks?.status?.id !== selectedId) : le
filtre etait redondant avec les colonnes et cassait la vue.
Conditionne l'affichage du filtre Status a viewMode === 'list' et reset le
filtre lors du retour en kanban.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-06 09:51:09 +02:00
Matthieu
4c3721b6ac
fix(dashboard) : appliquer le filtre user aux KPIs et charts de taches
...
Avant, seul le KPI "Heures sur la periode" reagissait au filtre Utilisateur ;
"Taches totales", "Mes taches actives" et tous les graphiques tache restaient
inchanges. Le computed tasks ne filtrait que par projet, et myTasks etait
hardcode sur auth.user.id (cf ticket LST40).
Ajoute un effectiveUserId (selectedUser ?? auth.user) et applique le filtre
user a tasks pour propager dans tous les charts et KPIs.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-06 09:51:02 +02:00
Matthieu
06d733f88e
docs : ajoute note delegation Codex pour taches mecaniques
2026-05-06 08:49:20 +02:00
gitea-actions
258c6e9c17
chore: bump version to v0.3.31
Auto Tag Develop / tag (push) Successful in 5s
Build & Push Docker Image / build (push) Successful in 1m10s
v0.3.31
2026-05-04 18:54:31 +00:00