feat: intégration TikTak #197-200 + scoped tokens, webhooks filtrés, listes mtime/size ; fix e2e-server BUG-112
This commit is contained in:
+45
-1
@@ -6,7 +6,7 @@ Format basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/),
|
||||
et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
> **En cours de développement** : les changements à venir sont listés dans la section
|
||||
> [Unreleased](#unreleased). La dernière version livrée est **2.67.2**.
|
||||
> [Unreleased](#unreleased). La dernière version livrée est **2.68.0**.
|
||||
|
||||
---
|
||||
|
||||
@@ -14,6 +14,50 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
---
|
||||
|
||||
## [2.68.0] — 2026-10-14
|
||||
|
||||
### Ajouté
|
||||
|
||||
- **#197 - Listes de fichiers : `mtime` + `size` pour réconciliation externe (Gitea #4)**
|
||||
- `GET /api/vault/{vault}/paths` expose `size`/`mtime`/`mtime_iso` par fichier
|
||||
(index, même contrat que `list_all_files`) ; `GET /api/browse/{vault}` expose
|
||||
`modified`/`modified_iso` ; outil MCP `list_directory` aligné.
|
||||
- `PUT /api/file/{vault}/save` rafraîchit l'index en synchrone (read-after-write).
|
||||
- Fiche `docs/features/tiktak-integration-197-200.md`, guide API_REST §5, tests
|
||||
`tests/test_sync_lists.py` (7).
|
||||
- **#198 - Webhooks : filtre `vault` / `path_prefix` + `file_modified` émis (Gitea #3)**
|
||||
- Filtres optionnels par webhook (sans filtre = tout, comme avant) ; `POST`/`PATCH`/
|
||||
`GET /api/webhooks` les gèrent ; `PUT …/save` émet `file_modified`.
|
||||
- UI : champs filtre + badge, aide intégrée FR/EN à jour ; tests
|
||||
`tests/test_webhook_filters.py` (10).
|
||||
- **#199 - Clés API à portée limitée : vaults + périmètre `files` (Gitea #2)**
|
||||
- `POST /api/auth/tokens` accepte `vaults?` + `scope` (`full`|`files`) ; 403 hors
|
||||
vault (REST + MCP) et hors périmètre (`TokenScopeMiddleware`, outils
|
||||
`token_scope_denied`, `list_tools` filtré) ; UI + i18n FR/EN ; clés existantes
|
||||
inchangées (`full`). Guides API_REST (§2.3) / MCP ; tests
|
||||
`tests/test_scoped_tokens.py` (13).
|
||||
- **#200 - Runbook de provisionnement du vault « TikTak » (Gitea #1)** — procédure
|
||||
d'exploitation + recette `curl` dans la fiche feature (reste à exécuter sur l'hôte).
|
||||
|
||||
### Corrigé
|
||||
|
||||
- **BUG-112** — `pwsh -File scripts/e2e-server.ps1 2>&1 | head -n 20` ne se
|
||||
terminait jamais : `Start-Process` laissait uvicorn hériter des handles
|
||||
stdout/stderr du pwsh parent, le pipe vers `head` restait ouvert tant que le
|
||||
serveur (immortel par design) vivait. Le serveur, lui, était prêt en ~7 s.
|
||||
`scripts/e2e-server.ps1` lance désormais uvicorn via `Win32_Process.Create`
|
||||
(WMI), processus détaché sans handle hérité ; les variables `OBSIGATE_*` sont
|
||||
passées dans la ligne `cmd /c` via `set "NOM=valeur"` (le processus WMI
|
||||
n'hérite pas de l'environnement du parent). Vérifié : commande en 6,9 s,
|
||||
serveur up avec les 2 fixtures, `stop`/`status` OK.
|
||||
|
||||
- **#197** — `update_single_file`/`remove_single_file` recevaient des chemins relatifs
|
||||
au vault alors qu'ils exigeaient un absolu : le rafraîchissement d'index
|
||||
post-écriture était un no-op silencieux (masqué par le watcher en production).
|
||||
Les deux formes sont désormais acceptées.
|
||||
|
||||
---
|
||||
|
||||
## [2.67.2] — 2026-10-10
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user