feat(agent): v4.15.0 - panneau Agent style Notion AI (mentions @ inline + skills / + actions sous chaque réponse)
FlowDeck CI / test (push) Failing after 15s
FlowDeck CI / docker (push) Skipped

- Composeur contenteditable : mentions inline (pastilles icône+nom), barre de contexte groupée documents/skills, sélecteur @ (icône+titre+chemin), skills intégrés + agent_skills + commandes admin via '/'
- Actions sous chaque réponse agent : copier, insérer dans la page, feedback 👍/👎
- Backend : table agent_feedback, GET /api/agent/mentions, POST /api/agent/feedback, contexte document:<id>/page:<id>/collection:<id> résolu en contenu réel
- Inclut le travail v4.14.0 (documents/espace de travail + outils + auto-titre de conversation)
This commit is contained in:
2026-09-06 12:17:40 -04:00
parent 3025a7a44e
commit 27c9eb98db
12 changed files with 1633 additions and 86 deletions
+67
View File
@@ -1,5 +1,72 @@
# Changelog — FlowDeck
## v4.15.0 (2026-09-06) — Agent : actions sous chaque réponse, mentions @ & skills /
> Le panneau FlowDeck Agent gagne l'expérience « type Notion AI » : chaque réponse de l'agent expose
> des actions rapides (copier, insérer dans la page, feedback 👍/👎), on peut **épingler au contexte**
> plusieurs documents / pages / bases via la commande **@** (ou le bouton **+**), et la commande **/**
> propose des **skills** de travail réutilisables en plus des commandes admin existantes.
### Sous chaque réponse de l'agent
- **⧉ copy response** : copie la réponse dans le presse-papiers.
- **➕ insert into this page** : insère la réponse dans la page ouverte (désactivé sans page éditable).
- **👍 / 👎 Share feedback** : enregistre le retour en base (`agent_feedback`) avec confirmation.
### Contexte épinglé — commande « @ » / bouton « + » (style Notion AI)
- Le composeur est maintenant un éditeur **contenteditable** : les références sélectionnées
s'insèrent **inline** comme des pastilles cliquables (icône + nom) directement dans le message.
- Au-dessus du composeur, une **barre de contexte groupée** rassemble les fichiers épinglés
(rangée documents, icônes 📄) et les **skills** (rangée séparée, icône ✨), chacun retirable.
- **@** ouvre le sélecteur (icône + titre + chemin) listant documents, pages et bases ; l'élément
choisi devient un jeton inline **et** une puce de contexte. **+** épingle un élément au contexte
sans l'insérer inline. Les puces persistent jusqu'au retrait (et sont vidées en nouveau chat).
- À l'envoi, chaque référence est transmise comme **mention** ; le backend résout son **contenu réel**.
### Skills — commande « / »
- Le menu **/** liste les **skills intégrés** (research, resume, brainstorm, plan, meeting-note,
livrable…), les **skills enregistrés** (table `agent_skills`) et les commandes admin classiques.
- Un skill intégré pré-remplit le composeur d'un modèle à compléter ; un skill en base s'épingle en
chip et est appliqué via `skill_id` à chaque envoi.
- Navigation clavier (↑/↓/Entrée/Échap) dans les menus ; aucun envoi parasite pour « / » seul.
### Infra & API
- Nouvelle table `agent_feedback` (rating, conversation/message, extrait, commentaire).
- `GET /api/agent/mentions?q=` : recherche des éléments mentionnables du workspace.
- `POST /api/agent/feedback` : enregistre un retour 👍/👎.
- `VERSION` → 4.15.0 ; `app/main.py` version → 4.15.0.
## v4.14.0 (2026-09-06) — Agent : création de documents dans un espace + nouveaux outils & titre auto
> L'agent sait enfin **créer, lire, modifier et supprimer des documents** (pages éditeur) **dans un
> espace de travail** — la demande « crée un document « Projet » dans le workspace « TEST WS 1 » »
> ne se termine plus par un simple `search_workspace` vide. Il liste aussi les espaces, et **renomme
> automatiquement les conversations** avec un titre descriptif au lieu de « Nouvelle conversation ».
### Outils (nouveaux / corrigés)
- **`create_document`** : crée une page éditeur (`pages`) dans un espace (par `workspace_id` ou
`workspace_name`), avec contenu Markdown optionnel — snapshot d'undo.
- **`read_document`** : lit un document (titre + contenu + métadonnées).
- **`read_workspaces`** : liste les espaces accessibles (rôle, nb de documents/collections).
- **`delete_document`** : suppression → corbeille (`deleted_at`), annulable (`softdelete`).
- **`write_blocks`** étendu : renommage de titre et/ou écriture des blocs ; undo restaure titre + contenu.
- **`search_workspace`** étendu : recherche désormais aussi les **documents** et les **espaces de travail**.
### Contexte & planification
- Contexte de l'agent enrichi : sections « Documents » et « Espaces de travail » (avec ids) pour que
le LLM cible le bon espace. Guide mis à jour. Mock hors-ligne : détection
« créer un document dans un espace » / « lister les espaces ».
### Conversations
- Auto-titre : après la première exécution d'une conversation encore nommée « Nouvelle conversation »,
l'agent génère un titre descriptif (déterministe, hors-ligne sûr) ; l'historique devient navigable.
### UX
- Indication claire dans le composeur du panneau : **Entrée ↵ = envoyer · Maj+Entrée = nouvelle ligne**
(le comportement existait déjà, il est maintenant visible + placeholder mis à jour).
### Infra
- `VERSION` → 4.14.0 ; `app/main.py` version → 4.14.0.
## v4.13.2 (2026-09-06) — Saisie libre « écrire un texte » → proposition à appliquer au document
> Quand un **document est ouvert** et qu'on tape directement une demande de **rédaction/contenu**