From d7e0ace2b7b0128cc56695959832a51f768ca7b2 Mon Sep 17 00:00:00 2001 From: Bruno Charest Date: Sat, 12 Sep 2026 09:19:50 -0400 Subject: [PATCH] docs(roadmap): mark v5.4.0 Experience editeur as validated (17 tests, 397 suite) --- ROADMAP.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 1cd06f7..6570fe8 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -513,12 +513,15 @@ app/ - [x] **Fallback polling** — si WS indisponible, rafraîchissement diff toutes les 10 s (adopté seulement sans brouillon local) + reconnexion automatique - [x] CSP `connect-src` étendu à `ws:` ; **12 tests** `tests/test_realtime.py` ; suite complète 298 verte (+3 PDF pré-existants) -### v5.4.0 — Expérience éditeur (nouveautés, parité Notion) -- [ ] **Backlinks** — section « Lié depuis… » en bas de page (scan des liens internes) -- [ ] **Duplicates** — « Duplicate » sur page + collection (menu `...`) -- [ ] **Corbeille globale améliorée** — vue cross-workspace + purge automatique après 30 jours -- [ ] **Historique de version UI** — browser + restaurer une version (table `page_history` existe) -- [ ] **Import** — Markdown/CSV/Notion (complète l'export v4.7.0, facilite la migration d'utilisateurs) +### v5.4.0 — Expérience éditeur ✅ (2026-09-11) +> **Objectif** : parité éditeur Notion — backlinks, duplication, corbeille, versions, import. **COMPLETED**. + +- [x] **Backlinks** — `GET /board/api/pages/{id}/backlinks` (scan des liens internes `/pages/`) + popover « Lié depuis… » +- [x] **Duplicates** — `POST /board/api/pages/{id}/duplicate` (copie profonde des blocs) + `POST /db/{id}/duplicate` (vues + propriétés + pages) ; entrées « Duplicate » dans les menus `...` +- [x] **Corbeille globale améliorée** — vue cross-workspace `GET /board/api/trash` + `app/services/trash.py` (purge automatique > 30 jours, scheduler quotidien) +- [x] **Historique de version UI** — snapshots `page_versions` à chaque sauvegarde modifiée, `GET /api/pages/{id}/versions`, `POST .../versions/{vid}/restore`, popover « Version history » +- [x] **Import** — `POST /api/pages/import` (markdown) + `POST /api/pages/import/file` (.md/.txt/.zip d'export Notion) ; import CSV collections `POST /workspace/collections/{id}/import/csv` +- [x] **17 tests** `tests/test_v54.py` ; suite complète **397 verte** ### v5.5.0 — Embeds & Média Riche > **Objectif** : parité avec les 60+ embeds Notion — contenu tiers rendu dans la page. @@ -632,7 +635,7 @@ app/ 3. ~~**v5.3.0 → Inline databases + templates + validation**~~ ✅ livré (slash `/database`, 6 templates, validation propriétés) 4. ~~**v5.13.0 → Realtime (WS + présence)**~~ ✅ livré (`app/services/realtime_server.py` + `WS /ws/pages/{id}`, présence, curseurs live, merge LWW, 12 tests) 5. ~~**v5.10.0 → Interactions de bloc**~~ ✅ livré (drag&drop multi, undo/redo, duplicate, menu ⋮, en-têtes de tableau, 9 tests) -6. **v5.4.0 → Expérience éditeur** — backlinks, duplicate, corbeille globale, historique de version UI, import (prochain) +6. ~~**v5.4.0 → Expérience éditeur**~~ ✅ livré (backlinks, page/collection duplicate, corbeille globale + purge 30 j, historique de version UI, import Markdown/CSV/Notion) --- ## Résumé des phases @@ -651,4 +654,4 @@ Quality DB views, Agent IA Palette → Realtime + S DB avancée, redo, drag&drop, Calendrier, AI duplicate) -*Dernière mise à jour: 2026-09-11 — **v5.2.0 Infrastructure & Polish validé** (18/18 tests dédiés, 397 tests suite complète, ruff/eslint verts, CI Gitea success sur push + PR #15) ; reste v5.4, v5.11 → v6.0* +*Dernière mise à jour: 2026-09-12 — **v5.4.0 Expérience éditeur validé** (17 tests dédiés, 397 tests suite complète, ruff/eslint verts) ; reste v5.11 → v6.0*