# Changelog — ObsiGate Toutes les modifications notables d'ObsiGate sont documentées dans ce fichier. 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.70.1**. --- ## [Unreleased] --- ## [2.70.1] — 2026-10-20 ### Corrigé - **Sécurité des dépendances (CI `pip-audit` rouge sur 2.70.0)** — planchers relevés dans `backend/requirements.txt`, selon le patron déjà en place dans le fichier : `aiohttp>=3.14.4` (8 CVE corrigées en 3.14.4, dont CVE-2026-111063/111064), `mcp==1.30.0` (CVE-2026-59951), `pillow>=13.0.0` (8 CVE corrigées en 13.0.0, dont CVE-2026-112895) et plancher explicite `certifi>=2026.10.19` (PYSEC-2026-4320, dépendance transitive). `pip-audit` redevient vierge ; aucune ligne de code applicatif n'est touchée. --- ## [2.70.0] — 2026-10-20 ### Ajouté - **#215 — Fusion bloc 1 : barre d'apps commune et références croisées des notes** (programme Fusion, issues Gitea #5/#6/#7 ; contrats `dracodev-commons` v0.1.0) : - **Barre d'apps commune** en tête de l'interface (snippet figé vendangé : `frontend/draco-barre.css/.js`, markup dans `index.html`) — navigation vers ObsiGate, Flowdeck, TikTak et Kanbante, ObsiGate marquée active, sélecteur de domaine mémorisé ; la recherche, le rail et le menu délèguent aux contrôles natifs d'ObsiGate. - **Références croisées `external_ref`** : section « Liens » dans la vue d'une note — coller une URL profonde (Flowdeck, TikTak, issue Gitea = carte Kanbante, ObsiGate) crée la référence (libellé automatique ou libre, pastille de couleur de l'app cible). Backend : stockage JSON par utilisateur (`backend/external_refs.py`), endpoints `GET/POST /api/refs` et `DELETE /api/refs/{id}`, parseur d'URL conforme au contrat figé (422 explicite sinon), schémas et tag OpenAPI « ExternalRefs ». - **Notes projetées TikTak reconnues** (frontmatter `tiktak_id`) : bandeau « Tâche TikTak projetée » et bouton « Ouvrir dans TikTak » dans la même section (module `frontend/draco-liens.js`, point d'extension `obsigate:file-rendered` émis par `renderFile`). - i18n FR/EN (clés `draco.links.*`) ; tests `test_external_refs.py`. --- ## [2.69.0] — 2026-10-15 ### Ajouté - **#201 — menu contextuel « Déplacer » / « Dupliquer »** (fichiers *et* dossiers) dans la sidebar : le modal de destination réutilise `promptTargetFolder` (celui de l'import, même thème, sélecteur de voute + arbo filtrable), généralisé par un paramètre `opts` optionnel (titre, résumé, libellé du bouton) ; l'emplacement actuel est pré-sélectionné ; cross-vault refusé proprement. Nouveau endpoint `POST /api/duplicate/{vault}` (`duplicate_path` : copie `X copie.ext`, collisions `copie 2`, `copie 3`… ; répertoires récursifs ; refus de dupliquer un dossier dans lui-même ; index incrémental, SSE + webhooks). i18n FR/EN. ### Corrigé - **BUG-117** — drag & drop interne de la sidebar (déplacement d'un fichier/dossier vers un autre) inopérant et silencieux depuis #89 : la détection « dépôt externe » dans `onDrop` testait `items.length > 0`, qui comptait aussi les formats *string* (`tree:*`) posés par `setData` au `dragstart` interne → chaque déplacement basculait dans la branche upload et disparaissait sans appel API ni toast. Restreinte aux vrais fichiers (`kind === 'file'`, type `Files`, `files` non vide), avec priorité au `dragState`. --- ## [2.68.6] — 2026-10-14 --- ## [2.68.5] — 2026-10-14 --- ## [2.68.4] — 2026-10-14 ### Corrigé - **BUG-116** — éditeur Forge : après insertion d'un tableau (ou bloc de code, diagramme), la textarea restait d'une seule ligne — les mutations programmatiques de `ta.value` ne déclenchent pas l'événement `input`, seul chemin qui rappelait `autoHeight()`. `insertAtCursor` et `wrapSelection` (les deux points de passage de toutes les insertions) appellent désormais `autoHeight()` + `updateLineNumbers()` — le nombre de lignes du gutter suit. Vérifié en Playwright : tableau 4 lignes sur document d'une ligne → hauteur 51 → 189 px, gutter cohérent. - **BUG-115** — éditeur Forge (aperçu et menus) : trois défauts — (1) collure case à cocher/texte dans l'aperçu des checklists : le HTML du serveur ne sépare pas l'`` du texte et `editor-poc.html` n'avait pas la règle `.task-list-item` de `style.css` (ajoutée à son `