first
This commit is contained in:
217
TODO.md
Normal file
217
TODO.md
Normal 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
|
||||
Reference in New Issue
Block a user