3 new for-user tools (task/reminder/decision) + find_user_by_name lookup. Mode libre: any user can assign to any user, no hierarchy. Traçabilité via createdById != assigneeId. For-user actions always require confirmation (no directExecution bypass). 63/63 Vitest. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.4 KiB
2.4 KiB
RAPPORT-2C — Actions sur autrui (mode libre D9)
Date : 01/06/2026 Session : 148
1. Tools ajoutés
| Tool | Cible | Confirmation |
|---|---|---|
find_user_by_name |
Résolution nom→userId (read) | Non |
create_task_for_user |
Tâche pour un autre user | Toujours |
create_reminder_for_user |
Rappel pour un autre user | Toujours |
create_decision_for_user |
Décision pour un autre user | Toujours |
Résolution du destinataire : Август utilise find_user_by_name avant d'appeler un tool for-user. Recherche ILIKE sur name et nameRu. Ambiguïté (>1 résultat) → demande de précision. 0 résultat → erreur.
2. Traçabilité
Déjà native dans le schéma Prisma :
- Task :
createdById(qui a créé) ≠assigneeId(à qui c'est assigné) - Reminder :
createdById≠targetUserId - Decision :
createdById≠deciderId
Le destinataire voit dans son /tasks qui lui a assigné l'item (via createdBy). Pas de nouveau champ Prisma nécessaire.
3. Confirmation D7
Les tools *_for_user ne bénéficient jamais du bypass directExecution. Vérifié dans agent-chat.service.ts L190 :
const isForUserAction = tc.name.endsWith('_for_user');
const directExec = !isCancelAction && !isForUserAction && await this.hasDirectExecution(userId);
4. T4 — Acceptation/renvoi
Repoussé. La traçabilité (createdById visible) permet au destinataire de contacter l'assignateur si besoin. L'acceptation formelle sera un sous-bloc séparé si le besoin se confirme.
5. Tests
63/63 Vitest green (6 nouveaux + 57 existants) :
| Test | Description |
|---|---|
| T-2C-01 | find_user_by_name résout par nameRu |
| T-2C-02 | user introuvable → erreur |
| T-2C-03 | create_task_for_user → assigneeId=target, createdById=caller |
| T-2C-04 | user inactif → rejeté |
| T-2C-05 | create_reminder_for_user → targetUserId=target, createdById=caller |
| T-2C-06 | tous les for-user tools ont requiresConfirmation=true |
6. Validation visuelle
- « Найди сотрудника Дарью » → Август liste les résultats avec ID
- « Создай задачу для Дарьи: перезвонить поставщику в четверг » → card confirmation avec nom de Дарья → confirmer
- Se connecter en Дарья →
/tasks→ la tâche est là avec « Автор: Луи-Андре Грюар »