senke
020ebd9272
docs: update VEZA_VERSIONS_ROADMAP [v0.11.1 DONE]
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:14:39 +01:00
senke
b77e067d16
feat(v0.11.1): F396-F399 frontend advanced analytics components
...
- AnalyticsViewHeatmap: track listening heatmap visualization (F396)
- AnalyticsViewComparison: period comparison with % changes (F397)
- AnalyticsViewMarketplace: product conversion rates and revenue (F398)
- AnalyticsViewAlerts: opt-in metric alerts with CRUD (F399)
- Updated analytics service with new API methods
- Extended tab navigation with 3 new tabs
- All components have ARIA labels and keyboard navigation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:13:13 +01:00
senke
c756cb9e65
feat(v0.11.1): F396-F399 advanced analytics service, handler and routes
...
- F396: Track listening heatmap (segment-level aggregated data)
- F397: Period comparison (week/month/quarter with % changes)
- F398: Marketplace analytics (product views, conversion rates, revenue)
- F399: Metric alerts (opt-in thresholds, preferences, CRUD)
- Unit tests for service (percent change calculations) and handler (auth, validation)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:12:26 +01:00
senke
80d54527b9
feat(v0.11.1): F396-F399 database migrations for advanced analytics
...
Add tables: track_segment_stats (heatmap), product_views (marketplace
conversion), metric_alerts, metric_alert_preferences.
Add segment_positions JSONB column to playback_analytics.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:12:01 +01:00
senke
217ba95796
docs: update VEZA_VERSIONS_ROADMAP [v0.11.0 DONE]
...
- Mark v0.11.0 Analytics Créateur as ✅ DONE (2026-03-10)
- Check all F381-F385 tasks and acceptance criteria
- Fix tracking table: v0.9.8 and v0.10.0 now ✅ DONE (were inconsistent)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 16:39:20 +01:00
senke
90c1b0f061
feat(v0.11.0): F381-F385 frontend creator analytics components
...
Add new analytics tabs and components:
- AnalyticsViewSales: revenue, sales history, top selling tracks (F383)
- AnalyticsViewAudience: aggregated audience profile with privacy (F384)
- AnalyticsViewGeographic: geographic play distribution (F381)
- Updated analyticsService with all new API endpoints
- Updated AnalyticsView with tab navigation (overview/sales/audience/geographic)
- Discovery sources integration into Origins component
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 16:30:59 +01:00
senke
8b6f0bb430
feat(v0.11.0): F381-F385 creator analytics handler and routes
...
Add CreatorAnalyticsHandler with endpoints:
- GET /api/v1/creator/analytics/dashboard (F381)
- GET /api/v1/creator/analytics/plays (F382)
- GET /api/v1/creator/analytics/sales (F383)
- GET /api/v1/creator/analytics/discovery (F381)
- GET /api/v1/creator/analytics/geographic (F381)
- GET /api/v1/creator/analytics/audience (F384)
- GET /api/v1/creator/analytics/live/:streamId (F385)
- GET /api/v1/creator/analytics/tracks (F381)
- GET /api/v1/creator/analytics/export (F383)
All endpoints require authentication and only return data for the authenticated creator.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 16:28:22 +01:00
senke
41a447224a
feat(v0.11.0): F381-F385 creator analytics service
...
Implement CreatorAnalyticsService with:
- GetCreatorDashboard: aggregated plays, listeners, revenue (F381)
- GetPlayEvolution: temporal data by day/week/month (F382)
- GetSalesSummary: revenue and sales history (F383)
- GetDiscoverySources: how listeners find tracks (F381)
- GetGeographicBreakdown: anonymized geographic data (F381)
- GetAudienceProfile: aggregated audience demographics, min 10 users (F384)
- GetLiveStreamMetrics: real-time viewer count (F385)
- GetPerTrackStats: per-track analytics with pagination
All data is private to the creator, never exposed publicly.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 16:25:30 +01:00
senke
b955a3c0b4
feat(v0.11.0): F381-F385 database migrations and models for creator analytics
...
Add daily_track_stats, geographic_play_stats, track_discovery_sources tables.
Add source and country_code columns to track_plays.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 16:21:01 +01:00
senke
19fec9e40a
feat(gdpr): v0.10.8 portabilité données - export ZIP async, suppression compte, hard delete cron
...
Backend API CI / test-integration (push) Failing after 0s
Frontend CI / test (push) Failing after 0s
Storybook Audit / Build & audit Storybook (push) Failing after 0s
Backend API CI / test-unit (push) Failing after 0s
- Export: table data_exports, POST /me/export (202), GET /me/exports, messages+playback_history
- Notification email quand ZIP prêt, rate limit 3/jour
- Suppression: keep_public_tracks, anonymisation PII complète (users, user_profiles)
- HardDeleteWorker: final anonymization après 30 jours
- Frontend: POST export, checkbox keep_public_tracks
- MSW handlers pour Storybook
2026-03-10 13:57:04 +01:00
senke
3fac96e149
test(v0.10.7): Add MSW handlers for co-listening sessions
2026-03-10 13:35:44 +01:00
senke
871a0f2a05
feat(v0.10.7): Collaboration Temps Réel F481-F483
...
Backend API CI / test-integration (push) Failing after 0s
Frontend CI / test (push) Failing after 0s
Storybook Audit / Build & audit Storybook (push) Failing after 0s
Backend API CI / test-unit (push) Failing after 0s
- F481: Co-listening sessions (WebSocket sync, ListenTogether page)
- F482: Stem sharing (upload/list/download wav,aiff,flac)
- F483: Collaborative rooms (type collaborative, max 10, invite-only)
- Roadmap: v0.10.7 → DONE
2026-03-10 13:34:16 +01:00
senke
eb2862092d
feat(v0.10.6): Livestreaming basique F471-F476
...
Backend API CI / test-unit (push) Failing after 0s
Backend API CI / test-integration (push) Failing after 0s
Frontend CI / test (push) Failing after 0s
Storybook Audit / Build & audit Storybook (push) Failing after 0s
- Backend: callbacks on_publish/on_publish_done, UpdateStreamURL, GetByStreamKey
- Nginx-RTMP: config infra, docker-compose service (profil live)
- Frontend: stream_url dans LiveStream, HLS.js dans LiveViewPlayer, état Stream terminé
- Chat: rate limit send_live_message 1 msg/3s pour rooms live_streams
- Env: RTMP_CALLBACK_SECRET, STREAM_HLS_BASE_URL, NGINX_RTMP_HOST
- Roadmap v0.10.6 marquée DONE
2026-03-10 10:21:57 +01:00
senke
dd23805401
feat(v0.10.5): Notifications Complètes (F551-F555)
...
- Phase 1: Default prefs — push_message & push_follow only; migration 941
- Phase 2: Digest = new tracks from followed artists (ORIGIN §8.1), not unread notifications
- Phase 3: Toggle 'désactiver marketing' + button 'Tout désactiver sauf messages et follows'
- Phase 4: PushPreferencesSection first in NotificationSettings (source of truth)
- Roadmap: v0.10.5 → DONE
2026-03-10 10:09:32 +01:00
senke
7cd01e4216
feat(v0.10.5): Notifications complètes — F551-F555
...
Backend API CI / test-unit (push) Failing after 0s
Backend API CI / test-integration (push) Failing after 0s
Frontend CI / test (push) Failing after 0s
Storybook Audit / Build & audit Storybook (push) Failing after 0s
F555: Backend pagination/filter GetNotifications (type, page, limit) + frontend pagination
F551: WebSocket real-time — backend inject chat hub, send on CreateNotification; frontend useChat invalidates
F553: Quiet hours — migration 132, CreateNotification skips push/WS, UI in PushPreferencesSection
F554: Notification grouping — migration 133, group_key/actor_count for like/comment, UI format
F552: Weekly digest — migration 134, NotificationDigestWorker, email template, prefs UI
Acceptance: no gamification notif; defaults unchanged; individual toggles for marketing
2026-03-10 10:02:21 +01:00
senke
22f0c04b3f
stabilisation commit: while implementing v0.10.5
2026-03-09 19:36:33 +01:00
senke
ac182d9f35
feat(v0.10.4): Playlists collaboratives - F136, F140, F141, F143, F145
...
Backend API CI / test-unit (push) Failing after 0s
Backend API CI / test-integration (push) Failing after 0s
Frontend CI / test (push) Failing after 0s
Storybook Audit / Build & audit Storybook (push) Failing after 0s
Backend:
- F141: GET /discover/playlists/editorial for editorial playlists
- F143: GET /playlists/shared/:token (public, no auth)
- F145: POST /playlists/import (JSON), GET /playlists/:id/export/m3u
- F136: GET /playlists/favoris (creates Favoris playlist if needed)
- Repo: GetFavorisByUserID, service GetOrCreateFavorisPlaylist
Frontend:
- SharedPlaylistPage at /playlists/shared/:token (public route)
- Editorial playlists section in DiscoverPage
- Export M3U in ExportPlaylistButton dropdown
- Import JSON via ImportPlaylistButton (PlaylistListPage)
- Favoris sidebar link, FavorisRedirectPage, AddToFavorisButton on tracks
Roadmap: v0.10.4 marked DONE
2026-03-09 16:49:05 +01:00
senke
6111ae6136
feat(v0.10.3): Commentaires & Interactions Sociales - F201-F215
...
Backend API CI / test-unit (push) Failing after 0s
Backend API CI / test-integration (push) Failing after 0s
Frontend CI / test (push) Failing after 0s
Storybook Audit / Build & audit Storybook (push) Failing after 0s
- F201: Commentaires avec timestamp cliquable, modération mots-clés
- F202: Likes privés (compteur visible créateur uniquement)
- F203: Reposts de tracks sur le profil, bouton Repost, onglet Reposts
- F204: Notifications (commentaire, repost), pas de gamification
Backend: migrations 127/128, comment_moderation_service, track_repost_service,
GetTrackLikes/GetTrack masquent like_count pour non-créateurs
Frontend: LikeButton isCreator, RepostButton, Reposts tab profil, timestamp seek
2026-03-09 10:30:47 +01:00
senke
171a154763
feat(v0.10.2): Recherche fulltext Elasticsearch - F361-F365
...
- Elasticsearch 8.x dans docker-compose.dev
- Package internal/elasticsearch: client, config, mappings, indices
- Sync PG→ES: reindex tracks/users/playlists, IndexTrack/DeleteTrack
- SearchService ES: multi_match + fuzziness (typo tolerance), highlighting
- Fallback gracieux: PostgreSQL si ELASTICSEARCH_URL absent
- Routes: GET /search, GET /search/suggestions, POST /admin/search/reindex
- Frontend: searchApi cursor/limit params (extensibilité)
- docs/ENV_VARIABLES: ELASTICSEARCH_URL, ELASTICSEARCH_INDEX, ELASTICSEARCH_AUTO_INDEX
- Roadmap v0.10.2 → DONE
2026-03-09 10:13:18 +01:00
senke
130579c12f
feat(v0.10.1): Track edit form - tags/genres (Phase 4.4)
...
- TrackMetadataEditModal: genres multi-select (max 3) from taxonomy
- Tag input with validation: max 10 tags, 30 chars each
- discoverService.getGenres() for genre list
- UpdateTrackParams/Request: add genres field
2026-03-09 10:00:07 +01:00
senke
4a422fc4c3
feat(v0.10.1): Tags & Genres discover - F351-F355
...
- Tags déclaratifs (max 10, 30 chars) via track_tags + tags
- Genres normalisés (max 3) via track_genres + taxonomy
- GET /api/v1/discover/genre/:genre, tag/:tag (browse chrono)
- POST/DELETE follow genre/tag
- Section feed "Nouvelles sorties dans vos genres"
- Track update: SyncTrackTags, SyncTrackGenres via discover service
- Frontend: discoverService, FeedPage by_genres, DiscoverPage
- Migration 126_tags_genres_discover
- MSW handlers for discover
2026-03-09 01:52:56 +01:00
senke
9024fa92a0
v0.9.8 beta
Backend API CI / test-unit (push) Failing after 0s
Backend API CI / test-integration (push) Failing after 0s
2026-03-07 00:54:35 +01:00
senke
2a4de3ce21
v0.9.8
2026-03-06 19:13:16 +01:00
senke
41d55e107d
v0.9.7 beta
2026-03-06 18:58:37 +01:00
senke
05467c1c2f
v0.9.7
2026-03-06 18:52:08 +01:00
senke
257077ad49
v0.9.6
2026-03-06 10:29:30 +01:00
senke
f5bca2b642
v0.9.5
2026-03-06 10:02:53 +01:00
senke
2ed2bb9dcf
v0.9.4
2026-03-05 23:03:43 +01:00
senke
5197bd24ee
v0.9.3
2026-03-05 19:35:57 +01:00
senke
c8c5debe84
finalizing v0.9.2
2026-03-05 19:30:28 +01:00
senke
b6c004319c
v0.9.2
Backend API CI / test-unit (push) Failing after 0s
Backend API CI / test-integration (push) Failing after 0s
2026-03-05 19:27:34 +01:00
senke
2df921abd5
v0.9.1
2026-03-05 19:22:31 +01:00
senke
ecf8d73e55
fix(release): v1.0.2 — Conformité complète V1_SIGNOFF (21 critères)
...
Backend API CI / test-unit (push) Failing after 0s
Backend API CI / test-integration (push) Failing after 0s
Frontend CI / test (push) Failing after 0s
Storybook Audit / Build & audit Storybook (push) Failing after 0s
- Couverture Go: script coverage_report.sh, 39% mesuré
- Vitest thresholds frontend 50%
- Load test WebSocket: CHAT_ORIGIN→backend, WS_URL=/api/v1/ws
- Tests: chat_service (WSUrl), password_service (hash/expired)
- V1_SIGNOFF: 14 PASS, 7 N/A documentés
- PERFORMANCE_BASELINE, RGPD, PWA tables v1.0.2
- Runbooks, Grafana, Secrets validés
2026-03-03 21:18:53 +01:00
senke
7cfd48a82a
fix(release): v1.0.1 — Conformité complète ROADMAP checklist
...
Backend API CI / test-unit (push) Failing after 0s
Backend API CI / test-integration (push) Failing after 0s
Stream Server CI / test (push) Failing after 0s
- Sécurité: npm 0 CRITICAL, cargo audit 0 vulnérabilités
- OpenAPI: @Param id corrigé pour /tracks/quota/{id}
- Tests: Payment E2E passe, OAuth DATABASE_URL fallback
- Migrations: 000_mark_consolidated.sql
- veza-stream-server: prometheus 0.14, validator 0.19
- docs: SECURITY_SCAN_RC1, V1_SIGNOFF, PROJECT_STATE
2026-03-03 20:17:54 +01:00
senke
69c6f55fb1
chore(release): bump VERSION to 1.0.0 — Commercial release
2026-03-03 19:54:04 +01:00
senke
dad5aae71c
chore(release): v0.992 RC2 — Release notes, sign-off final
Backend API CI / test-integration (push) Failing after 0s
Frontend CI / test (push) Failing after 0s
Backend API CI / test-unit (push) Failing after 0s
Storybook Audit / Build & audit Storybook (push) Failing after 0s
2026-03-03 19:53:41 +01:00
senke
0f31c11304
chore: regenerate CHANGELOG, bump VERSION to 0.991 for RC1
2026-03-03 19:52:49 +01:00
senke
9eb1b3cd65
chore(release): bump VERSION to 0.982
2026-03-03 19:50:29 +01:00
senke
84b3d7b42a
perf(web): add Lighthouse audit section for v0.982
2026-03-03 19:50:08 +01:00
senke
e011fd6920
fix(bugbash): document P1/P2 bug bash completion for v0.981
2026-03-03 19:49:53 +01:00
senke
605790e2ea
docs: retrospective v0.803, archive scope, update SCOPE_CONTROL
...
- Add RETROSPECTIVE_V0803.md
- Archive V0_803_RELEASE_SCOPE.md to docs/archive/
- Update SCOPE_CONTROL: phase v0.901, link to archived scope
- Update .cursorrules: scope v0.901, v0.803 archived
2026-03-03 09:25:34 +01:00
senke
1e4ed6ef87
docs: update API_REFERENCE, CHANGELOG, FEATURE_STATUS, PROJECT_STATE for v0.803
2026-03-03 09:25:20 +01:00
senke
354c747cce
feat(security): add global and per-IP DDoS rate limiting (1000/s, 100/s)
...
SEC1-04: Redis sliding window 1s, excluded paths (health, swagger, auth)
2026-03-03 09:25:08 +01:00
senke
6a82959a96
feat(admin): add Settings tab with announcements, feature flags, maintenance
...
- Add SETTINGS tab to AdminDashboardTabs with AdminSettingsView
- Align moderation actions to backend: dismiss, warn, ban (replace cleared/quarantined)
2026-03-03 09:24:52 +01:00
senke
4464f98194
chore(release): v0.981 — Beta (staging deploy, bug bash, smoke test)
Stream Server CI / test (push) Failing after 0s
2026-03-02 19:33:42 +01:00
senke
d577f8c9be
chore(release): v0.971 — Phantom (gamification removal, WebRTC Beta, limits doc)
Backend API CI / test-unit (push) Failing after 0s
Backend API CI / test-integration (push) Failing after 0s
Frontend CI / test (push) Failing after 0s
Storybook Audit / Build & audit Storybook (push) Failing after 0s
2026-03-02 19:25:37 +01:00
senke
da837fc085
chore(release): v0.951 — Loadtest (500 req/s, 1000 WS, 50 uploads, perf indexes)
Backend API CI / test-unit (push) Failing after 0s
Backend API CI / test-integration (push) Failing after 0s
2026-03-02 19:22:38 +01:00
senke
b52f209636
chore(release): v0.962 — Onboard (API ref, onboarding <30min, ADRs)
2026-03-02 19:11:06 +01:00
senke
f692ebfd26
chore(release): v0.961 — Playbook (runbooks déploiement, rollback, incident)
2026-03-02 19:09:46 +01:00
senke
65375a61aa
chore(release): v0.952 — Observe (Grafana v1-overview, Prometheus alert_rules_v1)
2026-03-02 19:08:55 +01:00