veza/TRIAGE.md
okinrev 1ef0e0d6d6 P0: stabilisation backend/chat/stream + nouvelle base migrations v1
Backend Go:
- Remplacement complet des anciennes migrations par la base V1 alignée sur ORIGIN.
- Durcissement global du parsing JSON (BindAndValidateJSON + RespondWithAppError).
- Sécurisation de config.go, CORS, statuts de santé et monitoring.
- Implémentation des transactions P0 (RBAC, duplication de playlists, social toggles).
- Ajout d’un job worker structuré (emails, analytics, thumbnails) + tests associés.
- Nouvelle doc backend : AUDIT_CONFIG, BACKEND_CONFIG, AUTH_PASSWORD_RESET, JOB_WORKER_*.

Chat server (Rust):
- Refonte du pipeline JWT + sécurité, audit et rate limiting avancé.
- Implémentation complète du cycle de message (read receipts, delivered, edit/delete, typing).
- Nettoyage des panics, gestion d’erreurs robuste, logs structurés.
- Migrations chat alignées sur le schéma UUID et nouvelles features.

Stream server (Rust):
- Refonte du moteur de streaming (encoding pipeline + HLS) et des modules core.
- Transactions P0 pour les jobs et segments, garanties d’atomicité.
- Documentation détaillée de la pipeline (AUDIT_STREAM_*, DESIGN_STREAM_PIPELINE, TRANSACTIONS_P0_IMPLEMENTATION).

Documentation & audits:
- TRIAGE.md et AUDIT_STABILITY.md à jour avec l’état réel des 3 services.
- Cartographie complète des migrations et des transactions (DB_MIGRATIONS_*, DB_TRANSACTION_PLAN, AUDIT_DB_TRANSACTIONS, TRANSACTION_TESTS_PHASE3).
- Scripts de reset et de cleanup pour la lab DB et la V1.

Ce commit fige l’ensemble du travail de stabilisation P0 (UUID, backend, chat et stream) avant les phases suivantes (Coherence Guardian, WS hardening, etc.).
2025-12-06 11:14:38 +01:00

7.3 KiB

Triage du projet Veza

Date : 2025-12-05 État : Document généré automatiquement après audit.

🚦 Fonctionnalités par état réel

Fonctionne (Code présent & Testé)

  • Auth Login/Register (Backend Go) : Implémenté dans internal/core/auth/service.go (Register, Login, Refresh).
  • WebSocket Connection (Chat Server) : Handshake et validation JWT implémentés dans websocket_handler.
  • Chat Messaging (Chat Server) : Envoi et diffusion (broadcast_to_conversation) fonctionnels.
  • Message History Pagination (Chat Server) : RÉSOLU P1 - Implémentation complète avec cursors before/after, index SQL optimisés, permissions, et handlers WebSocket. Voir docs/CHAT_HISTORY_SEARCH_SYNC.md.
  • Message Search (Chat Server) : RÉSOLU P1 - Implémentation complète avec recherche ILIKE, index trigram GIN, pagination, permissions, et handlers WebSocket. Voir docs/CHAT_HISTORY_SEARCH_SYNC.md.
  • Offline Sync (Chat Server) : RÉSOLU P1 - Implémentation complète avec sync depuis timestamp, support des edits/deletes, permissions, et handlers WebSocket. Voir docs/CHAT_HISTORY_SEARCH_SYNC.md.
  • Health Check & Status API (Backend Go) : RÉSOLU P1 - Implémentation complète avec routes /health (stateless) et /status (complet), vérifications DB/Redis/Chat/Stream, intégration Sentry, logging structuré, métriques Prometheus, et tests. Voir docs/BACKEND_STATUS_MONITORING.md.

🚧 Partiel (Squelette présent, logique incomplète)

  • Password Reset (Backend Go) : internal/core/auth/service.go. RÉSOLU P0 - Implémentation complète avec tokens, validation, invalidation sessions. Voir docs/AUTH_PASSWORD_RESET.md.
  • Job Worker (Backend Go) : internal/workers/job_worker.go. RÉSOLU P1 - Implémentation complète du système de workers avec EmailJob (SMTP), ThumbnailJob (génération d'images), AnalyticsEventJob (stockage événements), queue in-memory, worker pool, retry automatique, tests unitaires, et documentation complète. Voir docs/JOB_WORKER_SYSTEM.md.

Fantôme (Juste des TODOs ou des Structs vides)

  • Chat Read Receipts (Chat Server) : RÉSOLU P0 - Implémentation complète dans src/websocket/handler.rs avec ReadReceiptManager, permissions, et broadcast. Voir src/read_receipts.rs.
  • Stream Encoding (Stream Server) : RÉSOLU P0 - Implémentation complète du moteur d'encodage audio avec pool de workers FFmpeg, support HLS, API REST, et persistance DB. Voir docs/STREAM_ENCODING_PIPELINE.md et src/core/encoding_pool.rs.
  • Stream Processing (Stream Server) : RÉSOLU P1 - Implémentation complète du thread de traitement temps réel avec StreamProcessor, FFmpegMonitor, SegmentTracker, ProcessingCallbacks, monitoring stderr en temps réel, détection incrémentale des segments, persistance DB, API status, et documentation complète. Voir docs/STREAM_PROCESSING_THREAD.md et src/core/processing/.
  • Chat Delivered Status (Chat Server) : RÉSOLU P1 - Implémentation complète avec DeliveredStatusManager, migration DB, permissions, et broadcast. Voir docs/CHAT_DELIVERED_AND_TYPING.md.
  • Chat Typing Indicators (Chat Server) : RÉSOLU P1 - Implémentation complète avec TypingIndicatorManager, timeout automatique, task de monitoring, permissions, et broadcast. Voir docs/CHAT_DELIVERED_AND_TYPING.md.
  • Message Editing (Chat Server) : RÉSOLU P1 - Implémentation complète avec MessageEditService, permissions strictes, validation du contenu, événements WebSocket, et soft delete. Voir docs/CHAT_MESSAGE_EDIT_DELETE.md.
  • Message Deletion (Chat Server) : RÉSOLU P1 - Implémentation complète avec soft delete, traçabilité (deleted_at), permissions, événements WebSocket, et opération idempotente. Voir docs/CHAT_MESSAGE_EDIT_DELETE.md.

🧪 Tests Skippés / Ignorés

Service Fichier Test Raison
Résolu tests/integration/api_health_test.go TestHealthCheck RÉSOLU P1 - Tests implémentés pour /health et /status. Voir docs/BACKEND_STATUS_MONITORING.md.
backend internal/handlers/room_handler_test.go TestRoomHandler "TODO(P2): Refactor ... Currently disabled to fix compilation P0"
backend internal/database/pool_test.go Multiple "Skipping test: cannot connect to database"
chat-server src/database/pool.rs All "#[ignore] // Nécessite une base de données de test"
chat-server src/services/room_service.rs All "#[ignore] // Nécessite une configuration spécifique"
chat-server tests/history_search_sync.rs All "#[ignore] // Nécessite une base de données de test"
stream-server src/database/pool.rs All "#[ignore] // Nécessite une base de données de test"

🧨 TODOs Critiques & Bloquants

Priorité Fichier Description Impact
Résolu veza-backend-api/internal/handlers/ "P0 - Erreurs JSON non traitées silencieusement" RÉSOLU P0 - Phase 4 JSON Hardening : Tous les handlers HTTP dans internal/handlers/ passent désormais par CommonHandler.BindAndValidateJSON + RespondWithAppError. Plus aucune utilisation directe de ShouldBindJSON dans les handlers de production. Voir AUDIT_STABILITY.md.
Résolu veza-chat-server/src/websocket/handler.rs "Implémenter la logique de marquage comme lu" RÉSOLU P0 - Implémentation complète avec ReadReceiptManager, permissions, et broadcast
Résolu veza-stream-server/src/core/encoder.rs "Implémentation réelle des encodeurs" RÉSOLU P0 - Moteur d'encodage complet avec pool de workers FFmpeg, support HLS multi-qualité, API REST, migrations DB, et documentation. Voir docs/STREAM_ENCODING_PIPELINE.md.
Résolu veza-backend-api/internal/core/auth/service.go "Store reset token" & "Verify reset token" RÉSOLU - Implémentation complète avec PasswordResetService, routes branchées, documentation créée
Résolu veza-chat-server/src/message_handler.rs "Vérifier l'appartenance au salon" & "Vérifier si les utilisateurs ont une conversation existante" RÉSOLU P0 - Système complet de permissions implémenté avec PermissionService, intégration dans tous les handlers WebSocket, JWT manager corrigé, tests et documentation créés. Voir docs/CHAT_PERMISSIONS.md.
Résolu veza-chat-server/ (multiple files) "Panics et erreurs non maîtrisées" RÉSOLU P0 - Tous les unwrap()/expect() déclenchables par des inputs extérieurs ont été remplacés par une gestion d'erreurs explicite avec ChatError. Panic boundaries documentées, tests anti-panic créés. Voir docs/CHAT_PANIC_CLEANUP.md.
🟠 Moyenne veza-backend-api/internal/handlers/room_handler_test.go "Refactor RoomHandler ... fix compilation P0" Tests unitaires rooms désactivés
Résolu veza-backend-api/internal/workers/job_worker.go "Implémenter envoi email, thumbnails, analytics"