Matthieu
544d4cf44f
feat(core) : gate sidebar by effective permissions
2026-06-19 17:28:42 +02:00
Matthieu
ffed224979
feat(core) : add rbac role and permission entities with user relations
2026-06-19 16:56:07 +02:00
Matthieu
a98ea3df37
feat(core) : activate core module in modules registry
2026-06-19 16:27:10 +02:00
Matthieu
f1a9b42930
feat(core) : move notification into core and expose notifier contract
2026-06-19 16:25:03 +02:00
Matthieu
0b4874e94d
refactor(core) : move user repository/providers to core and migrate all consumers off App\Entity\User
2026-06-19 16:16:44 +02:00
Matthieu
f8fc4d6bd9
feat(core) : move user entity into core module and repoint security/doctrine (temp legacy alias)
2026-06-19 16:03:52 +02:00
Matthieu
0ee82c8b62
feat(sidebar) : add role gate to sidebar provider and global nav config
2026-06-19 15:03:45 +02:00
Matthieu
3053c09522
feat(shared) : add timestampable/blamable trait and doctrine subscriber
2026-06-19 14:37:28 +02:00
Matthieu
52399b35d9
feat(sidebar) : expose GET /api/sidebar filtered by active modules
2026-06-19 14:35:17 +02:00
Matthieu
748289b61a
feat(modules) : expose GET /api/modules and module registry
2026-06-19 14:33:53 +02:00
gitea-actions
d0a49322e1
chore: bump version to v0.4.30
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 2m21s
2026-06-19 07:21:59 +00:00
gitea-actions
da8beb2b2d
chore: bump version to v0.4.29
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 28s
2026-06-15 09:52:11 +00:00
gitea-actions
7d87af6774
chore: bump version to v0.4.28
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 1m13s
2026-06-15 09:24:14 +00:00
gitea-actions
4e430cca43
chore: bump version to v0.4.27
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 3m2s
2026-06-12 13:52:47 +00:00
matthieu
0dd253e483
Merge branch 'develop' into feat/share-explorer-impl
2026-06-12 13:52:34 +00:00
gitea-actions
f8acdd9817
chore: bump version to v0.4.26
Auto Tag Develop / tag (push) Successful in 5s
Build & Push Docker Image / build (push) Successful in 1m7s
2026-06-08 13:59:09 +00:00
gitea-actions
5014dd063e
chore: bump version to v0.4.25
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 1m5s
2026-06-04 14:45:35 +00:00
Matthieu
f9428f5c5d
feat(share) : source de fichiers SMB (FileSource + SmbFileSource)
2026-06-03 17:05:08 +02:00
gitea-actions
8475f9604c
chore: bump version to v0.4.24
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 23s
2026-06-02 07:51:11 +00:00
Matthieu
226ab8ea84
feat(mcp) : tools update et delete des documents de tâche
...
Auto Tag Develop / tag (push) Successful in 7s
Ajoute deux tools MCP sur le modèle de add-task-document :
- update-task-document : remplace le contenu et/ou renomme un document (MIME ré-inféré, taille rafraîchie, garde-fous vide/5 Mo)
- delete-task-document : supprime le document en base, le fichier disque étant retiré par le PreRemove listener
Met aussi à jour le compteur de tools MCP dans le CLAUDE.md (60).
2026-06-02 09:50:03 +02:00
gitea-actions
d48ee8eae5
chore: bump version to v0.4.23
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 49s
2026-06-01 21:26:44 +00:00
gitea-actions
cdd7ca7626
chore: bump version to v0.4.22
Auto Tag Develop / tag (push) Successful in 7s
Build & Push Docker Image / build (push) Successful in 49s
2026-06-01 20:52:47 +00:00
gitea-actions
85897708ec
chore: bump version to v0.4.21
Auto Tag Develop / tag (push) Successful in 7s
Build & Push Docker Image / build (push) Successful in 55s
2026-06-01 20:45:31 +00:00
gitea-actions
7f79bdf236
chore: bump version to v0.4.20
Auto Tag Develop / tag (push) Successful in 12s
Build & Push Docker Image / build (push) Successful in 1m6s
2026-06-01 20:33:07 +00:00
Matthieu
e87c474672
feat(mcp) : ajout du tool add-task-document pour attacher des documents Markdown à un ticket
...
Auto Tag Develop / tag (push) Successful in 10s
Nouveau tool MCP recevant le contenu texte brut (pas de base64), optimisé pour le Markdown. MIME inféré depuis l'extension du fileName (text/markdown par défaut). Persiste un TaskDocument avec uploadedBy = utilisateur du token MCP.
2026-06-01 22:32:44 +02:00
gitea-actions
8cfa048e5a
chore: bump version to v0.4.19
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 51s
2026-05-29 14:46:18 +00:00
gitea-actions
81d905257a
chore: bump version to v0.4.18
Auto Tag Develop / tag (push) Successful in 7s
Build & Push Docker Image / build (push) Successful in 1m0s
2026-05-28 08:51:21 +00:00
gitea-actions
8f75e2e310
chore: bump version to v0.4.17
Auto Tag Develop / tag (push) Successful in 8s
Build & Push Docker Image / build (push) Successful in 22s
2026-05-27 08:53:52 +00:00
gitea-actions
77e1017d09
chore: bump version to v0.4.16
Auto Tag Develop / tag (push) Successful in 9s
Build & Push Docker Image / build (push) Successful in 37s
2026-05-27 08:36:22 +00:00
gitea-actions
433032701e
chore: bump version to v0.4.15
Auto Tag Develop / tag (push) Successful in 7s
Build & Push Docker Image / build (push) Successful in 28s
2026-05-27 08:11:38 +00:00
gitea-actions
7e32e4c013
chore: bump version to v0.4.14
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 52s
2026-05-26 09:36:14 +00:00
gitea-actions
96e25c2390
chore: bump version to v0.4.13
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 48s
2026-05-26 09:33:27 +00:00
gitea-actions
1991c43f8c
chore: bump version to v0.4.12
Auto Tag Develop / tag (push) Successful in 8s
Build & Push Docker Image / build (push) Successful in 57s
2026-05-26 09:08:30 +00:00
gitea-actions
b13ba41674
chore: bump version to v0.4.11
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 44s
2026-05-26 09:02:57 +00:00
gitea-actions
f8322f8b1e
chore: bump version to v0.4.10
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 45s
2026-05-26 08:49:58 +00:00
gitea-actions
2feba57cb6
chore: bump version to v0.4.9
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 20s
2026-05-26 08:42:59 +00:00
gitea-actions
6db6d13e76
chore: bump version to v0.4.8
Auto Tag Develop / tag (push) Successful in 7s
Build & Push Docker Image / build (push) Successful in 1m21s
2026-05-26 08:08:06 +00:00
Matthieu
f9773b3a5e
feat(absences) : mise en conformité légale (événements familiaux, demi-journée, CCN)
...
Périmètre 1-6 du design 2026-05-22-absence-legal-compliance-fixes (points
lourds — ancienneté, CP pendant maladie, rétention — reportés en backlog).
- Événements familiaux sans solde : AbsenceType::decrementsBalance() ne vaut
true que pour les CP. Mariage/PACS, naissance, décès = droits par événement ;
congé parental = suspension ; maladie = Sécu. Plus de solde fantôme.
- Décès : daysPerEvent = null (selon lien de parenté) + motif obligatoire à la
création (REST + MCP), les minimums légaux étant rappelés dans l'aide.
- Ajout du congé naissance (type, policy 3 j, justificatif, libellés/couleur front).
- Garde-fou demi-journée : -0,5 appliqué uniquement si le jour-borne est
réellement décompté (corrige un sous-décompte week-end/férié) — TDD.
- CCN documentée : paramètre app.absence.convention = "Syntec (IDCC 1486)",
rappelée en sous-titre admin et dans l'aide /help.
Tests : AbsenceDayCalculatorTest (garde-fou demi-journée), AbsenceRequestLifecycle
(motif décès obligatoire + aucun solde touché). make test 52/52, build Nuxt OK.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-22 16:00:28 +02:00
Matthieu
2b148fa65a
feat(absences) : outils MCP CRUD pour les absences
...
Expose le module Absences via le serveur MCP et comble les trous CRUD
existants (projets, groupes, métadonnées de tâches, clients, users RH).
Absences (réutilise AbsenceDayCalculator + AbsenceBalanceService pour ne
pas contourner la logique de soldes) :
- list/get/create/review/cancel/delete-absence-request
- list/update-absence-policy, list/update-absence-balance
- create-absence-request prend un userId explicite (agir au nom d'un employé) ;
review/cancel maintiennent les soldes (pending/taken) cohérents
- AbsenceRequestRepository::findFiltered pour les filtres de liste
Trous CRUD comblés :
- delete-project, delete-group
- CRUD tag, effort, priority
- CRUD status (couplé au workflow, avec category)
- CRUD client, get/update-user (champs RH, sans password ni roles)
Sérialisation centralisée (Serializer::absenceRequest/Policy/Balance/client/userFull).
Instructions MCP (mcp.yaml) mises à jour : statuts par workflow + domaine absences.
Tests : tests/Functional/Mcp/AbsenceRequestLifecycleTest (création / approbation /
annulation admin) vérifient le cycle complet et la cohérence des soldes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-22 14:10:56 +02:00
Matthieu
2a0b202d32
feat(absences) : avancement module absences + suppression du portail client
...
Deux lots regroupés sur la branche feat/absence-management.
Suppression complète du portail client :
- retire ROLE_CLIENT (security.yaml) ; User::getRoles() ajoute toujours ROLE_USER
- supprime l'entité ClientTicket (+ repo, states, relations), User.client et
User.allowedProjects, NotificationService, ProjectAllowedExtension, le bloc
ROLE_CLIENT de MailAccessChecker
- front : pages /portal, layout portal, composants client-ticket/,
AdminClientTicketTab, services/dto/i18n/docs associés
- fixtures : retire les users client-liot / client-acme
- migration Version20260522110000 (drop client_ticket, user_allowed_projects,
colonnes liées ; task_document.task_id -> NOT NULL)
- tests : retire les cas obsolètes testant le blocage des clients sur le mail
Module gestion des absences (WIP) :
- entités / migrations (Version20260521160000, Version20260522090000)
- pages absences.vue / team-absences.vue, composants frontend/components/absence/
- services front, AccrueLeaveCommand, PublicHolidayController
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-22 11:31:31 +02:00
Matthieu
de98924fd3
feat(absences) : fondation backend du module de gestion des absences
...
Module type Payfit (étapes 1+2 de la spec V1) : demande d'absence, validation
admin, soldes à jour.
- Enums : AbsenceType, AbsenceStatus, HalfDay, ContractType, FamilySituation
- Entités : AbsencePolicy, AbsenceBalance, AbsenceRequest + champs RH sur User
- Services : PublicHolidayProvider (fériés FR métropole en PHP pur, Computus),
AbsenceDayCalculator (décompte jours ouvrés/ouvrables + demi-journées, TDD),
AbsenceBalanceService (périodes + pending/taken/recrédit)
- API Platform : providers/processors (création, approve/reject/cancel) + RBAC
me/admin, contrôleurs preview (dry-run), upload/download justificatif, calendrier
- Migrations : une par table + colonnes RH user (DEFAULT puis DROP DEFAULT)
- Fixtures : 5 policies par défaut, salariés démo, soldes et demandes
- Tests unitaires : PublicHolidayProvider, AbsenceDayCalculator (12 tests)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-21 14:45:14 +02:00
gitea-actions
325a7b07f9
chore: bump version to v0.4.7
Auto Tag Develop / tag (push) Successful in 5s
Build & Push Docker Image / build (push) Successful in 52s
2026-05-21 09:42:51 +00:00
gitea-actions
8f2a688740
chore: bump version to v0.4.6
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 48s
2026-05-21 09:19:01 +00:00
gitea-actions
a9f05fd819
chore: bump version to v0.4.5
Build & Push Docker Image / build (push) Successful in 53s
Auto Tag Develop / tag (push) Successful in 6s
2026-05-21 08:57:40 +00:00
gitea-actions
2bffff9b83
chore: bump version to v0.4.4
Auto Tag Develop / tag (push) Successful in 8s
Build & Push Docker Image / build (push) Successful in 57s
2026-05-21 08:48:41 +00:00
gitea-actions
eb2adc9fdc
chore: bump version to v0.4.3
Build & Push Docker Image / build (push) Successful in 53s
Auto Tag Develop / tag (push) Successful in 7s
2026-05-20 08:22:48 +00:00
gitea-actions
8be96bce0c
chore: bump version to v0.4.2
Auto Tag Develop / tag (push) Successful in 7s
Build & Push Docker Image / build (push) Successful in 27s
2026-05-20 07:56:32 +00:00
Matthieu
fb97b8d4e3
fix(mail) : sync à la demande synchrone pour le bouton rafraîchir
...
Auto Tag Develop / tag (push) Has been cancelled
Route MailSyncRequested vers le transport sync au lieu d'async : la
synchro IMAP s'exécute pendant la requête HTTP du clic « rafraîchir »,
donc le re-fetch du front voit immédiatement les nouveaux mails, sans
worker messenger:consume à maintenir en prod. La sync de fond reste
assurée par le cron OS (app:mail:sync, synchrone, indépendant du bus).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 09:56:23 +02:00
gitea-actions
913d3b7d93
chore: bump version to v0.4.1
Auto Tag Develop / tag (push) Successful in 6s
Build & Push Docker Image / build (push) Successful in 1m16s
2026-05-20 07:48:17 +00:00
matthieu
e5c5371c74
Merge branch 'develop' into feat/mail-integration
2026-05-20 07:45:09 +00:00