Files
ObsiGate/ROADMAP.md
T
bruno 9e552aa87d
CI / lint (push) Failing after 3s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 9s
docs: roadmap #15-#19 marked FAIT
2026-06-04 21:36:34 -04:00

155 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ObsiGate — Roadmap
> **Version :** 1.9.0 | **Dernière mise à jour :** 2026-06-04
> Voir aussi [CHANGELOG.md](./CHANGELOG.md), [docs/ROADMAP.md](./docs/ROADMAP.md), [AUDIT_TECHNIQUE.md](./docs/AUDIT_TECHNIQUE_2026-05-27.md)
---
## ✅ Complété (v1.0.0 → v1.9.0)
### AI Editor (v1.7.0)
- [x] Toolbar dropdown menus : Edit, Tone, Translate, Generate, Rewrite, Toolbox
- [x] Multi-provider : DeepSeek, OpenRouter, Gemini
- [x] 16 endpoints REST `/api/ai/{action}` + backend `ai.py` / `ai_routes.py`
- [x] Auto-save silencieux (2s debounce), loading toasts, cache toolbar si pas de clé API
- [x] Messages d'erreur clairs (401 → clé invalide, etc.)
### Vue graphe — Phases 3 & 4 (v1.6.0)
- [x] Filtre par type (dossier/fichier/.md/autre), mode focus, plein écran, export PNG
- [x] Barnes-Hut O(n log n), cache graphe
- [x] Header flat design, sticky panels, navigation historique ← → ↑
- [x] Ctrl+survol → aperçu contenu formaté
### Performance & CI/CD (v1.6.0)
- [x] `sortedcontainers` — O(log n) insert/remove dans l'index inversé
- [x] CI/CD Pipeline Gitea Actions (lint → test → security → build)
- [x] Ruff linting — 0 erreur
- [x] Mypy type checking — 0 erreur
- [x] Pytest — **284 tests, 70% coverage** (main.py 61%, router.py 67%, watcher.py 62%)
- [x] Tests API main.py (84 tests), Auth API (13 tests), Watcher mocké (14 tests)
- [x] Bandit SAST + Pip-audit + Docker build + coverage artifact
### Split app.js en modules ES (v1.5.1)
- [x] 8 875 lignes → 16 modules dans `frontend/js/`
- [x] Validateur imports/exports CI
- [x] Tests unitaires frontend (Node.js)
### Stemming français (v1.5.1)
- [x] `snowballstemmer` — recherche accent-insensitive et morphologique
- [x] Performance O(T) au lieu de O(S×T), crash guard IndexError
### Fonctionnalités avancées (v1.5.0)
- [x] Publication publique de documents (lien partageable avec token)
- [x] Webhooks HTTP avec signature HMAC-SHA256
- [x] Dashboard statistiques (fichiers, tags, taille, vaults)
- [x] Documentation OpenAPI enrichie (Swagger + Redoc)
- [x] Gestion des conflits Syncthing
- [x] Index inversé incrémental (hook pattern)
### Sécurité (v1.4.0)
- [x] JWT + Argon2id
- [x] Rate limiting login (IP + compte)
- [x] Audit log avec rotation
- [x] Backup automatique avant écriture
- [x] Redaction de secrets
- [x] Headers CSP
- [x] Protection path traversal
- [x] Utilisateur non-root Docker
### UX / Qualité
- [x] `.dockerignore`, `.env` → `.env.example`, Ruff config, Mypy config
- [x] Compression GZip (SSE-safe), Cache-Control immutable
- [x] Recherche sans I/O disque
- [x] Backlinks panel
- [x] 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** : 🟡
- [x] Clic sur un backup → panneau latéral avec aperçu du contenu (limité à 100 Ko)
- [x] Endpoint `GET /api/backups/content?path=...`
- [x] Panneau refermable avec bouton X
### ✅ 16. Purge par vault dans le gestionnaire — FAIT
- **Effort** : 0.5 jour | **Impact** : 🟡
- [x] Bouton rouge « Vider » par vault dans le gestionnaire
- [x] Confirmation avant suppression
### ✅ 17. Compression des backups — FAIT
- **Effort** : 0.5 jour | **Impact** : 🟢
- [x] Endpoint `POST /api/backups/compress` avec params `older_than_days` et `dry_run`
- [x] Compression gzip niveau 6, suppression du .bak original si plus petit
- [x] Skip si la compression n'aide pas (fichier déjà petit)
### ✅ 18. Backup automatique périodique — FAIT
- **Effort** : 1 jour | **Impact** : 🟡
- [x] Endpoint `POST /api/backups/auto` avec param `since_hours` (défaut 24)
- [x] Backup de tous les fichiers modifiés depuis N heures, tous vaults
- [x] Utilisable via cron job externe ou appel manuel
### ✅ 19. Restauration depuis le gestionnaire — FAIT
- **Effort** : 0.5 jour | **Impact** : 🟡
- [x] Bouton « Restaurer » (icône rotate-ccw) sur chaque backup dans le gestionnaire
- [x] Extraction automatique du timestamp depuis le nom du fichier backup
- [x] Confirmation avant restauration, toast de succès
---
## 📋 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