---
suivi: 1818
date: 2026-10-07
sujet: Correctif Plume name null
chantier: brainstorming
type: fix
statut: poussé
hash: 3af915ce2
fichiers:
  - docs/suivi/SUIVI_1818_plume_correctif_name_null.md
  - app/Services/Brainstorming/BrainstormingSalleService.php
  - app/Services/Brainstorming/PlumeAgent.php
  - app/Services/Brainstorming/PlumeCahier.php
  - app/Services/Brainstorming/PlumeBudget.php
  - app/Services/Brainstorming/PlumeAnthropicClient.php
  - app/Services/Brainstorming/PlumeTrame.php
  - app/Services/Brainstorming/PlumeRelance.php
  - app/Services/Brainstorming/BrainstormingPieceService.php
  - app/Services/Brainstorming/BrainstormingCahierService.php
  - app/Support/Brainstorming/BrainstormingVocabulaire.php
  - app/Support/Brainstorming/PlumeMarkdown.php
  - app/Http/Controllers/BrainstormingController.php
  - routes/web.php
  - resources/js/Pages/Brainstorming/Show.vue
  - resources/prompts/plume.md
  - resources/prompts/plume-accueil.md
  - tests/Unit/PlumeCorrectif1818Test.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
---

# SUIVI #1818 — Correctif

## Cause

`BrainstormingSalleService.php` lignes 371 et 381 : `$auteur->name` alors que `prevenirMentions` passe toujours `$auteur = null` pour un message de Plume (`user_id` null). Après la réponse API (point ou mention), le message était enregistré, puis la notification des @ plantait → appel marqué echec sans coût.

## Correctifs

- Libellés sûrs (`nomAffiche` / `nomAuteurMessage`) partout : Plume, Utilisateur supprimé.
- Journal d’échec : classe, fichier:ligne, message, http_status.
- Coût / modèle / jetons enregistrés même si le traitement après l’API échoue ; budget somme les `cout_eur` non nuls.
- `@Plume` / `@plume` tapés à la main armant une mention.
- Point quotidien sauté si Plume a répondu dans les 12 h ; échec de point sans message dans le fil.
- Bouton Réessayer sur le message d’échec (même déclencheur).
- Markdown sûr (gras, italique, listes) pour les messages Plume.

## LEÇON

Ne jamais lire `->name` sur un auteur de message Plume. Les notifications de mentions doivent accepter un auteur null (= Plume). Un plantage après l’API ne doit pas effacer le coût réel.

## Bundle

Show-DObegGv5.js, Show-D9Pp-BxF.css, coquille app-IvvoGg89.js.

## DÉPLOIEMENT-TEST

git pull origin main
php artisan optimize:clear
php artisan view:clear
php artisan route:clear
php artisan journal:sync

1. `@Plume peux-tu…` tapé à la main → réponse.
2. Point sur salle avec messages Plume récents → pas de plantage / pas de doublon 12 h.
3. Réessayer sur ancien échec → réponse.
4. `brainstorming_ia_appels` : modèle, jetons, coût remplis.
