- Update PROJECT_STATE.md: v0.502 delivered, next version v0.503 - Update CHANGELOG.md: comprehensive v0.502 entry (Added/Changed/Removed/Infrastructure) - Create SMOKE_TEST_V0502.md: validation checklist for chat rewrite - Create RETROSPECTIVE_V0502.md: retrospective with metrics and action items - Archive V0_502_RELEASE_SCOPE.md to docs/archive/ - Create V0_503_RELEASE_SCOPE.md placeholder - Update SCOPE_CONTROL.md and .cursorrules to reference v0.503
8.5 KiB
8.5 KiB
État du projet Veza — Février 2026
Document opérationnel : Où en sommes-nous, quelles sont les prochaines étapes.
1. Version actuelle
| Élément | Valeur |
|---|---|
| Dernier tag | v0.502 |
| Branche courante | main |
| Phase | Phase 5 Streaming & Communication — v0.502 livrée |
| Prochaine version | v0.503 |
2. Ce qui est livré
v0.103 (Phase 1 Fondation)
- Auth : OAuth Spotify (A1), Sessions enrichies (A4)
- Profils : Bannière (B1), Liens sociaux (B2), Profil privé (B3)
- ⏸️ 2FA SMS, Passkeys → reportés v0.104
v0.201 (Phase 2 Contenu — Lot E)
- ✅ Lot E — Métadonnées : BPM, musical_key, lyrics, tags (E1–E4)
- Migrations : 084 track_lyrics, 085 tracks.tags
v0.202 (Phase 2 Contenu — Lots G, H, F, C, D)
- Lot G : Recherche avancée (musical_key, tri pertinence, autocomplete, facettes type, historique)
- Lot H : Analytics créateur (stats, graphiques, taux complétion, export CSV/JSON)
- Lot F : Seller dashboard (GET /sell/stats, liste produits marketplace)
- Lot C : Player (crossfade, gapless preload, PiP)
- Lot D : Autoplay (GET /tracks/recommendations, section « À écouter ensuite »)
v0.203 (Phase 2 Contenu — Lots L, K, D1)
- Lot L : Social Trending (GET /social/trending, cache Redis, SocialViewTrending connecté)
- Lot K : Recherche enrichie (pg_trgm fuzzy, AND/OR/NOT/"phrase exacte", tooltip aide)
- Lot D1 : Queue collaborative (sessions partagées, bouton Partager, polling sync)
v0.301 (Phase 3 Social — Lots P0, C1, P1, S1)
- Lot P0 : Chat Server typing protocol, auth WebSocket doc
- Lot C1 : Typing indicators, read receipts, delivered status
- Lot P1 : Présence (migration 088, GET /users/:id/presence, PresenceBadge)
- Lot S1 : Social enrichi (feed API, actor/track enrichi, pagination, explore, filtres)
v0.302 (Phase 3 Social — Lots S2, N1, P2)
- Lot S2 : Groupes avancés (request join, invite, rôles, feed groupes, mes groupes)
- Lot N1 : Notifications push Web (subscription, envoi sur événement, préférences, badge)
- Lot P2 : Présence enrichie (rich presence track, mode invisible, PUT /users/me/presence)
v0.303 (Phase 3 Social — Lot C2)
- Lot C2 : Chat appels WebRTC 1-to-1 (signalisation, CallButton, IncomingCallModal, ActiveCallBar)
v0.401 (Phase 4 Commerce — Lots M1, M2, M3)
- Lot M1 : Produits & Catalogue (BPM, musical_key, category, previews, images, filtres, rich text)
- Lot M2 : Licences & Droits (product_licenses, GET /licenses/mine, LicenceCard, LicensesView)
- Lot M3 : Seller dashboard enrichi (evolution chart, top products, real sales)
v0.402 (Phase 4 Commerce — Lots P1, P2)
- Lot P1 : Checkout Hyperswitch production-ready (return URL order_id, CheckoutSuccessView/ErrorView, webhook cancelled, CheckoutPaymentForm)
- Lot P2 : Codes promo (promo_codes, ValidatePromoCode, GET /commerce/promo/:code, PromoCodeModal connecté, OrderSummary dans Cart)
v0.404 (Phase 4bis Stabilisation — post-audit)
- Sécurité : JWT stream token endpoint, SSRF protection webhooks (HTTPS-only), IDOR fix GetUploadStatus, Hyperswitch webhook secret requis en prod, password reset tokens hashés (SHA-256), docker-compose.hybrid supprimé, secrets CI → GitHub Secrets
- Infra : Rate limiting Redis, alerting Prometheus, PostgreSQL 16 aligné, compose staging complet, CodeQL SAST, Rust CI avec clippy
- Qualité : 40 fmt.Printf → zap, ~45 any éliminés frontend, TypeScript 5.9.3 unifié, code mort supprimé (~1600 LOC), gorilla/websocket → coder/websocket
v0.501 (Phase 5 Streaming & Cloud — Lots S1, C1, G1)
- Lot S1 — HLS production : transcoding adaptatif 3 tiers (128k, 256k, 320k), ABR hls.js, cache segments CDN, monitoring Prometheus (4 compteurs), waveform generation (FFmpeg + audiowaveform), WaveformDisplay SVG interactif, useHLSPlayer hook
- Lot C1 — Cloud Storage MVP : gestion dossiers/fichiers, upload drag-and-drop avec quota 5GB, prévisualisation audio inline, publication cloud → track
- Lot G1 — Gear avancé : profils publics (is_public toggle, GearShowcase), galerie images multi-photo avec carousel, recherche ILIKE avec SearchBar
- Infra : MinIO S3-compatible (dev, staging, prod), 6 migrations (103–108)
- Sécurité : Trivy container scanning CI
v0.502 (Phase 5 Communication — Chat Server Rewrite)
- Chat Server Rust → Go : WebSocket intégré dans veza-backend-api (
/api/v1/ws) - Hub/Client avec goroutines readPump/writePump, 30s ping keepalive
- 18 types messages entrants, 20 types sortants (protocole identique au Rust)
- Handlers : SendMessage, EditMessage, DeleteMessage, JoinConversation, LeaveConversation, FetchHistory, SearchMessages, SyncMessages, Typing, MarkAsRead, Delivered, AddReaction, RemoveReaction, WebRTC signaling (5 types)
- PermissionService (room_members), RateLimiter (per-user per-action)
- ChatPubSubService (Redis PubSub + fallback in-memory)
- 4 nouvelles migrations (109–112), 3 modèles GORM, 4 repositories enrichis
- Docker : suppression chat-server Rust de docker-compose.yml, staging.yml, prod.yml
- Frontend : dérivation WS_URL depuis API_URL, types TS mis à jour, MSW mis à jour
- 15 tests unitaires Go, E2E tests intégration, CHAT_FEATURE_PARITY.md (25/25 OK)
3. Prochaines étapes
Prochaine version (v0.502)
- Phase 5 — Chat Server Rewrite : Réécriture du chat server Rust en Go
- Référence : V0_502_RELEASE_SCOPE.md
4. Sécurité
| Métrique | Avant v0.404 | Après v0.404 |
|---|---|---|
| Score sécurité | 5/10 | 7/10 |
Améliorations v0.404 :
- JWT stream token endpoint (
POST /auth/stream-token) pour auth HLS/WebSocket - SSRF protection sur webhooks (HTTPS-only, whitelist schéma)
- IDOR corrigé dans GetUploadStatus (ownership check)
- Hyperswitch webhook secret requis en production (HMAC)
- Password reset tokens hashés (SHA-256)
- Docker hybrid compose supprimé
- Credentials CI migrés vers GitHub Secrets
5. Infrastructure
| Élément | État v0.404 |
|---|---|
| Rate limiting Redis | ✅ Disponible |
| Alerting Prometheus | ✅ Règles ajoutées |
| PostgreSQL | ✅ Aligné v16 |
| Compose staging | ✅ Complet (chat, stream, reverse proxy) |
| CodeQL SAST | ✅ Ajouté |
| Rust CI (clippy) | ✅ Ajouté |
6. Qualité du code
| Métrique | v0.404 |
|---|---|
| fmt.Printf → zap | 40 remplacements |
| any TypeScript éliminés | ~45 |
| TypeScript unifié | 5.9.3 |
| Code mort supprimé | ~1600 LOC |
| gorilla/websocket | Remplacé par coder/websocket |
7. Références rapides
| Document | Usage |
|---|---|
| PLAN_V0_301_FINALISATION.md | Plan de finalisation v0.301 |
| V0_401_RELEASE_SCOPE.md | Scope v0.401 (Phase 4 Commerce) |
| V0_402_RELEASE_SCOPE.md | Scope v0.402 (checkout & codes promo) |
| V0_303_RELEASE_SCOPE.md | Scope v0.303 (Chat appels WebRTC 1-to-1) |
| PLAN_V0_401_IMPLEMENTATION.md | Plan d'implémentation v0.401 |
| PLAN_V0_402_IMPLEMENTATION.md | Plan d'implémentation v0.402 |
| V0_404_RELEASE_SCOPE.md | Scope v0.404 (stabilisation post-audit) |
| V0_501_RELEASE_SCOPE.md | Scope v0.501 (Streaming & Cloud, archivé) |
| V0_502_RELEASE_SCOPE.md | Scope v0.502 (Chat Server Rewrite, archivé) |
| V0_503_RELEASE_SCOPE.md | Scope v0.503 (placeholder) |
| CHAT_FEATURE_PARITY.md | Feature parity Rust vs Go (25/25 OK) |
| V0_301_RELEASE_SCOPE.md | Scope détaillé v0.301 (Phase 3 Social) |
| V0_203_RELEASE_SCOPE.md | Scope v0.203 (archivé) |
| SCOPE_CONTROL.md | Anti-scope-creep, workflow |
| FEATURE_STATUS.md | Statut des features par domaine |
| CHANGELOG.md | Historique des versions |
8. Stack technique
| Composant | État |
|---|---|
| Backend Go | ✅ Opérationnel |
| Frontend React (Vite) | ✅ Opérationnel |
| Chat Server Rust | ✅ Opérationnel (compile) |
| Stream Server Rust | ⚠️ Imports manquants |
| PostgreSQL | ✅ |
| Redis | ✅ |
9. Indicateurs
| Métrique | Valeur |
|---|---|
| Features livrées (cumul) | ~353 / 600 |
| Features E2E fonctionnelles | 22 |
| Score maturité produit | 5/10 |
| Module Streaming | 55% |
| Module Cloud | 30% |
| Module Gear | 60% |