You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Epic : #5 Admin-Web › A-13 · formulaire « Nous écrire » : D-063
Décision : D-085 (cadrage du 2026-10-09)
Comportement attendu
UI : liste des messages (sujet, compte, date, statut), détail, Répondre, Marquer traité.
API : GET /admin/support, POST /admin/support/:id/reply (e-mail Brevo au modèle « réponse du support », E-22, dans la langue de l'utilisateur ; réponse gardée), POST /admin/support/:id/handled.
Critères d'acceptation
Une réponse part par e-mail dans la langue de l'utilisateur et reste visible dans la fiche
🔨 Démarrage (CODE, 2026-10-20) — branche issue/349-support, empilée sur #551 (elle-même sur la pile admin), niveau 2 annoncé (nouveaux endpoints authentifiés qui lisent des messages et des adresses e-mail d'utilisateurs et en écrivent le statut ; pas de migration).
Plan, en commits autonomes :
shared : types et schémas de la liste, du détail et du statut d'un message.
api : GET /admin/support (filtre traités ou non, par page) et GET /admin/support/:id (modérateurs et admins).
api : POST /admin/support/:id/handled (« Marquer traité », journalisé, 409 si déjà traité).
api-client puis admin : A-13, la liste (sujet, compte, date, statut), le détail avec tous les champs du wiki (message, e-mail de réponse, lien vers la fiche du compte, version de l'app, appareil, langue) et « Marquer traité ».
Ce que cette PR ne tient pas (décision de l'opérateur) : « Répondre », et donc le critère « une réponse part par e-mail dans la langue de l'utilisateur et reste visible dans la fiche ». Aucun code d'envoi d'e-mail n'existe dans l'API : le seul prévu est #397 (lien de connexion par Brevo), bloqué ; il attend #467 (domaine authentifié dans Brevo, expéditeur, clé de staging dans Secret Manager, après l'achat du domaine #366). Un bouton qui garderait une réponse sans l'envoyer laisserait croire à l'équipe que l'utilisateur a été répondu : je ne l'écris pas. La réponse (reply_body, replied_by, replied_at du wiki, l'envoi par le modèle E-22) est à porter par un ticket de suite, une fois l'envoi Brevo en place : je le signale sur l'Inbox.
PR ouverte : #552 (CODE, 2026-10-20), empilée sur #551, niveau 2 (label level:2).
Livré : GET /admin/support, GET /admin/support/:id et POST /admin/support/:id/handled (modérateurs et admins), compteur du menu et tuile du tableau de bord, écran A-13 (liste, filtre par statut, détail, « Marquer traité »).
Non tenu : « Répondre » par e-mail, et donc le critère « une réponse part par e-mail dans la langue de l'utilisateur et reste visible dans la fiche ». Aucun code d'envoi d'e-mail n'existe dans l'API (le premier prévu est #397, bloqué), ses prérequis sont humains (domaine authentifié dans Brevo, expéditeur, clé de staging : #467 après #366), et un bouton qui garderait une réponse sans l'envoyer laisserait croire à l'équipe que l'utilisateur est répondu. Détail et ticket de suite à créer : section « Ce qui manque » de la PR et Inbox.
Vérification humaine, consignée par l'agent : Marco a testé en local le 2026-10-20 (commit 8aad547, base locale, 4 messages fictifs) : le compteur du menu, l'ordre et le filtre de la liste, le détail d'un message avec compte, sans compte et en anglais, le lien vers la fiche du compte, « Marquer traité » avec son effet sur le badge, la liste et le compteur, et un message déjà traité. Rien n'a été testé sur un environnement déployé, ni avec un compte éditeur.
Activity
Nascimento95 commentedon Oct 20, 2026
🔨 Démarrage (CODE, 2026-10-20) — branche
issue/349-support, empilée sur #551 (elle-même sur la pile admin), niveau 2 annoncé (nouveaux endpoints authentifiés qui lisent des messages et des adresses e-mail d'utilisateurs et en écrivent le statut ; pas de migration).Plan, en commits autonomes :
shared: types et schémas de la liste, du détail et du statut d'un message.api:GET /admin/support(filtre traités ou non, par page) etGET /admin/support/:id(modérateurs et admins).api:POST /admin/support/:id/handled(« Marquer traité », journalisé, 409 si déjà traité).api-clientpuisadmin: A-13, la liste (sujet, compte, date, statut), le détail avec tous les champs du wiki (message, e-mail de réponse, lien vers la fiche du compte, version de l'app, appareil, langue) et « Marquer traité ».Ce que cette PR ne tient pas (décision de l'opérateur) : « Répondre », et donc le critère « une réponse part par e-mail dans la langue de l'utilisateur et reste visible dans la fiche ». Aucun code d'envoi d'e-mail n'existe dans l'API : le seul prévu est #397 (lien de connexion par Brevo), bloqué ; il attend #467 (domaine authentifié dans Brevo, expéditeur, clé de staging dans Secret Manager, après l'achat du domaine #366). Un bouton qui garderait une réponse sans l'envoyer laisserait croire à l'équipe que l'utilisateur a été répondu : je ne l'écris pas. La réponse (
reply_body,replied_by,replied_atdu wiki, l'envoi par le modèle E-22) est à porter par un ticket de suite, une fois l'envoi Brevo en place : je le signale sur l'Inbox.Nascimento95 commentedon Oct 20, 2026
PR ouverte : #552 (CODE, 2026-10-20), empilée sur #551, niveau 2 (label
level:2).Livré :
GET /admin/support,GET /admin/support/:idetPOST /admin/support/:id/handled(modérateurs et admins), compteur du menu et tuile du tableau de bord, écran A-13 (liste, filtre par statut, détail, « Marquer traité »).Non tenu : « Répondre » par e-mail, et donc le critère « une réponse part par e-mail dans la langue de l'utilisateur et reste visible dans la fiche ». Aucun code d'envoi d'e-mail n'existe dans l'API (le premier prévu est #397, bloqué), ses prérequis sont humains (domaine authentifié dans Brevo, expéditeur, clé de staging : #467 après #366), et un bouton qui garderait une réponse sans l'envoyer laisserait croire à l'équipe que l'utilisateur est répondu. Détail et ticket de suite à créer : section « Ce qui manque » de la PR et Inbox.
Vérification humaine, consignée par l'agent : Marco a testé en local le 2026-10-20 (commit
8aad547, base locale, 4 messages fictifs) : le compteur du menu, l'ordre et le filtre de la liste, le détail d'un message avec compte, sans compte et en anglais, le lien vers la fiche du compte, « Marquer traité » avec son effet sur le badge, la liste et le compteur, et un message déjà traité. Rien n'a été testé sur un environnement déployé, ni avec un compte éditeur.