Bug: le copilote comprenait l'absence mais n'agissait pas → aucun impact. Causes: 1) prompt « par défaut analyse » → ne déclenchait pas l'action ; 2) marquer une absence n'excluait PAS des créneaux (techGaps ne testait que le statut global En pause, pas les Tech Availability approuvées par jour) ; 3) loadBookingData calculait unavail mais ne le retournait pas (oubli) → garde inerte. Fixes: - roster.js: loadBookingData inclut unavail (buildUnavailability = En pause + absence_from/until + Tech Availability approuvées) ; techGaps exclut le tech absent ce jour-là ; export bookingSlots/fetchTemplates. - roster-assistant.js: nouvel outil gerer_absence = crée l'absence (par jour) + trouve les RDV impactés + RÉASSIGNE auto à un autre tech libre du même créneau (IROPS), renvoie les « à reporter ». Nouvel outil ajouter_disponibilite (tech à l'acte ouvre un créneau). Prompt orienté ACTION (signaler une absence = instruction d'exécution). - Validé prod (lab): copilote crée l'absence ✓, booking exclut le tech absent (109→104) ✓, rematch DJ-…→Antoine même créneau ✓ ; données de test nettoyées. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| data | ||
| lib | ||
| preview | ||
| public | ||
| scripts | ||
| templates | ||
| .env.example | ||
| docker-compose.yml | ||
| package-lock.json | ||
| package.json | ||
| server.js | ||