fix(ai): contexte applicatif de l'assistant, dossier vide et liens fiables (#88, BUG-041, BUG-042)
CI / lint (push) Successful in 1m16s
CI / security (push) Successful in 50s
CI / test (push) Successful in 3m0s
CI / build (push) Successful in 47s
CI / e2e (push) Successful in 10m58s

- BUG-041 : le contexte d'un dossier vide ne renvoie plus 404 ; il degrade
  vers le prompt General enrichi d'un bloc « Dossier vide ».
- BUG-042 : liens de fichiers deterministes (nom -> presse-papiers,
  dossier -> arborescence, chemin -> viewer) et resolution du chemin contre
  l'index du vault (exact -> suffixe -> basename) avant ouverture, fin des
  'File not found'.
- #88 : app_context (documents ouverts, repertoire/vault courants, recherche
  + resultats affiches) et fichiers recemment modifies injectes dans le
  prompt General.

Tests : pytest 963 passed / 6 skipped, ruff 0, mypy 0, frontend 52/52 +
validate-imports 36 modules.
This commit is contained in:
2026-09-14 11:28:30 -04:00
parent 05ed36240b
commit 314e37c433
11 changed files with 464 additions and 32 deletions
+23
View File
@@ -12,6 +12,29 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Ajouté
- **#88 Assistant IA : contexte applicatif** — l'assistant en mode **Général**
reçoit l'état vivant de l'interface (`app_context`) et connaît désormais les
documents ouverts, le répertoire et le vault courants, la recherche en cours
(requête + premiers résultats affichés) et les fichiers récemment modifiés du
utilisateur. Le prompt Général est enrichi d'un bloc « Contexte applicatif
actuel » (`build_general_system_prompt(vaults, app_context, recent_files)`).
Fiche : [docs/features/ai-app-context.md](./docs/features/ai-app-context.md).
### Corrigé
- **BUG-041 — Assistant IA bloqué sur un répertoire vide** : l'assistant ne
renvoie plus `⚠ Error: Aucun fichier markdown trouvé dans ce dossier` (HTTP 404).
Le contexte vide dégrade vers le prompt Général augmenté d'un bloc « Dossier
vide », et la requête aboutit sans contexte documentaire.
- **BUG-042 — Liens de fichiers de l'assistant non fiables** : les liens des
réponses suivent désormais une règle déterministe — un simple nom de fichier
copie le nom dans le presse-papiers, un chemin de dossier est révélé dans
l'arborescence, un chemin de fichier l'ouvre. Le chemin est **résolu contre
l'index du vault** (exact → suffixe → basename unique) avant d'agir ; les
chemins non résolus copient le nom au lieu d'afficher `File not found`.
### Sécurité
- **#84 Consolidation & sécurité — phase 1 (BUG-021 → BUG-034)** — traitement des