feat(ai): rendu Markdown, liens fichiers/paths et sessions (#80)
CI / lint (push) Successful in 57s
CI / security (push) Successful in 43s
CI / test (push) Successful in 1m14s
CI / build (push) Successful in 37s
CI / e2e (push) Successful in 10m36s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s

Assistant IA (BooksLM) :

- renderer Markdown complet (titres, listes, tableaux, citations, code) avec echappement HTML

- mentions fichiers/paths cliquables : ouverture du fichier / revelation dans l'arborescence

- gestion multi-sessions par contexte (historique, rechargement, suppression, migration)

- i18n FR/EN, aide in-app, styles, tests frontend (24)
This commit is contained in:
2026-09-11 16:14:21 -04:00
parent 240fd8586e
commit c55e3e0cbc
11 changed files with 906 additions and 36 deletions
+14
View File
@@ -32,6 +32,20 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
persistés dans `data/config.json`, rechargement à chaud dans `backend/ai.py`, sélecteurs
« Fournisseur par défaut » / « Modèle par défaut » dans `#cfg-ai`, i18n FR/EN.
- **#80 Assistant IA — Rendu Markdown, liens fichiers/paths & sessions** — réponses de l'assistant
rendues en **Markdown formaté** (titres, listes, tableaux, citations, code, emphase) via un
renderer auto-contenu ; les **fichiers et chemins** mentionnés deviennent des liens cliquables
(clic fichier → ouverture dans le viewer, clic répertoire → révélation/surlignage dans
l'arborescence, outils `open_file`/`reveal_in_tree` côté in-app) ; **gestion des sessions** par
contexte (historique consultable, rechargeable, supprimable) avec migration de l'ancienne
conversation unique. Tests : `tests/frontend/ai.test.mjs`.
### Modifié
- **Assistant IA (`frontend/js/bookslm.js`)** — l'ancien rendu Markdown minimal est remplacé par un
renderer bloc/inline complet ; l'en-tête expose un bouton « Historique des sessions » ; les badges
de sources ouvrent désormais réellement le fichier (événement `obsigate:open-file`).
### Corrigé
- **Typage backend (mypy) — 33 erreurs corrigées** (`backend/main.py`, `indexer.py`,