Files
ObsiGate/ROADMAP.md
T
bruno 7720d9b96f
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 9s
docs: update ROADMAP — added backup management items #14-19 + reorganized
2026-06-04 20:20:31 -04:00

5.7 KiB
Raw Blame History

ObsiGate — Roadmap

Version : 1.9.0 | 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

  • Effort : 0.5 jour | Impact : 🟡
  • Dans la page de gestion des backups, cliquer sur un backup → preview du contenu
  • Permet de vérifier le contenu avant de décider de supprimer

16. Purge par vault dans le gestionnaire

  • Effort : 0.5 jour | Impact : 🟡
  • Bouton "Supprimer tous les backups" par vault dans le gestionnaire

17. Compression des backups

  • Effort : 0.5 jour | Impact : 🟢
  • Compresser les backups en .bak.gz après N jours pour économiser l'espace disque
  • Décompresser automatiquement à la lecture

18. Backup automatique périodique

  • Effort : 1 jour | Impact : 🟡
  • Cron job optionnel : backup automatique des fichiers modifiés toutes les X heures
  • Configurable par vault (certains vaults plus importants que d'autres)

19. Restauration depuis le gestionnaire

  • Effort : 0.5 jour | Impact : 🟡
  • Dans la page de gestion, bouton "Restaurer" sur chaque backup
  • Évite de devoir passer par le menu contextuel → Backups/Versions

📋 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