veza/docs/FEATURE_STATUS.md
senke 2ea5a60dea
Some checks failed
Veza CI / Rust (Stream Server) (push) Successful in 20m54s
E2E Playwright / e2e (full) (push) Failing after 21m0s
Security Scan / Secret Scanning (gitleaks) (push) Successful in 56s
Veza CI / Backend (Go) (push) Failing after 24m45s
Veza CI / Frontend (Web) (push) Successful in 34m57s
Veza CI / Notify on failure (push) Successful in 5s
docs: update PROJECT_STATE + FEATURE_STATUS post-v1.0.8
Both files were dated v1.0.4 (2026-04-15) — three releases out of
date. Surgical updates rather than a rewrite, since the underlying
feature inventory is mostly unchanged.

PROJECT_STATE.md
- §1 "Version actuelle" : tag v1.0.4 → v1.0.8 (2026-04-26). Phase
  description + next-version hint refreshed (v1.0.9 with item G +
  WebRTC TURN as cibles).
- §2 "Ce qui est livré" : prepended v1.0.8, v1.0.7, v1.0.5–v1.0.6.2
  consolidated entries (with batch labels A/B/B9/C and the
  money-movement plan items A–F). The v0.x sections kept verbatim
  for archive — they document phases that pre-date the launch.
- §3 "Prochaines étapes" : replaced the v0.701 retry/dashboard plan
  (long since shipped) with the v1.0.9 candidate list, ordered by
  effort × impact. Item G subscription pending_payment + WebRTC TURN
  are the two cibles. C6 flake stab + wrappers consolidation +
  multipart S3 + register UX + email tokens header migration listed
  alongside.

FEATURE_STATUS.md
- Header date refreshed to 2026-04-26 / v1.0.8 with the chantier
  summary.
- "Upload de tracks" row : added the v1.0.8 MinIO/S3 wiring detail
  (TRACK_STORAGE_BACKEND flag, chunked upload assembly, signed-URL
  redirect 302).
- "HLS Streaming" feature-flag row : flipped default from `true`
  (v0.101 era) to `false` (v1.0.7 default) — referencing the
  fallback /tracks/:id/stream Range cache bypass landed in
  v1.0.7-rc1 commit `b875efcff`.
- "Appels WebRTC" limitation row : note refreshed — signaling OK,
  NAT traversal still HS without STUN/TURN per FUNCTIONAL_AUDIT 🟡 #1,
  cible bumped from v1.1 to v1.0.9 (matches the v1.0.9 plan above).

The v0.x section in PROJECT_STATE.md (Phases 1–5) intentionally left
as-is — it serves as historical record of what shipped before
launch. Future agents reading the file should focus on §1, §2 v1.0.x,
and §3 for current state.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 01:56:44 +02:00

26 KiB
Raw Permalink Blame History

Statut des fonctionnalités — Veza

Dernière mise à jour : 2026-04-26 — v1.0.8 (MinIO end-to-end, OpenAPI orval = single source, E2E Playwright workflow, queue + auth password annotations, authService 9/9).

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. v1.0.8 : MinIO/S3 backend wired (TRACK_STORAGE_BACKEND=s3 flag), chunked upload assemblé puis stream single-shot vers S3, 302 redirect signed URL pour stream/download.
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: false (v1.0.7 default) Off par défaut depuis v1.0.7 (FUNCTIONAL_AUDIT §4 #5 — fallback /tracks/:id/stream Range cache bypass v1.0.7-rc1 commit b875efcff). Backend serving routes opérationnel quand activé (master.m3u8, quality playlists, segments). Frontend ABR player wired.
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 Signaling ; NAT traversal HS sans STUN/TURN (FUNCTIONAL_AUDIT 🟡 #1 — toujours ouvert). Cible v1.0.9 — coturn déploiement à prévoir. v1.0.9 (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 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 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 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 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 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 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 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 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 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 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 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 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 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.