7.4 KiB
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
- Choisir une tâche dans "Urgent / Priorité Haute"
- La marquer comme en cours (🚧) dans "En Cours"
- Travailler en itérations courtes
- Utiliser
/clearentre les tâches différentes - Une fois terminée, la déplacer dans "Récemment Terminé"
- 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