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

150 lines
5.7 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
- **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