veza/docs/V0_101_RELEASE_SCOPE.md

7 KiB

Scope v0.101 — Version stable cible

Version cible : v0.101
Objectif : Projet complètement stable, sans régressions, base solide pour évolutions futures
Dernière mise à jour : février 2026


1. Principe directeur

v0.101 = freeze fonctionnel. Aucune nouvelle feature. Uniquement stabilisation, corrections et nettoyage du périmètre défini ci-dessous.

Tous les modules doivent fonctionner ensemble — Backend, Frontend, Chat Server, Stream Server, ClamAV, RabbitMQ. Même incomplets, ils doivent tourner et communiquer correctement.


2. Features IN SCOPE v0.101

2.1 Cœur produit (obligatoires)

Feature Frontend Backend Tests requis Critère de stabilité
Auth (register, login, logout, refresh) Unit + E2E Flow complet sans erreur
2FA (TOTP) E2E (si configuré) Login 2FA fonctionnel
OAuth (Google, GitHub, Discord) E2E (optionnel) Redirection + callback OK
Profils utilisateur Unit CRUD profil, avatar
Upload de tracks Integration Upload → métadonnées → jouable
CRUD Tracks Unit + E2E Liste, détail, édition, suppression
Playlists (CRUD, collaboration) Unit + E2E CRUD, ajout/retrait tracks
Player audio (lecture, queue, contrôles) N/A Unit Play, pause, seek, next, volume
Streaming audio (HLS, lecture des tracks) Integration Lecture adaptative fonctionnelle — doit être opérationnel
Dashboard Unit Affichage stats, pas de crash
Recherche E2E Recherche tracks/playlists/users
Settings (préférences, compte) Unit Sauvegarde, pas de régression
Library (mes tracks) Unit Liste, filtres
Erreurs (404, 500) N/A - Pages d'erreur affichées

2.2 Features secondaires (stables, sans régression)

Feature Frontend Backend Critère
Chat Connexion WebSocket, envoi/réception — Chat Server obligatoire
Notifications Liste, marquer lu
Admin (dashboard, rôles) Accès admin uniquement, pas de crash
Social (feed, posts, groups) Affichage feed, création post
Marketplace (catalogue, panier) Navigation catalogue, panier en mémoire
Profile public (/u/:username) Affichage profil public

2.3 Routes à conserver (état actuel)

  • /login, /register, /forgot-password, /verify-email, /reset-password
  • /dashboard, /library, /profile, /settings, /settings/sessions
  • /tracks/:id, /playlists/*, /search, /chat, /notifications
  • /marketplace, /sell, /wishlist, /purchases
  • /admin, /admin/roles, /social, /analytics, /webhooks
  • /gear, /live, /queue, /developer
  • /design-system, /u/:username
  • /404, /500

3. Features HORS SCOPE v0.101 (ne pas toucher)

Ces features existent dans le code mais ne font pas partie du périmètre stable.
Elles restent en l'état. Aucun développement, aucune "amélioration".

Feature Statut Action
Live streaming (flux vidéo) Mock/partiel HORS SCOPE — le streaming vidéo ne nous intéresse pas pour v0.101
Seller dashboard (logique vendeur) Shell vide Conserver tel quel
Developer portal (API keys complètes) Partiel Conserver tel quel
Paiement Hyperswitch (intégration réelle) Non connecté Conserver tel quel
PWA (service worker, install) Partiel Conserver tel quel
WebRTC (streaming peer-to-peer) Non intégré Conserver tel quel

4. Features à masquer ou simplifier (Coming Soon)

Ces routes affichent un placeholder "Coming Soon". Ne pas développer pour v0.101.

Route Composant cible Action v0.101
/queue ComingSoon ou QueuePage Garder état actuel
/developer ComingSoon ou DeveloperDashboard Garder état actuel
/gear GearPage (backend OK) Garder état actuel
/live LivePage (mock) Garder état actuel

5. Critères de stabilité v0.101

5.1 Build & compilation

  • go build ./... (backend) — 0 erreur
  • cargo build --release (chat-server) — 0 erreur
  • cargo build --release (stream-server) — 0 erreur
  • npm run build (frontend) — 0 erreur
  • npx tsc --noEmit — 0 erreur

5.2 Tests

  • go test ./... (backend) — 0 échec
  • npm test -- --run (frontend) — 0 échec (validate-light)
  • npm run test:storybook — 0 erreur console/réseau
  • E2E auth, smoke, playlists, search — 0 échec (validé en CI ; local : ./scripts/run-e2e-local.sh)

5.3 Qualité

  • npm run lint — 0 erreur
  • Aucune régression sur les flows critiques (auth, upload, playlists, player, streaming audio)
  • Pas de console.log en production
  • Pas de TODO/FIXME critiques dans le code modifié

5.4 Sécurité

  • Aucun secret commité
  • .env exclus du git
  • Rate limiting actif en production
  • CORS configuré correctement

6. Services requis pour v0.101

Tous les modules doivent fonctionner ensemble. Même incomplets, chaque service doit tourner et communiquer correctement avec les autres.

Service Obligatoire v0.101 Note
Backend API (Go) Cœur
PostgreSQL Cœur
Redis Sessions, rate limit, CSRF
Frontend (Vite) Cœur
Chat Server (Rust) Doit fonctionner avec le frontend
Stream Server (Rust) Streaming audio HLS — doit être opérationnel
RabbitMQ Événements async — doit être connecté
ClamAV Scan virus sur les uploads — doit être actif

7. Définition de "stable"

Une feature est stable pour v0.101 si :

  1. Happy path fonctionne sans erreur
  2. Erreurs gérées : états Loading, Error, Empty présents
  3. Tests : au moins 1 test (unit ou E2E) couvrant le flow principal
  4. Pas de régression : les tests existants passent
  5. Story : composants feature ont une story Storybook (Loading, Error, Empty)

8. Ce qui change APRÈS v0.101

Une fois v0.101 atteinte et taguée :

  • Les nouvelles features seront ajoutées uniquement via le processus défini dans docs/SCOPE_CONTROL.md
  • Chaque nouvelle feature devra avoir un ticket validé et un scope explicite
  • Les versions suivantes (v0.102, v0.103…) auront leur propre document de scope

Références