veza/docs/FEATURE_STATUS.md

293 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Statut des fonctionnalités — Veza
**Dernière mise à jour** : mars 2026 — v0.971 (Phantom: gamification supprimé, WebRTC Beta)
Ce document décrit le statut réel des fonctionnalités par rapport au code.
## Fonctionnalités opérationnelles (19)
| Feature | Frontend | Backend | Notes |
|---------|----------|---------|-------|
| Auth (register, login, JWT, refresh) | Oui | Oui | Complet |
| 2FA (TOTP) | Oui | Oui | Complet |
| OAuth (Google, GitHub, Discord, Spotify) | Oui | Oui | Opérationnel (v0.601) — tous les fournisseurs |
| Profils utilisateur | Oui | Oui | Bannière, liens sociaux, profil privé (v0.103 B1-B3) |
| Upload de tracks | Oui | Oui | Complet |
| CRUD Tracks | Oui | Oui | Complet — BPM, musical_key, lyrics, tags (v0.201 Lot E) |
| Playlists (CRUD, collaboration) | Oui | Oui | Complet |
| Chat WebSocket | Oui | Oui | Opérationnel — réécrit en Go (v0.502), intégré dans backend API |
| Dashboard | Oui | Oui | GET /api/v1/dashboard |
| Recherche | Oui | Oui | GET /search unifié, GET /tracks/search. v0.202 : musical_key, tri pertinence. v0.203 : pg_trgm fuzzy, AND/OR/NOT, tooltip aide |
| Social (feed, posts, groups, follows, blocks, trending) | Oui | Oui | v0.301 : feed API, explore. v0.302 : groupes avancés (request join, invite, rôles, mes groupes) |
| Administration | Oui | Oui | Complet. v0.803 : Modération (reports), Maintenance mode, Annonces, Feature flags DB |
| Marketplace | Oui | Oui | Complet (Hyperswitch). v0.603 : Transfer auto Stripe Connect. v0.701 : Retry auto failed transfers, Admin Dashboard. v0.702 : Route product detail, tests reviews/invoices/refunds |
| Webhooks | Oui | Oui | Complet |
| Inventory / Gear | Oui | Oui | GET/POST/PUT/DELETE /api/v1/inventory/gear. v0.802 : documents CRUD, repairs CRUD, warranty notifier |
| Live Streaming (métadonnées) | Oui | Oui | GET /api/v1/live/streams — stream vidéo via Stream Server. v0.703 : Go Live, stream key, chat WebSocket, viewer count |
| Analytics | Oui | Oui | Routes /api/v1/analytics/*. v0.202 : creator stats/charts/export (Lot H) |
| Roles | Oui | Oui | Assign, revoke — flag ROLE_MANAGEMENT |
| Notifications | Oui | Oui | Création auto follow/like/comment. v0.302 : Web Push, préférences |
## Fonctionnalités fantômes (UI sans backend)
| Feature | Localisation | Statut |
|---------|-------------|--------|
| **Studio** (Cloud File Browser) | Supprimé | Dossier supprimé |
| **Education** | Supprimé | Dossier supprimé |
## Abandonné v1.0 (reporté versions futures)
| Feature | Version cible |
|---------|---------------|
| **Gamification** (achievements, leaderboard, XP) | v1.3 — supprimé v0.971 (phantom) |
## Fonctionnalités désactivées (feature flags)
| Feature | Flag | Backend |
|---------|------|---------|
| HLS Streaming | `HLS_STREAMING: true` (v0.101) | Opérationnel (v0.503) — Backend serving routes (master.m3u8, quality playlists, segments), frontend ABR player, HLS_STREAMING feature flag. |
| Role Management | `ROLE_MANAGEMENT` | Opérationnel si activé |
| Playlist Share | `PLAYLIST_SHARE: true` (v0.102) | Opérationnel |
| Playlist Recommendations | `PLAYLIST_RECOMMENDATIONS: true` (v0.102) | Opérationnel |
## Limitations connues (report versions futures)
| Feature | Limitation | Version cible |
|---------|------------|--------------|
| **Go Live** (streaming vidéo) | Livré v0.703 — page /live/go-live, stream key, OBS instructions | — |
| **Appels WebRTC** | Beta — fonctionne mieux sur le même réseau local (TURN/STUN v1.1) | v1.1 (flag WEBRTC_CALLS) |
| **2FA SMS** | Option « Envoyer par SMS » pendant la vérification 2FA — requiert infra Twilio + users.phone_number | v0.104 |
| **Passkeys / WebAuthn** | Login sans mot de passe — requiert go-webauthn, table webauthn_credentials, frontend navigator.credentials | v0.104 |
## Livré en v0.202
| Lot | Feature |
|-----|---------|
| G | Recherche avancée (musical_key, tri pertinence, autocomplete, facettes type, historique) |
| H | Analytics créateur (stats, graphiques, taux complétion, export CSV/JSON) |
| F | Seller dashboard (GET /sell/stats, liste produits marketplace) |
| C | Player (crossfade, gapless preload, PiP) |
| D | Autoplay (GET /tracks/recommendations, section « À écouter ensuite » dans PlayerQueue) |
## Livré en v0.203
| Lot | Feature |
|-----|---------|
| L | Social Trending : GET /social/trending, cache Redis, SocialViewTrending connecté |
| K | Recherche enrichie : pg_trgm fuzzy, opérateurs AND/OR/NOT/"phrase exacte", tooltip aide |
| D1 | Queue collaborative : sessions partagées, bouton Partager, polling sync, MSW handlers |
Voir [V0_203_RELEASE_SCOPE.md](V0_203_RELEASE_SCOPE.md) pour le détail.
## Livré en v0.301 (Phase 3 Social)
| Lot | Feature |
|-----|---------|
| P0 | Chat Server : protocole typing aligné, auth WebSocket documenté |
| C1 | Chat avancé : typing indicators, read receipts, delivered status |
| P1 | Présence : migration 088, GET /users/:id/presence, PresenceBadge, last_seen sur requêtes auth |
| S1 | Social enrichi : feed connecté API, enrichi actor/track, pagination cursor, explore tab, filtres all/following/groups |
Voir [V0_301_RELEASE_SCOPE.md](archive/V0_301_RELEASE_SCOPE.md) pour le détail.
## Livré en v0.302 (Phase 3 Social — suite)
| Lot | Feature |
|-----|---------|
| S2 | Groupes avancés : demander à rejoindre (privé), inviter membres, rôles assign/revoke, feed groupes, mes groupes |
| N1 | Notifications push : Web Push subscription, envoi sur follow/like/comment/message, préférences, badge titre |
| P2 | Présence enrichie : rich presence (track en cours), mode invisible, PUT /users/me/presence |
## Livré en v0.303
| Lot | Feature |
|-----|---------|
| C2 | Chat appels : WebRTC audio 1-to-1, signalisation via WebSocket (CallOffer, CallAnswer, ICECandidate, CallHangup, CallReject), CallButton, IncomingCallModal, ActiveCallBar |
## Livré en v0.401 (Phase 4 Commerce)
| Lot | Feature |
|-----|---------|
| M1 | Produits & Catalogue : BPM, musical_key, category, previews, images, filtres MarketplaceHome, rich text description |
| M2 | Licences & Droits : product_licenses, types/conditions, GET /licenses/mine, LicenceCard/LicenceDetailsModal, LicensesView |
| M3 | Seller dashboard enrichi : evolution chart, top products, real sales, conversion N/A |
Voir [V0_401_RELEASE_SCOPE.md](archive/V0_401_RELEASE_SCOPE.md) pour le détail.
## Livré en v0.402 (Phase 4 Commerce — checkout & codes promo)
| Lot | Feature |
|-----|---------|
| P1 | Checkout Hyperswitch production-ready : return URL avec order_id, CheckoutSuccessView/CheckoutErrorView, webhook cancelled, CheckoutPaymentForm dans Cart |
| P2 | Codes promo / réductions : promo_codes, ValidatePromoCode, GET /commerce/promo/:code, CreateOrder/Checkout avec promo_code, PromoCodeModal connecté, OrderSummary dans Cart |
Voir [V0_402_RELEASE_SCOPE.md](V0_402_RELEASE_SCOPE.md) pour le détail.
## Livré en v0.502 (Phase 5 — Chat Server Rewrite)
| Lot | Feature |
|-----|---------|
| CH | Chat Server Rust → Go : WebSocket intégré dans backend API (`/api/v1/ws`), 39 types messages (19 in + 20 out), Hub/Client goroutines, PermissionService, RateLimiter in-memory, ChatPubSubService Redis, 4 migrations (109-112), 15 tests unitaires, E2E tests |
## Livré en v0.503 (Phase 5 — HLS E2E + Chat Hardening + Cleanup)
| Lot | Feature |
|-----|---------|
| SS1 | HLS Streaming E2E (backend routes + frontend ABR player) |
| CH1 | Chat Redis rate limiter (sliding window + in-memory fallback) |
| CH1 | Chat persistent presence (Redis-backed, 2min TTL) |
| CH1 | PostgreSQL full-text search on messages (tsvector + GIN index) |
| CL1 | Cleanup: veza-chat-server directory and all operational references removed |
Voir [V0_503_RELEASE_SCOPE.md](V0_503_RELEASE_SCOPE.md) pour le détail.
## Livré en v0.601 (Phase 6 — Production Readiness & Commerce)
| Lot | Feature |
|-----|---------|
| INF1 | Blue-green deployment (HAProxy), Grafana dashboards (API, Chat, Commerce), Alertmanager, Hyperswitch LIVE_MODE |
| AUTH1 | OAuth Discord, OAuth Spotify (opérationnels) |
| CLN1 | Découpage handler.go en 4 sous-handlers (track_crud, track_social, track_search, track_analytics), interceptors.ts en modules (utils, request, response) |
| QA1 | Tests OAuth Discord/Spotify, MIGRATIONS.md, audit console.log |
Voir [V0_601_RELEASE_SCOPE.md](V0_601_RELEASE_SCOPE.md) pour le détail.
## Livré en v0.602 (Phase 6+ Payout, Dette Technique & Tests E2E)
| Lot | Feature |
|-----|---------|
| CLN2 | Split interceptors : auth.ts, error.ts extraits, interceptors.ts facade (< 30 LOC) |
| P3 | Payout vendeurs : Stripe Connect onboarding, balance, seller_stripe_accounts |
| INF2 | Grafana dashboards enrichis : api-overview (p50, top endpoints, 4xx), chat-overview (WS connections, messages/s), commerce-overview (orders, refunds, payout) |
| QA2 | E2E commerce backend : flow product -> order -> review -> invoice, SMOKE_TEST_V0602.md |
Voir [V0_602_RELEASE_SCOPE.md](archive/V0_602_RELEASE_SCOPE.md) pour le détail.
## Livré en v0.603 (Phase 6+ Transfer automatique, Commission & Stabilisation)
| Lot | Feature |
|-----|---------|
| T1 | Transfer automatique Stripe Connect après paiement réussi (webhook Hyperswitch) |
| T1 | Commission plateforme configurable (PLATFORM_FEE_RATE), migration 115 seller_transfers |
| T1 | GET /sell/transfers, carte Transfer History dans SellerDashboard |
| DT1 | Archivage docs pre-v0.501 |
| QA3 | Tests unitaires transfer (success, multi-seller, transfer-fails) |
Voir [V0_603_RELEASE_SCOPE.md](archive/V0_603_RELEASE_SCOPE.md) pour le détail.
## Livré en v0.701 (Phase 7 — Retry, Admin Dashboard, Deep Health)
| Lot | Feature |
|-----|---------|
| R1 | Transfer Retry Worker : retry automatique des transferts failed (backoff exponentiel, max 3) |
| R1 | Migration 116 : retry_count, next_retry_at sur seller_transfers |
| A1 | Admin Transfers Dashboard : GET /admin/transfers, POST /admin/transfers/:id/retry |
| A1 | AdminTransfersView : tableau avec filtres, pagination, bouton Retry |
| H1 | Deep Health : GET /health/deep (DB, Redis, S3, disk, config summary) |
| D1 | docs/API_REFERENCE.md : documentation API avec exemples curl |
Voir [V0_701_RELEASE_SCOPE.md](archive/V0_701_RELEASE_SCOPE.md) pour le détail.
## Livré en v0.702 (Phase 7 — Reviews, Factures, Remboursements & Product Detail)
| Lot | Feature |
|-----|---------|
| W1 | Route /marketplace/products/:id avec ProductDetailPage (lazy) |
| M1 | MSW handlers : reviews (GET list, POST create), invoice download |
| T1 | Tests unitaires : reviews (6), invoices (4), refunds (6) |
| D1 | API_REFERENCE.md : sections Reviews, Invoices, Refunds |
Voir [V0_702_RELEASE_SCOPE.md](archive/V0_702_RELEASE_SCOPE.md) pour le détail.
## Livré en v0.703 (Phase 7 — Go Live & Streaming Complet)
| Lot | Feature |
|-----|---------|
| GL1 | Go Live : page /live/go-live, stream key, OBS/Streamlabs instructions |
| GL1 | Endpoints : GET/POST /live/streams/me/key, GET /live/streams/me, PUT /live/streams/:id |
| GL3 | Live Chat WebSocket : LiveViewChat connecté, stream_id comme room |
| GL3 | Viewer count temps réel : polling dans LiveViewPlayer |
| GL4 | Media Session : seekbackward/seekforward (10s) |
Voir [V0_703_RELEASE_SCOPE.md](V0_703_RELEASE_SCOPE.md) pour le détail.
## Livré en v0.801 (Phase 8 — UX/UI Polish, Accessibilité & PWA)
| Lot | Feature |
|-----|---------|
| UX1 | Thèmes avancés : high contrast, compact/comfortable density, accent color, font size 1420px |
| UX1 | User preferences : migration 118, PUT /users/me/preferences |
| UX2 | Accessibilité : ARIA labels, aria-haspopup menu, focus-visible ring, useReducedMotion |
| UX3 | PWA : service worker re-enabled (safe caching), Install App in Settings |
| UX3 | Background playback : useWakeLock for mobile |
## Livré en v0.802 (Phase 8 — Cloud avancé, Gear, Tags)
| Lot | Feature |
|-----|---------|
| C2 | Cloud versioning : create version, list versions, restore |
| C2 | Cloud sharing : create share link, get shared file (public) |
| C3 | GDPR export : POST /users/me/export (async ZIP, notification) |
| C3 | Cloud backup : cron 24h, copie S3 vers prefix backup |
| U1 | Batch upload : BatchUploader, queue parallèle (max 3) |
| T1 | Tags suggest : GET /tags/suggest?q=... (autocomplete) |
| T1 | Formats audio : audio/aiff, audio/x-aiff |
| G2 | Gear documents : CRUD (upload PDF, list, delete) |
| G2 | Gear repairs : CRUD (repair history) |
| G2 | Gear warranty : warranty_start, warranty_notes, notifier 24h |
## Livré en v0.803 (Phase 8 — Sécurité, Compliance & Outillage Dev)
| Lot | Feature |
|-----|---------|
| SEC1 | Security headers : CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy |
| SEC1 | DDoS rate limiting : global 1000 req/s, per-IP 100 req/s (Redis sliding window 1s) |
| SEC2 | Audit : middleware auto-log POST/PUT/DELETE, migration audit_logs, GET /admin/audit/logs |
| SEC2 | CCPA : Sec-GPC header, POST /users/me/privacy/opt-out |
| SEC2 | Account deletion : DELETE /users/me, anonymisation, S3 cleanup, session revocation |
| DEV1 | OpenAPI/Swagger : GET /swagger/*, annotations handlers |
| DEV1 | API keys : POST/GET/DELETE /developer/api-keys, auth via X-API-Key header |
| ADM1 | Modération : reports CRUD, GET /admin/reports, POST /admin/reports/:id/resolve (dismiss, warn, ban) |
| ADM1 | Maintenance mode : middleware 503, PUT/GET /admin/maintenance |
| ADM1 | Annonces : CRUD admin, GET /announcements/active (public) |
| ADM1 | Feature flags : DB persistence, GET/PUT /admin/feature-flags |
| FE1 | AdminSettingsView (onglet SETTINGS) : maintenance, feature flags, annonces |
| FE1 | AdminModerationView : actions dismiss/warn/ban alignées backend |
| FE1 | AnnouncementBanner global, AccountSettingsDeleteCard (type DELETE to confirm) |
Voir [V0_803_RELEASE_SCOPE.md](V0_803_RELEASE_SCOPE.md) pour le détail.
## Prévu en v0.403 (Phase 4 Commerce — suite)
| Lot | Feature |
|-----|---------|
| P3 | Payout vendeurs : Stripe Connect onboarding, balance, transferts |
| R1 | Reviews produits : product_reviews, notation, commentaires, note moyenne |
| F1 | Factures : génération PDF par commande, téléchargement |
| R2 | Remboursements : initiation refund, webhook, révocation licence |
Voir [V0_403_RELEASE_SCOPE.md](V0_403_RELEASE_SCOPE.md) pour le détail.
---
## Projets abandonnés
| Projet | Statut |
|--------|--------|
| **veza-mobile** | Abandonné—35+ erreurs critiques, non fonctionnel |
| **packages/design-system** | Sous-utilisé—seul le CSS importé, pas les composants |
---
## Erratum v0.404
Les corrections suivantes ont été apportées lors de l'audit de stabilisation v0.404 :
- **OAuth Discord/Spotify** : indiqués auparavant comme opérationnels ; en réalité non implémentés.
- **HLS Streaming** : indiqué auparavant comme opérationnel ; en réalité en intégration (v0.404).
- **Chat** : indiqué auparavant comme complet ; statut corrigé en partiel (requiert chat server démarré).
## Erratum v0.502
- **Chat WebSocket** : corrigé de "Partiel" à "Opérationnel" — réécrit en Go, intégré dans le backend API (v0.502). Ne dépend plus d'un chat server séparé.
- **Chat Server Rust** : marqué comme obsolète. Remplacé par l'implémentation Go. Dossier à archiver en v0.503.