docs: ROADMAP.md + README v1.5.0 (CI/CD complet)
CI / lint (push) Successful in 11s
CI / security (push) Successful in 8s
CI / test (push) Successful in 15s
CI / build (push) Successful in 3s

This commit is contained in:
2026-05-28 13:11:08 -04:00
parent 7965139230
commit 271a463d6d
2 changed files with 99 additions and 2 deletions
+78
View File
@@ -0,0 +1,78 @@
# ObsiGate — Roadmap
## ✅ Complété
### CI/CD Pipeline (Gitea Actions)
- [x] Ruff linting — 0 erreur
- [x] Mypy type checking — 0 erreur (28 erreurs pré-existantes corrigées)
- [x] Pytest — 175 tests, 49% coverage
- [x] Bandit SAST — scan de sécurité
- [x] Pip-audit — vulnérabilités des dépendances (advisory)
- [x] Docker build — vérification image
- [x] Coverage artifact — uploadé via `actions/upload-artifact@v3` (natif Gitea)
- [x] Runner Gitea auto-hébergé — `gitea/act_runner:0.2.11` sur Alpine/Proxmox
### Performance
- [x] `sortedcontainers` — O(log n) insert/remove dans l'index inversé
- [x] Compression GZip (SSE-safe)
- [x] Cache-Control immutable
- [x] Recherche sans I/O disque
### Sécurité
- [x] JWT + Argon2id
- [x] Rate limiting
- [x] Audit log
- [x] Backup automatique
- [x] Redaction de secrets
- [x] Headers CSP
- [x] Protection path traversal
- [x] Utilisateur non-root Docker
### DX / Qualité
- [x] `.dockerignore`
- [x] `.env` → `.env.example` migration
- [x] Ruff config — 0 erreur
- [x] Mypy config — 0 erreur
---
## 🔜 Prochaines étapes (par priorité)
### 1. Stemming français 🇫🇷
- **Effort** : 30 min
- **Impact** : 🟡 Améliore la recherche ×2 pour les termes fléchis
- **Module** : `snowballstemmer` (stemmer français)
- **Fichiers** : `backend/search.py` (tokenizer)
### 2. Split `app.js` en modules ES
- **Effort** : 2-3 jours
- **Impact** : 🟡 Dette technique, maintenabilité
- **Fichiers** : `frontend/app.js` (~8000 lignes → modules)
### 3. Tests d'intégration
- **Effort** : 3-5 jours
- **Impact** : 🟢 Couverture 49% → 70%+
- **Cibles** : `main.py` (26%), `watcher.py` (23%), `router.py` (37%), `create_admin.py` (0%), `image_processor.py` (15%)
### 4. Export PDF
- **Effort** : 1 jour
- **Impact** : 🟡 WeasyPrint déjà intégré (lazy import), manque GTK sur certaines plateformes
- **Alternative** : Markdown → HTML → PDF via headless Chrome
### 5. Vue graphe des wikilinks
- **Effort** : 3-5 jours
- **Impact** : 🟢 Nouvelle fonctionnalité, visualisation des connexions entre notes
- **Stack** : D3.js ou Cytoscape.js
---
## 📋 Backlog
- **Filtres de recherche avancés** : created:, modified:, size:
- **Mode hors-ligne** : Service Worker + cache IndexedDB
- **API publique documentée** : OpenAPI/Swagger amélioré
- **Thèmes personnalisés** : CSS variables exposées
- **Export multi-formats** : HTML, MD bundle, ePub
- **Notifications web** : Push API pour changements de vault
- **Multi-langue i18n** : Interface traduisible
- **Plugins système** : Extensions utilisateur (similaire Obsidian)