# 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 - [ ] 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 - [ ] 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