veza/docs/V0_102_RELEASE_SCOPE.md

24 KiB

Scope v0.102 — Cahier des charges complet

Version cible : v0.102 (X=1, Y=2)
Prérequis : v0.101 taguée et stable
Objectif : Activer les routes « Coming Soon », renforcer le noyau produit, combler les lacunes critiques des modules existants
Dernière mise à jour : 19 février 2026
Effort estimé : 4-6 semaines de développement


1. Principe directeur

v0.102 = déblocage des placeholders + renforcement du cœur produit.

Trois axes :

  1. Débloquer les 4 routes « Coming Soon » (Gear, Live, Queue, Developer)
  2. Renforcer les features existantes les plus utilisées (Player, Playlists, Profils, Auth)
  3. Combler les lacunes qui nuisent à la cohérence produit (feature flags inactifs, UX incomplète)

Règles :

  • Aucune nouvelle route/page majeure (pas de /education, /studio, /nft)
  • Aucune nouvelle dépendance lourde (sauf correctif sécurité)
  • Chaque feature doit correspondre à un item de docs/archive/root-md/veza_full_features_list.md
  • Chaque feature livrée doit avoir : tests, story Storybook, documentation

2. Contexte — État v0.101

2.1 Features opérationnelles (19 groupes)

# Feature Frontend Backend Couverture features list
1 Auth (register, login, JWT, refresh) OK OK 53% du Module 1
2 2FA (TOTP) OK OK Feature 19, 21
3 OAuth (Google, GitHub, Discord) OK OK Features 4-6
4 Profils utilisateur OK OK 51% du Module 2
5 Upload de tracks OK OK 63% du Module 3
6 CRUD Tracks OK OK Complet
7 Playlists (CRUD, collaboration) OK OK 71% du Module 4.3
8 Chat WebSocket OK OK 51% du Module 5
9 Dashboard OK OK Partiel
10 Recherche OK OK 33% du Module 11
11 Social (feed, posts, groups) OK OK 35% du Module 6
12 Administration OK OK 24% du Module 13
13 Marketplace OK OK 28% du Module 7
14 Webhooks OK OK Feature 595
15 Inventory / Gear OK OK 32% du Module 9
16 Live Streaming (métadonnées) OK OK Mock uniquement
17 Analytics OK OK 40% du Module 12
18 Roles OK OK Features 46-53 partiels
19 Notifications OK OK 45% du Module 19

2.2 Routes ex-Coming Soon — v0.102 débloquées

Route Backend Frontend Statut v0.102
/queue CRUD /api/v1/queue + useQueueSync QueueView + @dnd-kit Opérationnel
/developer CRUD /api/v1/developer/api-keys DeveloperDashboardView + CreateAPIKeyModal Opérationnel
/gear CRUD /api/v1/inventory/gear GearView + gearService Opérationnel
/live GET /api/v1/live/streams LiveView + liveService (Go Live: v0.703) Opérationnel

2.3 Feature flags actuels

Flag Valeur v0.101 Action v0.102
TWO_FACTOR_AUTH true Inchangé
PLAYLIST_COLLABORATION true Inchangé
PLAYLIST_SEARCH true Inchangé
PLAYLIST_SHARE true (v0.102) Activé (Lot D)
PLAYLIST_RECOMMENDATIONS true (v0.102) Activé (Lot D)
HLS_STREAMING true Inchangé
ROLE_MANAGEMENT actif Inchangé
NOTIFICATIONS actif Inchangé

2.4 Couverture globale

  • Features implémentées : ~204 / 600 (34%)
  • Cible v0.102 : ~230 / 600 (38%)
  • Delta : +26 features individuelles

3. Roadmap macro — Chemin vers la v1.0

3.1 Schéma de versioning

Format 0.X0Y : X = phase majeure (1-9), Y = itération (1-3).
27 versions de 0.101 à 0.903, puis v1.0.

Phase 1 (Fondation)     : 0.101 -> 0.102 -> 0.103
Phase 2 (Contenu)        : 0.201 -> 0.202 -> 0.203
Phase 3 (Social)         : 0.301 -> 0.302 -> 0.303
Phase 4 (Commerce)       : 0.401 -> 0.402 -> 0.403
Phase 5 (Education/Gear) : 0.501 -> 0.502 -> 0.503
Phase 6 (Admin/Securite) : 0.601 -> 0.602 -> 0.603
Phase 7 (Avance)         : 0.701 -> 0.702 -> 0.703
Phase 8 (Platform)       : 0.801 -> 0.802 -> 0.803
Phase 9 (Polish/Launch)  : 0.901 -> 0.902 -> 0.903
                                                  -> v1.0

3.2 Vision par phase

Phase Versions Focus Modules principaux Features cumulées
1 — Fondation 0.101-0.103 Stabiliser, débloquer, compléter le noyau M1, M2, M3, M4, M14 ~270 / 600
2 — Contenu 0.201-0.203 Recherche avancée, métadonnées, formats M3, M11, M12 ~330 / 600
3 — Social 0.301-0.303 Social complet, chat avancé, présence M5, M6, M19 ~390 / 600
4 — Commerce 0.401-0.403 Marketplace complet, paiements, vendeur M7 ~440 / 600
5 — Education/Gear 0.501-0.503 Formation, gear avancé, cloud M8, M9, M10 ~490 / 600
6 — Admin/Sécu 0.601-0.603 Admin complet, sécurité avancée, UX M13, M14, M20 ~530 / 600
7 — Avancé 0.701-0.703 IA, livestreaming, collaboration M15 ~565 / 600
8 — Platform 0.801-0.803 API publique, intégrations, apps natives M16, M17, M21 ~590 / 600
9 — Polish 0.901-0.903 Gamification, Web3, polish final M18, M15.4 600 / 600

3.3 Positionnement v0.102

v0.102 est la 2e des 27 versions. Elle cible :

  • Déblocage des 4 routes « Coming Soon »
  • +26 features individuelles (de ~204 à ~230)
  • Passage de 34% à 38% de couverture globale
  • Renforcement critique du coeur produit avant d'attaquer les modules secondaires en Phase 2

4. Features IN SCOPE v0.102

4.1 Lot A — Activation complète Gear & Live (priorité haute)

Objectif : Supprimer les toasts « coming soon » sur les actions principales et valider les flows end-to-end.
Effort : S (1-2 jours)
Référence : Module 9 (features 306-320), Module 15.2 (features 471-480)

# Feature Tâche détaillée Backend Frontend Critère de sortie
A1 Gear — Add Connecter le bouton « Add Gear » à un formulaire/modal utilisant gearService.create() Existant Modal à connecter Création enregistrée en base
A2 Gear — Edit S'assurer que GearDetailModal permet édition via gearService.update() Existant A valider Edition fonctionnelle
A3 Gear — Delete Confirmation + suppression via gearService.delete() Existant A valider Suppression fonctionnelle
A4 Gear — Catégories Ajouter filtre par catégorie (synthé, interface, micro, etc.) dans GearView Existant (champ category) Filtre à ajouter Filtrage par catégorie visible
A5 Live — Browse Remplacer le fallback mock par la liste réelle liveService.listStreams() Existant A brancher Affichage des streams depuis l'API
A6 Live — Go Live Conserver le toast « coming soon » ; documenter la limitation dans le composant N/A Toast existant Documentation + pas de régression

Features list v1.0 couvertes : 306 (ajouter), 307 (éditer), 308 (supprimer), 309 (catégories), 320 (recherche inventaire)


4.2 Lot B — Queue persistante (priorité haute)

Objectif : Exposer l'API queue côté backend, synchroniser QueueView avec la base, et ajouter les contrôles manquants.
Effort : M (3-5 jours)
Référence : Module 4.2 (features 126-135)

# Feature Tâche détaillée Backend Frontend Critère de sortie
B1 Queue API — CRUD Routes REST : GET /api/v1/queue, PUT /api/v1/queue, POST /api/v1/queue/items, DELETE /api/v1/queue/items/:id, DELETE /api/v1/queue A créer (handler + service) N/A CRUD conforme au schema DB
B2 Queue — Sync frontend Brancher QueueView sur l'API ; mode dégradé client-only si non authentifié N/A A brancher Persistance entre sessions
B3 Queue — Drag & drop reorder Réorganiser par drag & drop (utiliser @dnd-kit déjà en dépendance) PUT /api/v1/queue (reorder) Composant existant à enrichir Réorganisation sauvegardée
B4 Queue — Clear Bouton « Vider la queue » avec confirmation DELETE /api/v1/queue Bouton + dialog Queue vidée
B5 Queue — Save as playlist Conserver le comportement actuel (déjà fonctionnel) Existant Existant Pas de régression
B6 Queue — Resume Reprendre la queue là où l'utilisateur s'est arrêté (track + position) Persister current_index + position_ms Restaurer au login Reprise automatique

Features list v1.0 couvertes : 126 (queue list), 127 (add), 128 (remove), 129 (reorder), 130 (save as playlist), 131 (clear), 133 (resume)


4.3 Lot C — Developer Portal — API Keys (priorité moyenne)

Objectif : Permettre la création et la gestion de clés API utilisateur, distinctes des clés webhook.
Effort : M (3-5 jours)
Référence : Module 21 (features 586-600)

# Feature Tâche détaillée Backend Frontend Critère de sortie
C1 Modèle api_keys Table : id, user_id, name, prefix (8 chars), hashed_key, scopes (JSON), last_used_at, expires_at, created_at Migration SQL à créer N/A Table créée, migration réversible
C2 API Keys — CRUD Routes : GET /api/v1/developer/api-keys, POST /api/v1/developer/api-keys, DELETE /api/v1/developer/api-keys/:id Service + Handler à créer N/A Génération, liste, révocation
C3 API Keys — Frontend Remplacer « Coming soon » par formulaire création + liste des clés + copie sécurisée N/A DeveloperDashboardView à modifier Clé affichée une seule fois lors de la création
C4 Auth par API key Middleware X-API-Key header ; validation scopes ; rate limiting séparé Middleware à créer N/A Authentification API key fonctionnelle
C5 API Keys — Logs Afficher last_used_at et compteur d'appels dans la liste frontend last_used_at mis à jour par middleware Colonne dans la liste Tracking d'usage visible
C6 API Keys — Scopes Interface de sélection des scopes (read, write, admin) lors de la création Validation scopes Checkboxes dans le formulaire Scopes appliqués et vérifiés

Features list v1.0 couvertes : 588 (auth API keys), 598 (logs API calls), 599 (analytics API usage), 600 (developer dashboard)


4.4 Lot D — Activation feature flags & UX Playlists (priorité moyenne)

Objectif : Activer les feature flags inactifs et compléter les flows playlist.
Effort : S (2-3 jours)
Référence : Module 4.3 (features 136-150)

# Feature Tâche détaillée Backend Frontend Critère de sortie
D1 Playlist Share Activer PLAYLIST_SHARE ; connecter SharePlaylistModal à playlistService.createShareLink() Route existante /playlists/:id/share Modal existant à connecter Partage par lien fonctionnel
D2 Playlist Recommendations Activer PLAYLIST_RECOMMENDATIONS ; connecter la section à playlistService.getRecommendations() Route existante /playlists/recommendations Section UI existante Recommandations affichées
D3 Playlist Export Activer export JSON/CSV ; les routes backend existent déjà Routes existantes (/export/json, /export/csv) Boutons à connecter Export téléchargeable
D4 Playlist Duplicate Activer le bouton « Dupliquer » ; route backend existante Route existante (/duplicate) Bouton à connecter Playlist dupliquée

Features list v1.0 couvertes : 146 (partager), 147 (dupliquer), 149 (exporter)


4.5 Lot E — Renforcement Social (priorité moyenne)

Objectif : Remplacer les toasts « coming soon » par des appels API réels sur les interactions sociales.
Effort : S (2-3 jours)
Référence : Module 6 (features 186-225)

# Feature Tâche détaillée Backend Frontend Critère de sortie
E1 Social — Like post Connecter le bouton like à POST /api/v1/social/like Route existante Bouton à connecter Like fonctionnel, compteur mis à jour
E2 Social — Comment post Connecter le formulaire commentaire à POST /api/v1/social/comments Route existante Formulaire à connecter Commentaire ajouté et visible
E3 Social — Trending Connecter la section trending de SocialViewTrending à l'API A évaluer Section UI existante v0.102 : limitation documentée, tags statiques conservés ; report v0.103 (GET /social/trending)
E4 Profile — Follow count Afficher les compteurs followers/following sur le profil public Routes existantes Compteurs à afficher Compteurs visibles et à jour
E5 Profile — Badges Afficher les badges/rôles sur le profil public (données RBAC existantes) Données existantes Composant Badge à ajouter Badges visibles sur profil

Features list v1.0 couvertes : 205 (liker post), 206 (commenter post), 214 (trending), 188-189 (followers/following count), 45 (badges)


4.6 Lot F — Renforcement Player & Streaming (priorité basse)

Objectif : Ajouter les contrôles player manquants à faible effort.
Effort : S (1-2 jours)
Référence : Module 4.1 (features 106-125)

# Feature Tâche détaillée Backend Frontend Critère de sortie
F1 Playback speed Sélecteur de vitesse (0.5x, 0.75x, 1x, 1.25x, 1.5x, 2x) dans le player N/A Composant à ajouter Vitesse ajustable
F2 Media Session API Contrôles OS (titre, artwork, play/pause/next/prev dans la barre système) N/A Hook à créer Contrôles OS fonctionnels
F3 Waveform preview Waveform basique dans la barre de progression (données mock ou générées client-side) N/A Canvas/SVG dans ProgressBar Waveform visible

Features list v1.0 couvertes : 114 (playback speed), 123 (media session API), 117 (waveform)


5. Récapitulatif des features v0.102

5.1 Par lot

Lot Nom Priorité Effort Features Items v1.0 couverts
A Gear & Live Haute S (1-2j) 6 306-309, 320
B Queue persistante Haute M (3-5j) 6 126-131, 133
C Developer API Keys Moyenne M (3-5j) 6 588, 598-600
D Feature flags & Playlists Moyenne S (2-3j) 4 146-147, 149
E Renforcement Social Moyenne S (2-3j) 5 45, 188-189, 205-206, 214
F Player & Streaming Basse S (1-2j) 3 114, 117, 123
TOTAL 12-20j 30 26 items v1.0

5.2 Par service impacté

Service Lots impactés Nature des changements
Backend Go B, C Nouveaux handlers, services, migration SQL (queue, api_keys)
Frontend React A, B, C, D, E, F Connexion composants existants, nouveaux composants (scopes, waveform)
Chat Server - Aucun changement
Stream Server - Aucun changement
Base de données B, C 2 nouvelles migrations (queue routes, api_keys table)

5.3 Nouveaux endpoints API

Méthode Route Lot Description
GET /api/v1/queue B Récupérer la queue de l'utilisateur
PUT /api/v1/queue B Mettre à jour l'ordre de la queue
POST /api/v1/queue/items B Ajouter un item à la queue
DELETE /api/v1/queue/items/:id B Retirer un item de la queue
DELETE /api/v1/queue B Vider la queue
GET /api/v1/developer/api-keys C Lister les clés API
POST /api/v1/developer/api-keys C Créer une clé API
DELETE /api/v1/developer/api-keys/:id C Révoquer une clé API

6. Features HORS SCOPE v0.102

Feature Raison Version cible
Live streaming vidéo (flux réel) Périmètre trop large ; reste mock/métadonnées v0.703
Seller dashboard complet Shell vide ; besoin marketplace mature v0.403
Paiement Hyperswitch réel Intégration complexe ; besoin du seller dashboard v0.402
PWA (service worker, install) Report ; focus web d'abord v0.803
WebRTC Non prioritaire ; HLS suffit v0.703
Nouvelles routes majeures Pas de /education, /studio, /nft v0.5xx+
Nouvelles dépendances Sauf correctif sécurité -
OAuth Spotify Pas de besoin immédiat v0.103
2FA SMS Infrastructure SMS requise v0.103
Passkeys/WebAuthn Complexité élevée v0.103
Upload depuis cloud (Dropbox, Drive) Intégration tierce v0.502
Crossfade, gapless playback Player avancé v0.103
Chat reactions, threads, mentions Chat avancé v0.302
Gamification (XP, badges, leaderboard) Module entier v0.901
AI features (mastering, stem separation) Module entier v0.701

7. Critères de stabilité v0.102

7.1 Build & compilation

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

7.2 Tests

  • go test ./... (backend) — 0 échec
  • npm test -- --run (frontend) — 0 échec
  • npm run test:storybook — 0 erreur console/réseau
  • E2E : auth, smoke, playlists, search, queue — 0 échec
  • Nouveaux tests : queue CRUD, API keys CRUD, playlist share flow

7.3 Qualité

  • npm run lint — 0 erreur
  • Pas de régression sur les flows v0.101
  • Stories mises à jour pour les composants modifiés (Loading, Error, Empty)
  • Pas de valeurs Tailwind arbitraires ajoutées (vérifier avec node scripts/report-arbitrary-values.mjs)
  • Composants > 300 lignes découpés en sous-composants

7.4 Sécurité

  • API keys hashées en base (jamais stockées en clair)
  • Clé API affichée une seule fois à la création
  • Rate limiting sur les endpoints API keys
  • Scopes vérifiés côté middleware
  • Aucun secret commité

7.5 Documentation

  • FEATURE_STATUS.md mis à jour avec les nouvelles features
  • V0_102_RELEASE_SCOPE.md reflète l'état final (checklist cochée)
  • Changelog ou release notes pour v0.102
  • MSW handlers ajoutés pour les nouveaux endpoints (queue, api-keys)
  • Stories Storybook pour les composants modifiés (QueueView Loading, etc.)

8. Services requis (inchangés)

Service Obligatoire Note
Backend API (Go) Oui Coeur — nouveaux handlers queue + api-keys
PostgreSQL Oui Coeur — 2 nouvelles migrations
Redis Oui Sessions, rate limit, CSRF
Frontend (Vite) Oui Coeur — connexions UI
Chat Server (Rust) Oui Inchangé
Stream Server (Rust) Oui Inchangé
RabbitMQ Oui Evenements async
ClamAV Oui Scan virus uploads

9. Dépendances et ordre de livraison

9.1 Graphe de dépendances

Lot A (Gear/Live) -----------------------------------------------+
                                                                  |
Lot B (Queue) ---- [backend d'abord] ----------------------------+
                                                                  +-- Lot D (Feature flags)
Lot C (API Keys) -- [backend d'abord] ---------------------------+        |
                                                                  |        +-- Validation finale
Lot E (Social) --------------------------------------------------+
                                                                  |
Lot F (Player) --------------------------------------------------+

9.2 Ordre recommandé

Semaine Lots Activités
S1 A + B (backend) Gear UI, Live browse, Queue API (Go handler + service + migration)
S2 B (frontend) + C (backend) Queue sync frontend, API Keys model + handler + migration
S3 C (frontend) + D Developer Dashboard UI, activation feature flags playlists
S4 E + F Social like/comment, profil badges, player speed/waveform/media session
S5 Stabilisation Tests, stories, documentation, bug fixes, validation E2E

9.3 Livrables par semaine

  • S1 : Gear CRUD fonctionnel, Live browse réel, Queue API disponible
  • S2 : Queue persistante côté frontend, API Keys backend prêt
  • S3 : Developer Dashboard opérationnel, Playlist share/export/duplicate activés
  • S4 : Social interactions réelles, Player enrichi
  • S5 : v0.102-rc1, tests complets, tag v0.102

10. Définition de « done » pour une feature v0.102

  1. Happy path fonctionne sans erreur
  2. Etats Loading, Error, Empty gérés dans le composant
  3. Tests : au moins 1 test (unit ou E2E) pour le flow principal
  4. Story Storybook à jour si composant modifié (états : Default, Loading, Error, Empty)
  5. MSW handler ajouté si nouvel endpoint
  6. Documentation : FEATURE_STATUS.md et scope mis à jour
  7. Code review : PR conforme aux conventions (commit format, scope check)

11. Processus de validation

11.1 Avant chaque PR

  • Le changement est aligné avec un item du scope v0.102 (ce document)
  • Pas de nouvelle route/page non listée ici
  • Les tests passent (go test, npm test, npm run lint)
  • La story Storybook est à jour
  • Le MSW handler existe pour les nouveaux endpoints

11.2 Format de commit

feat(queue): add persistent queue API with CRUD operations
feat(developer): implement API key generation and management
feat(playlists): activate share feature flag and connect modal
fix(social): connect like button to actual API endpoint
refactor(player): add playback speed selector
test(queue): add unit tests for queue service
docs(scope): update FEATURE_STATUS.md for v0.102

11.3 Branche

  • Branche de développement : release/v0.102
  • Feature branches : feat/v0.102-queue-api, feat/v0.102-api-keys, etc.
  • Merge vers release/v0.102 puis vers main au tag

12. Préparation v0.103 (aperçu)

Après le tag v0.102, la version v0.103 (X=1, Y=3) clôturera la Phase 1 (Fondation) avec :

Thème Features candidates Modules
Auth avancée OAuth Spotify (#7), 2FA SMS (#20), Passkeys (#22), historique connexions (#26) M1
Profils complets Bannière profil (#32), liens sociaux (#44), profil privé (#42) M2
Player avancé Crossfade (#115), gapless (#116), PiP (#121) M4.1
Queue avancée Queue collaborative (#134), autoplay/recommandations (#135) M4.2
Métadonnées enrichies BPM (#95), key (#96), lyrics (#102), tags auto (#105) M3.3
Seller dashboard Shell fonctionnel avec stats de ventes basiques M7.4

Références