This commit is contained in:
Gilles Soulier
2026-01-05 13:13:08 +01:00
parent 8e14adafc6
commit 1d177e96a6
149 changed files with 29541 additions and 1 deletions

217
TODO.md Normal file
View File

@@ -0,0 +1,217 @@
<!--
Created by: Claude
Date: 2026-01-01
Purpose: Liste des tâches à faire pour le projet Mesh
Refs: DEVELOPMENT.md, CLAUDE.md
-->
# 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