ObsiGate/ROADMAP.md
Bruno Charest 271a463d6d
All checks were successful
CI / lint (push) Successful in 11s
CI / security (push) Successful in 8s
CI / test (push) Successful in 15s
CI / build (push) Successful in 3s
docs: ROADMAP.md + README v1.5.0 (CI/CD complet)
2026-05-28 13:11:08 -04:00

2.6 KiB
Raw Blame History

ObsiGate — Roadmap

Complété

CI/CD Pipeline (Gitea Actions)

  • Ruff linting — 0 erreur
  • Mypy type checking — 0 erreur (28 erreurs pré-existantes corrigées)
  • Pytest — 175 tests, 49% coverage
  • Bandit SAST — scan de sécurité
  • Pip-audit — vulnérabilités des dépendances (advisory)
  • Docker build — vérification image
  • Coverage artifact — uploadé via actions/upload-artifact@v3 (natif Gitea)
  • Runner Gitea auto-hébergé — gitea/act_runner:0.2.11 sur Alpine/Proxmox

Performance

  • sortedcontainers — O(log n) insert/remove dans l'index inversé
  • Compression GZip (SSE-safe)
  • Cache-Control immutable
  • Recherche sans I/O disque

Sécurité

  • JWT + Argon2id
  • Rate limiting
  • Audit log
  • Backup automatique
  • Redaction de secrets
  • Headers CSP
  • Protection path traversal
  • Utilisateur non-root Docker

DX / Qualité

  • .dockerignore
  • .env.env.example migration
  • Ruff config — 0 erreur
  • 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
  • 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)