ObsiGate/ROADMAP.md
Bruno Charest 9f00455064
Some checks failed
CI / lint (push) Failing after 7s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 10s
docs: guide d'utilisation enrichi + navigation clavier — sections Tabs, Édition, Graphe, Palette, Partage, Sauvegardes, Sécurité
2026-06-02 15:25:08 -04:00

5.1 KiB
Raw Blame History

ObsiGate — Roadmap

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


Complété (v1.0.0 → v1.7.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 (par priorité)

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

  • WeasyPrint déjà intégré
  • Route API /api/file/{vault_name}/pdf
  • Bouton UI "PDF" dans les actions fichier
  • Export dans la vue publique /s/{token}/pdf
  • GTK/Pango installé dans le Dockerfile

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

  • Navigation rapide fichiers + commandes (> prefix)
  • Module frontend/js/palette.js + intégré dans app.js

4. Drag & drop de fichiers

  • Effort : 1-2 jours | Impact : 🟡
  • Déplacer/réorganiser dans l'arborescence

5. Diff viewer backups

  • Effort : 1 jour | Impact : 🟢
  • Comparer versions .obsigate-backup/

6. Fichiers récents par vault

  • Effort : 0.5 jour | Impact : 🟡
  • Dashboard filtré par vault actif

7. Git tags semver

  • Effort : 10 min | Impact : 🟢
  • git tag v1.7.0 && git push --tags

8. Filtres search avancés

  • Effort : 1 jour | Impact : 🟡
  • Opérateurs created:, modified:, size:

9. Déduplication IGNORED_DIRS

  • Effort : 0.5 jour | Impact : 🟢
  • indexer.py et watcher.py ont des définitions séparées → mutualiser

10. Indicateur AI Actif

  • Effort : 0.5 jour | Impact : 🟡
  • Dans le bouton/indicateur à droite du titre, en cliquant il y a un panneau avec les statut de syncro. Ajouter un indicateur visuel dans ce panneau pour indiquer si l'IA est actif, configuré, et fonctionnelle. Durant la phase de traitement de l'IA, le bouton/indicateur devrait changer de couleur pour un blanc qui flashindiquant le statut de la tâche AI en cours.

📋 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