ObsiGate/ROADMAP.md
Bruno Charest 08c29c9efe
Some checks failed
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 8s
feat: palette de commandes Ctrl+P — navigation rapide fichiers + commandes
2026-06-02 12:30:41 -04:00

4.6 KiB
Raw Permalink 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+P) — 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

📋 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