5.7 KiB
5.7 KiB
ObsiGate — Roadmap
Version : 1.9.0 | Dernière mise à jour : 2026-06-04 Voir aussi CHANGELOG.md, docs/ROADMAP.md, AUDIT_TECHNIQUE.md
✅ Complété (v1.0.0 → v1.9.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}+ backendai.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 (P1/P2)
✅ 1. Tests & Couverture — FAIT
- Coverage 49% → 70% ✅
Cibles : main.py (26%), watcher.py (23%), router.py (37%)— FAITTests 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.gzaprè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