# 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É** - [x] Implémenter la connexion WebSocket au serveur - [x] Configurer le endpoint QUIC avec quinn - [x] Créer le handshake P2P_HELLO - [x] Implémenter le partage de fichiers basique (FILE_META, FILE_CHUNK, FILE_DONE) - [x] Ajouter la création de PTY et capture de sortie - [x] CLI complet (run, send-file, share-terminal) - [x] Tests unitaires (14/14 passants) - [x] Documentation E2E complète ### Tests E2E Agent ↔ Serveur - [x] 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 - [x] 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