ObsiGate/docs/ROADMAP.md

5.8 KiB
Raw Blame History

ObsiGate — Roadmap (détaillé)

Date : 2026-06-02 | Version : 1.7.0 Dernier audit : AUDIT_TECHNIQUE_2026-05-27.md


Légende

  • Complété
  • 🟡 En cours / Partiel
  • À faire
  • 🔴 Critique

Fonctionnalités complétées (depuis le dernier audit)

AI Editor (v1.7.0 — NOUVEAU)

  • Toolbar dropdown : Edit (improve/fix/shorter/longer/simplify), Tone (professional/casual), Translate, Generate (explain/summarize/continue), Custom Rewrite, Toolbox (to list/to table/frontmatter/to canvas)
  • Multi-provider : DeepSeek, OpenRouter, Gemini — configurable via .env
  • Backend : backend/ai.py + backend/ai_routes.py — 16 endpoints REST
  • Frontend : frontend/js/ai.js — toolbar intégrée à CodeMirror 6
  • Auto-save silencieux (2s), loading toasts, cache si pas de clé API

Vue graphique — Améliorations (v1.7.0)

  • Header flat design 2 lignes : titre flexible + recherche dédiée + barre statut
  • Sticky panels : tuile info (top-left/right), preview pleine hauteur (droite), boutons close
  • Navigation historique : ← → (avant/arrière) + ↑ (parent)
  • Ctrl+survol : aperçu contenu /raw formaté dans tooltip
  • Filtre tag, hover foncé unifié

Vue graphique — Phases 1-4 (v1.6.0)

  • Full-vault view (scope=full), filtre tag (?tag=), backlinks entrants
  • Métriques de nœud : incoming_count, outgoing_count, tag_count
  • Recherche visuelle, tooltips survol, couleurs adaptatives CSS
  • Slider profondeur (0-3), filtre type (dossier/fichier/.md/autre)
  • Mode focus, plein écran, export PNG
  • Barnes-Hut O(n log n), cache graphe

Qualité & Tests (v1.6.0)

  • CI/CD Gitea Actions complet : lint (ruff 0 err), type (mypy 0 err), test (180 tests), security (bandit + pip-audit), build (Docker)
  • sortedcontainers → SortedList pour O(log n) insert/remove
  • Frontend tests Node.js : validate-imports.mjs + unit.test.mjs

Recherche (v1.5.1)

  • Stemming français via snowballstemmer
  • Performance O(T) au lieu de O(S×T), crash guard IndexError

Refactoring (v1.5.1)

  • Split app.js (8 875 lignes → 16 modules ES) dans frontend/js/

Fonctionnel (v1.5.0)

  • Publication publique de documents (token unique, expiration, lecture seule)
  • Dashboard statistiques (4 cartes : fichiers, tags, taille, vaults)
  • Webhooks HTTP avec signature HMAC-SHA256 optionnelle
  • Documentation OpenAPI enrichie (modèles Pydantic documentés)
  • Gestion conflits Syncthing (détection + résolution)
  • Index inversé incrémental (hook pattern via set_index_change_hook)
  • Export PDF (WeasyPrint intégré, accessible dans la vue publique)

Corrections (v1.4.0)

  • Rate limiting login (IP + compte)
  • Secret redactor (JWT, API keys, tokens, connection strings)
  • Audit log JSON lines avec rotation 10MB
  • Backup automatique avant écriture (.obsigate-backup/)
  • Backlinks panel (index inversé + UI)
  • Gestion fichiers non-supportés (UI message + download)
  • Clic simple/double clic arborescence
  • IGNORED_DIRS configurable via OBSIGATE_IGNORED_DIRS
  • Timeout session configurable (OBSIGATE_ACCESS_TOKEN_TTL)
  • TOC scroll avec caractères accentués (slugify unifié Unicode)

Quick Wins (v1.4.0)

  • .dockerignore — contexte de build réduit
  • .env pour les secrets (mot de passe retiré de docker-compose.yml)
  • Compression GZip (SSE-safe)
  • Cache-Control pour assets statiques

🔜 Prochaines étapes

P1 — Tests & Qualité

# Item Effort Impact
Tests unitaires backend (175 tests, 49% coverage) Fait 🟢
Coverage → 70%+ (main.py 26%, watcher.py 23%, router.py 37%) 2-3j 🟢
Tests E2E (Playwright) 3-5j 🟢
Git tags semver (git tag v1.7.0) 10min 🟡

P2 — Fonctionnalités UX

# Item Effort Impact
Palette de commandes (Ctrl+P) 1j 🟡
Drag & drop fichiers dans arborescence 1-2j 🟡
Diff viewer (comparer backups .obsigate-backup/) 1j 🟢
Filtres search avancés (created:, modified:, size:) 1j 🟡
Fichiers récents par vault (dashboard) 0.5j 🟡
Déduplication IGNORED_DIRS (indexer.py / watcher.py) 0.5j 🟢
Export PDF — route API + UI dédiée 1j 🟡

P3/P4 — Long terme

# Item Effort
Mode hors-ligne PWA (IndexedDB + synchro) 5-7j
OAuth2/OIDC (Google, GitHub, SSO) 3-5j
Plugin système (extensions utilisateur) 5-10j
Collaboration temps réel (WebSocket + Yjs) 5-10j
i18n (anglais + français) 2-3j
MFA (TOTP/WebAuthn) 3-5j
Thèmes personnalisés (CSS variables exposées) 1j
Export multi-formats (HTML, MD bundle, ePub) 2-3j
Notifications web Push API 2-3j
Health check enrichi (index, mémoire, uptime, SSE) 1j
Rotation des logs Python (RotatingFileHandler) 0.5j

Chronologie suggérée

Semaine Actions
S23 (cette semaine) Quick Wins + Sécurité (rate limiting, secret redactor, audit, backup)
S24 Publication publique, Webhooks, Dashboard, OpenAPI
S25 Split app.js en modules ES, Stemming français
S26 Graph view (phases 1-4), CI/CD, sortedcontainers
S27 AI Editor + Graph improvements (sticky panels, nav history)
S28 Coverage 70%+, Export PDF, Palette commandes
S29+ Fonctionnalités P2 au fil de l'eau

Document généré le 2026-06-02 — Mis à jour depuis l'audit du 2026-05-27. Voir aussi : ROADMAP.md (version simplifiée), CHANGELOG.md