# 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.69.0**. --- ## [Unreleased] --- ## [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 `