Files
ObsiGate/ROADMAP.md
T
bruno 6e8a51b21a
CI / lint (push) Failing after 7s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 9s
docs: add Mermaid.js integration roadmap #20-24 + bump to v2.0.0-dev
2026-06-04 23:11:31 -04:00

8.2 KiB
Raw Blame History

ObsiGate — Roadmap

Version : 2.0.0-dev | Dernière mise à jour : 2026-06-04 Voir aussi CHANGELOG.md, docs/ROADMAP.md, AUDIT_TECHNIQUE.md


✅ Complété (v1.0.0 → v1.9.0)

AI Editor (v1.7.0)

  • Toolbar dropdown menus : Edit, Tone, Translate, Generate, Rewrite, Toolbox
  • Multi-provider : DeepSeek, OpenRouter, Gemini
  • 16 endpoints REST /api/ai/{action} + backend ai.py / ai_routes.py
  • Auto-save silencieux (2s debounce), loading toasts, cache toolbar si pas de clé API
  • Messages d'erreur clairs (401 → clé invalide, etc.)

Vue graphe — Phases 3 & 4 (v1.6.0)

  • Filtre par type (dossier/fichier/.md/autre), mode focus, plein écran, export PNG
  • Barnes-Hut O(n log n), cache graphe
  • Header flat design, sticky panels, navigation historique ← → ↑
  • Ctrl+survol → aperçu contenu formaté

Performance & CI/CD (v1.6.0)

  • sortedcontainers — O(log n) insert/remove dans l'index inversé
  • CI/CD Pipeline Gitea Actions (lint → test → security → build)
  • Ruff linting — 0 erreur
  • Mypy type checking — 0 erreur
  • Pytest — 284 tests, 70% coverage (main.py 61%, router.py 67%, watcher.py 62%)
  • Tests API main.py (84 tests), Auth API (13 tests), Watcher mocké (14 tests)
  • Bandit SAST + Pip-audit + Docker build + coverage artifact

Split app.js en modules ES (v1.5.1)

  • 8 875 lignes → 16 modules dans frontend/js/
  • Validateur imports/exports CI
  • Tests unitaires frontend (Node.js)

Stemming français (v1.5.1)

  • snowballstemmer — recherche accent-insensitive et morphologique
  • Performance O(T) au lieu de O(S×T), crash guard IndexError

Fonctionnalités avancées (v1.5.0)

  • Publication publique de documents (lien partageable avec token)
  • Webhooks HTTP avec signature HMAC-SHA256
  • Dashboard statistiques (fichiers, tags, taille, vaults)
  • Documentation OpenAPI enrichie (Swagger + Redoc)
  • Gestion des conflits Syncthing
  • Index inversé incrémental (hook pattern)

Sécurité (v1.4.0)

  • JWT + Argon2id
  • Rate limiting login (IP + compte)
  • Audit log avec rotation
  • Backup automatique avant écriture
  • Redaction de secrets
  • Headers CSP
  • Protection path traversal
  • Utilisateur non-root Docker

UX / Qualité

  • .dockerignore, .env → .env.example, Ruff config, Mypy config
  • Compression GZip (SSE-safe), Cache-Control immutable
  • Recherche sans I/O disque
  • Backlinks panel
  • Fichiers non-supportés (UI download)

🔜 Prochaines étapes (P1/P2)

✅ 1. Tests & Couverture — FAIT

  • Coverage 49% → 70% ✅
  • Cibles : main.py (26%), watcher.py (23%), router.py (37%) — FAIT
  • Tests E2E Playwright (fondations) — reste à faire

✅ 2. Export PDF — FAIT

✅ 3. Palette de commandes (Ctrl+ALT+SPACE) — FAIT

✅ 4. Barre d'outils mobile + Palette fichiers/commandes 📱 — FAIT

✅ 5. Drag & drop de fichiers — FAIT

✅ 6. Diff viewer backups — FAIT (v1.9.0)

  • Comparer versions sauvegardées, diff unifié + côte à côte, restauration
  • Backups créés uniquement sur sauvegarde manuelle (Ctrl+S), pas sur auto-save
  • Gestionnaire de backups : page complète avec filtre, suppression, purge
  • Auto-nettoyage : limite configurable max_backups_per_file (défaut 10)

✅ 7. Fichiers récents par vault — FAIT

✅ 8. Git tags semver — FAIT (v1.8.0, v1.9.0 à venir)

✅ 9. Filtres search avancés — FAIT

  • Opérateurs created:, modified:, size:

✅ 10. Déduplication IGNORED_DIRS — FAIT

✅ 11. Indicateur AI Actif — FAIT

✅ 12. Page d'accueil de voute — FAIT (récursif)

✅ 13. Indexation non-bloquante — FAIT


📋 Reste à faire (P2/P3)

14. Tests E2E Playwright

  • Effort : 2-3 jours | Impact : 🟢
  • Tests navigateur automatisés (login, navigation, recherche, sauvegarde)

✅ 15. Visualisation backup dans le gestionnaire — FAIT

  • Effort : 0.5 jour | Impact : 🟡
  • Clic sur un backup → panneau latéral avec aperçu du contenu (limité à 100 Ko)
  • Endpoint GET /api/backups/content?path=...
  • Panneau refermable avec bouton X

✅ 16. Purge par vault dans le gestionnaire — FAIT

  • Effort : 0.5 jour | Impact : 🟡
  • Bouton rouge « Vider » par vault dans le gestionnaire
  • Confirmation avant suppression

✅ 17. Compression des backups — FAIT

  • Effort : 0.5 jour | Impact : 🟢
  • Endpoint POST /api/backups/compress avec params older_than_days et dry_run
  • Compression gzip niveau 6, suppression du .bak original si plus petit
  • Skip si la compression n'aide pas (fichier déjà petit)

✅ 18. Backup automatique périodique — FAIT

  • Effort : 1 jour | Impact : 🟡
  • Endpoint POST /api/backups/auto avec param since_hours (défaut 24)
  • Backup de tous les fichiers modifiés depuis N heures, tous vaults
  • Utilisable via cron job externe ou appel manuel

✅ 19. Restauration depuis le gestionnaire — FAIT

  • Effort : 0.5 jour | Impact : 🟡
  • Bouton « Restaurer » (icône rotate-ccw) sur chaque backup dans le gestionnaire
  • Extraction automatique du timestamp depuis le nom du fichier backup
  • Confirmation avant restauration, toast de succès

📋 Reste à faire (P1/P2)

20. Mermaid.js — Initialisation et Sécurité

  • Effort : 0.5 jour | Impact : 🟡
  • Installer mermaid via npm/yarn
  • Module mermaidConfig.js avec securityLevel: 'strict' (anti-XSS)
  • startOnLoad: false pour gestion manuelle du cycle de vie
  • fontFamily: 'inherit' pour cohérence typographique

21. Mermaid.js — Moteur de Rendu Dynamique

  • Effort : 1 jour | Impact : 🟡
  • Fonction renderMermaidBlocks(container) — cible <code class="language-mermaid">
  • Validation syntaxe via await mermaid.parse(code) en try/catch
  • Succès → mermaid.render(uniqueId, code) → injection SVG dans le DOM
  • Échec → bloc d'erreur UI stylisé (fond rouge, message explicite)

22. Mermaid.js — Templates pour tous les types

  • Effort : 0.5 jour | Impact : 🟡
  • Dictionnaire MERMAID_TEMPLATES avec squelette valide par type
  • Core : flowchart, sequenceDiagram, classDiagram, stateDiagram-v2, erDiagram, journey, gantt, pie, gitGraph, requirementDiagram
  • Avancés : mindmap, timeline, quadrantChart, C4Context, C4Container, C4Component, C4Dynamic, C4Deployment
  • Beta : xychart-beta, block-beta, sankey-beta (avec commentaire)

23. Mermaid.js — UX dans l'éditeur

  • Effort : 1 jour | Impact : 🟡
  • Coloration syntaxique Mermaid dans l'éditeur (CodeMirror)
  • Snippets : taper ````mermaid` → dropdown des types de diagrammes
  • Sélection d'un type → insertion auto du template correspondant

24. Mermaid.js — Thème, Export, Compatibilité Obsidian

  • Effort : 1 jour | Impact : 🟡
  • updateMermaidTheme(isDark) → mermaid.initialize({ theme: 'dark'|'default' })
  • Re-render automatique des blocs au changement de thème
  • Bouton "Télécharger" → export SVG (ou PNG via canvas)
  • Pré-processeur Obsidian : [[lien]] → <a>, ![[img.png|100]] → <img>, ==texte== → <mark>

14. Tests E2E Playwright

  • Effort : 2-3 jours | Impact : 🟢
  • Tests navigateur automatisés (login, navigation, recherche, sauvegarde)

📋 Backlog (P3/P4 — Long terme)

  • Mode hors-ligne PWA complet : IndexedDB pour recherche offline + synchro
  • OAuth2/OIDC : Google, GitHub, authentification SSO
  • Plugins système : Extensions utilisateur (custom renderers, search operators)
  • Collaboration temps réel : WebSocket + CRDT (Yjs) pour édition simultanée
  • i18n : Support anglais + français
  • MFA : TOTP/WebAuthn
  • Thèmes personnalisés : CSS variables exposées
  • Export multi-formats : HTML, MD bundle, ePub
  • Notifications web : Push API pour changements de vault
  • Health check enrichi : État de l'index, mémoire, uptime, clients SSE