Files
mesh/TODO.md
Gilles Soulier 1d177e96a6 first
2026-01-05 13:20:54 +01:00

7.4 KiB

TODO - Mesh

Liste des tâches courantes et prochaines actions pour le projet Mesh.

🔥 Urgent / Priorité Haute

Serveur

  • Implémenter les modèles de base de données (User, Device, Room, RoomMember, Session)
  • Créer le système d'authentification JWT (login/register)
  • Implémenter le WebSocket connection manager
  • Créer les handlers d'événements système (hello, welcome)
  • Ajouter le logging structuré avec rotation

Client

  • Implémenter l'authentification (formulaire + store)
  • Créer le client WebSocket avec reconnexion auto
  • Implémenter le composant Chat (affichage + envoi)
  • Ajouter la gestion des participants dans la room
  • Créer le hook useWebRTC pour les appels audio/vidéo

Agent COMPLET - MVP LIVRÉ

  • Implémenter la connexion WebSocket au serveur
  • Configurer le endpoint QUIC avec quinn
  • Créer le handshake P2P_HELLO
  • Implémenter le partage de fichiers basique (FILE_META, FILE_CHUNK, FILE_DONE)
  • Ajouter la création de PTY et capture de sortie
  • CLI complet (run, send-file, share-terminal)
  • Tests unitaires (14/14 passants)
  • Documentation E2E complète

Tests E2E Agent ↔ Serveur

  • Tester connexion Agent → Serveur (WebSocket + system.hello) 2026-01-05
  • Tester création session P2P via serveur
  • Tester file transfer Agent A → Agent B (QUIC)
  • Tester terminal sharing Agent A → Agent B
  • Valider P2P handshake en conditions LAN réelles
  • Benchmarker performances QUIC (débit, latence)

📋 Prochaines Tâches (Semaine Courante)

Serveur

  • Mettre en place Alembic pour les migrations DB
  • Créer les endpoints REST pour l'authentification
  • Implémenter la génération de capability tokens
  • Ajouter les handlers WebSocket pour les rooms (join, leave)
  • Implémenter les handlers pour le chat

Client

  • Créer le composant Participants avec statuts (online, busy)
  • Implémenter l'envoi de messages via WebSocket
  • Ajouter les notifications toast
  • Créer le store pour les rooms
  • Implémenter la déconnexion automatique sur token expiré

Agent

  • Toutes les tâches Agent MVP terminées
  • Voir section "Tests E2E Agent ↔ Serveur" dans Urgent

🔄 En Cours

  • 🚧 Tests E2E Agent ↔ Serveur (Agent prêt , serveur à compléter)
  • 🚧 Serveur Python - Complétion API P2P (90% fait)
  • 🚧 Infrastructure - Docker Compose production

Récemment Terminé

Infrastructure & Setup

  • Initialisation du projet avec structure complète
  • Configuration du thème Monokai dark pour le client
  • Création des fichiers CLAUDE.md pour chaque composant
  • Mise en place des pre-commit hooks pour les headers
  • VS Code snippets pour les headers de traçabilité
  • README.md et QUICKSTART.md
  • Déplacement des docs techniques dans docs/
  • Ajout de l'exigence langue française dans CLAUDE.md

Agent Rust - MVP COMPLET (2026-01-04)

  • Phase 0: Correction compilation (dépendances manquantes)
  • Phase 1: WebSocket Client avec event routing (SystemHandler, RoomHandler, P2PHandler)
  • Phase 2: QUIC Endpoint (TLS 1.3, P2P handshake, session token cache)
  • Phase 3: File Transfer (Blake3 hash, chunking 256KB, FileSender/FileReceiver)
  • Phase 4: Terminal Preview (PTY cross-platform, TerminalStreamer/Receiver)
  • Phase 5: Tests & Debug (14 tests unitaires, debug utilities)
  • Phase 6: MVP Integration (CLI complet, E2E_TEST.md, README, STATUS)
  • Binaire release: 4,8 MB optimisé
  • Documentation complète (AGENT_COMPLETION_REPORT.md, NEXT_STEPS.md)

📅 Backlog (Futures Versions)

V1 (Fonctionnalités Avancées)

  • Refresh tokens et révocation
  • RBAC (owner, member, guest)
  • Historique de messages persisté
  • Typing indicators
  • Screen sharing
  • Folder sharing (zip mode)
  • Terminal control (take control)
  • TURN credentials temporaires
  • Rate limiting
  • Admin API

V2 (Optimisations)

  • E2E encryption applicatif
  • Folder sync avec watcher
  • Tray icon pour agent
  • Auto-start agent
  • Mobile responsive client
  • PWA support
  • Monitoring Prometheus + Grafana
  • Load balancing multi-instances
  • Database réplication
  • CDN pour client statique

V3 (Évolutions)

  • Application mobile (React Native)
  • Plugin system
  • Bots et intégrations
  • Voice messages
  • File preview dans le chat
  • Search global
  • Multi-tenancy

🐛 Bugs Connus

(Aucun pour l'instant - projet en phase d'initialisation)

🔬 Recherche & Expérimentation

  • Tester quinn QUIC avec NAT sur différents réseaux
  • Benchmarker les performances de transfert de fichiers
  • Évaluer portable-pty sur Windows et macOS
  • Tester WebRTC avec différentes configurations ICE
  • Profiler la consommation mémoire de l'agent

📝 Documentation à Créer/Améliorer

  • Guide d'installation pour utilisateurs finaux
  • Documentation API (OpenAPI/Swagger)
  • Architecture Decision Records (ADR)
  • Guide de contribution
  • Troubleshooting guide
  • Performance tuning guide
  • Security best practices

🧪 Tests à Écrire

Serveur

  • Tests unitaires pour JWT generation/validation
  • Tests unitaires pour capability tokens
  • Tests d'intégration WebSocket (join room, send message)
  • Tests E2E (user journey complet)

Client

  • Tests unitaires pour stores (auth, room, call)
  • Tests unitaires pour hooks (useWebSocket, useWebRTC)
  • Tests de composants (Login, Room, Chat)
  • Tests E2E avec Playwright

Agent

  • Tests unitaires pour protocol parsing
  • Tests unitaires pour hashing
  • Tests d'intégration QUIC handshake
  • Tests de transfert de fichiers end-to-end
  • Tests cross-platform (CI/CD)

🚀 Déploiement

  • Configurer CI/CD (GitHub Actions)
  • Créer les workflows de build (server, client, agent)
  • Automatiser les tests
  • Créer le docker-compose.yml production
  • Documenter le processus de déploiement
  • Configurer le reverse proxy (Caddy ou Nginx)
  • Obtenir certificats SSL (Let's Encrypt)
  • Tester le déploiement complet

📊 Métriques & KPIs

  • Définir les métriques clés à tracker
  • Implémenter les endpoints de métriques
  • Configurer la collecte de métriques
  • Créer les dashboards de monitoring
  • Définir les alertes critiques

Notes

Conventions

  • Utiliser [ ] pour les tâches non commencées
  • Utiliser [x] ou pour les tâches terminées
  • Utiliser 🚧 pour les tâches en cours
  • Préfixer les bugs avec 🐛
  • Préfixer les tâches urgentes avec 🔥

Workflow

  1. Choisir une tâche dans "Urgent / Priorité Haute"
  2. La marquer comme en cours (🚧) dans "En Cours"
  3. Travailler en itérations courtes
  4. Utiliser /clear entre les tâches différentes
  5. Une fois terminée, la déplacer dans "Récemment Terminé"
  6. Mettre à jour DEVELOPMENT.md avec les cases à cocher correspondantes

Principe

La vérité du projet Mesh est dans les fichiers. Ce TODO.md doit être mis à jour régulièrement pour refléter l'état actuel du projet.


Dernière mise à jour: 2026-01-04 Prochaine revue: Après tests E2E Agent ↔ Serveur réussis