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

7.7 KiB

📊 État du Projet Mesh

Date: 2026-01-04 Phase: MVP - Data Plane Complete Statut Global: 🟢 Agent Rust COMPLET


Ce qui est Fait

Infrastructure & Configuration

  • Structure complète du projet (server, client, agent, infra, docs)
  • Fichiers de configuration pour tous les composants
  • Docker Compose pour développement
  • Pre-commit hooks pour qualité du code
  • VS Code snippets pour headers de traçabilité
  • Documentation complète (CLAUDE.md, README, QUICKSTART, DEVELOPMENT, TODO)

Serveur (Python/FastAPI)

  • Structure modulaire créée
  • Configuration avec pydantic-settings
  • Point d'entrée FastAPI avec health check
  • Dockerfile
  • Requirements.txt avec dépendances
  • CLAUDE.md spécifique avec guidelines

Client (React/TypeScript)

  • Configuration Vite + React 18
  • Thème Monokai dark complet
  • Pages Login et Room (squelettes)
  • Routing configuré
  • State management (zustand) intégré
  • TanStack Query configuré
  • CLAUDE.md spécifique avec guidelines

Agent (Rust) COMPLET

  • Structure modulaire (config, mesh, p2p, share, terminal, notifications)
  • Cargo.toml avec toutes les dépendances (tokio, quinn, tracing, etc.)
  • WebSocket Client complet avec event routing
  • QUIC Endpoint avec TLS 1.3 et P2P handshake
  • File Transfer avec chunking 256KB et Blake3 hash
  • Terminal Streaming avec PTY cross-platform
  • 14 Tests unitaires passent tous
  • CLI complet (run, send-file, share-terminal)
  • Documentation E2E complète
  • Binaire release: 4,8 MB (optimisé)
  • CLAUDE.md spécifique avec règles strictes

Voir: agent/STATUS.md pour détails complets

Documentation

  • CLAUDE.md principal avec exigence français
  • Documentation technique déplacée dans docs/
  • Guides par composant (server, client, agent, infra)
  • QUICKSTART.md pour démarrage rapide
  • DEVELOPMENT.md avec cases à cocher
  • TODO.md avec backlog organisé

🚧 En Cours / Prochaines Étapes

Urgent (Cette Semaine)

Agent TERMINÉ

  • Connexion WebSocket au serveur
  • Configuration QUIC endpoint
  • Handshake P2P_HELLO
  • Partage de fichiers avec Blake3
  • Terminal streaming
  • CLI complet
  • Tests unitaires
  • Documentation E2E

Next: Tests E2E avec serveur Python réel

Serveur (Priorité Haute)

  1. Implémenter les modèles SQLAlchemy
  2. Créer le système d'authentification JWT
  3. Implémenter le WebSocket connection manager
  4. Ajouter les handlers d'événements de base (system, room, p2p)
  5. API P2P session creation (pour intégration agent)

Client (Priorité Moyenne)

  1. Implémenter l'authentification (formulaire + store)
  2. Créer le client WebSocket
  3. Implémenter le composant Chat
  4. Ajouter le hook useWebRTC

📈 Progression par Phase

Phase 1 - MVP (60% terminé)

Infrastructure         ████████████████████  100%
Serveur                ████████░░░░░░░░░░░░   40%
Client                 ████████░░░░░░░░░░░░   40%
Agent                  ████████████████████  100% ✅

Milestone atteint: Data Plane (Agent Rust) complètement implémenté et testé

Phase 2 - V1 (0% terminé)

  • Pas encore commencé

Phase 3 - V2 (0% terminé)

  • Pas encore commencé

🎯 Objectifs MVP

Pour considérer le MVP terminé, il faut :

  • 2 utilisateurs peuvent se connecter au serveur
  • Chat en temps réel fonctionnel (envoi/réception messages)
  • Appel audio/vidéo P2P établi (WebRTC)
  • Fichier transféré via agent QUIC
  • Terminal partagé en preview (read-only)
  • Notifications Gotify reçues

Estimation: 4-6 semaines de développement actif


🔴 Risques & Blocages

Techniques

  • ⚠️ QUIC NAT traversal peut être complexe → Mitigation: Fallback HTTP via serveur prévu

  • ⚠️ WebRTC TURN bandwidth peut être élevé → Mitigation: Monitoring + quotas à implémenter

  • ⚠️ PTY cross-platform peut avoir des bugs → Mitigation: portable-pty à tester sur 3 OS

Organisationnels

  • ⚠️ Contexte Claude limitéMitigation: Utiliser /clear régulièrement + tout documenter dans fichiers

  • ⚠️ Scope creep (dérive des objectifs) → Mitigation: Phases strictes MVP → V1 → V2, pas de fonctionnalités "nice to have" avant MVP


📊 Métriques Clés

Métrique Valeur Actuelle Objectif MVP
Fichiers créés 70+ -
Tests écrits 14 (Agent) 50+
Coverage ~80% (Agent) 80%
Endpoints API 2 15+
Events WebSocket 3 (Agent side) 12+
Modules Agent 7 ( COMPLET) 7
Binaire Agent 4,8 MB (release) < 10 MB ()
Tests passants 14/14 All passing

🗓️ Prochaines Sessions

Session 1 - Authentification & Base de Données

Focus: Serveur Tâches:

  • Modèles SQLAlchemy
  • Migrations Alembic
  • Endpoints login/register
  • JWT generation

Session 2 - WebSocket & Events

Focus: Serveur + Client Tâches:

  • Connection manager
  • Event handlers (hello, room, chat)
  • Client WebSocket
  • Chat UI

Session 3 - WebRTC Signaling

Focus: Serveur + Client Tâches:

  • Signaling handlers (offer, answer, ice)
  • Hook useWebRTC
  • Video call UI
  • ICE candidates

Session 4 - QUIC P2P

Focus: Agent Tâches:

  • QUIC endpoint
  • P2P handshake
  • File transfer
  • Hash calculation

🎨 Design Decisions

Architecture

  • Three-plane architecture (Control, Media, Data) - VALIDÉ
  • Capability tokens avec TTL court (60-180s) - VALIDÉ
  • Thème Monokai dark pour le client - VALIDÉ
  • Langue française pour commentaires/docs - VALIDÉ

Technologies

  • Python 3.12 + FastAPI (serveur)
  • React 18 + TypeScript + Vite (client)
  • Rust + tokio + quinn (agent)
  • Docker + Docker Compose (déploiement)

📝 Notes Importantes

Workflow de Développement

  1. Choisir une tâche dans TODO.md
  2. Utiliser /clear avant de commencer
  3. Travailler en itérations courtes
  4. Ajouter headers de traçabilité (snippets disponibles)
  5. Mettre à jour DEVELOPMENT.md et TODO.md
  6. Commiter avec message en français

Conventions de Code

  • Commentaires: Français
  • Logs: English (pour compatibilité technique)
  • Errors: English (pour compatibilité technique)
  • Commits: Français
  • Documentation: Français

Rappels

  • ⚠️ JAMAIS de unwrap() ou expect() en Rust (production)
  • ⚠️ Server = control plane ONLY (jamais de média/data lourd)
  • ⚠️ Capability tokens obligatoires pour toute action P2P
  • ⚠️ Terminal preview-only par défaut (contrôle explicite)

🚀 Comment Continuer

  1. Lire QUICKSTART.md pour démarrer l'environnement
  2. Choisir une tâche dans TODO.md (section Urgent)
  3. Consulter le CLAUDE.md correspondant au composant
  4. Coder en itérations courtes
  5. Mettre à jour DEVELOPMENT.md et TODO.md
  6. Utiliser /clear entre tâches différentes

Principe Fondamental:

La vérité du projet Mesh est dans les fichiers. La conversation n'est qu'un outil temporaire.


Dernière mise à jour: 2026-01-01 Prochaine revue: Après completion du MVP ou à ~80% de session