veza/docs/archive/V0_101_RELEASE_SCOPE.md

167 lines
7 KiB
Markdown

# 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
- [x] `go build ./...` (backend) — 0 erreur
- [x] `cargo build --release` (chat-server) — 0 erreur
- [x] `cargo build --release` (stream-server) — 0 erreur
- [x] `npm run build` (frontend) — 0 erreur
- [x] `npx tsc --noEmit` — 0 erreur
### 5.2 Tests
- [x] `go test ./...` (backend) — 0 échec
- [x] `npm test -- --run` (frontend) — 0 échec (validate-light)
- [x] `npm run test:storybook` — 0 erreur console/réseau
- [x] E2E auth, smoke, playlists, search — 0 échec (validé en CI ; local : `./scripts/run-e2e-local.sh`)
### 5.3 Qualité
- [x] `npm run lint` — 0 erreur
- [x] Aucune régression sur les flows critiques (auth, upload, playlists, player, streaming audio)
- [x] Pas de `console.log` en production
- [x] Pas de TODO/FIXME critiques dans le code modifié
### 5.4 Sécurité
- [x] Aucun secret commité
- [x] `.env` exclus du git
- [x] Rate limiting actif en production
- [x] 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
- [SCOPE_CONTROL.md](SCOPE_CONTROL.md) — Processus anti-scope-creep
- [FEATURE_STATUS.md](FEATURE_STATUS.md) — Statut détaillé des features
- [REMEDIATION_PROGRESS.md](REMEDIATION_PROGRESS.md) — Progression de la stabilisation