senke
c92e3e8799
feat(v0.11.3): F421-F425 frontend admin platform dashboard and routes
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 18:20:27 +01:00
senke
4fe689ddfd
feat(v0.11.2): F411-F420 frontend advanced moderation components
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:50:15 +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
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
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
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
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
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
0fc3690c18
feat(ui): connect admin views to real backend, add AnnouncementBanner, MSW handlers
2026-02-25 20:00:43 +01:00
senke
7692c4b8b9
feat(v0.802): frontend Cloud/Gear, MSW, docs, scope v0.803, archive
...
- Cloud: CloudFileVersions, CloudShareModal, versions/share in CloudView
- Gear: GearDocumentsTab, GearRepairsTab, warranty badge, initialTab
- MSW: cloud versions/share, gear documents/repairs, tags suggest
- Stories: CloudFileVersions, CloudShareModal, GearDetailModal variants
- gearService: listDocuments, uploadDocument, deleteDocument, listRepairs, createRepair, deleteRepair
- cloudService: listVersions, restoreVersion, shareFile, getSharedFile
- gear_warranty_notifier: 24h ticker, notifications for expiring warranty
- tag_handler_test: unit tests
- docs: API_REFERENCE, CHANGELOG, PROJECT_STATE, FEATURE_STATUS v0.802
- SCOPE_CONTROL, .cursorrules: scope v0.803
- archive: V0_802_RELEASE_SCOPE, RETROSPECTIVE_V0802
2026-02-25 14:00:58 +01:00
senke
ec937f8956
feat(pwa): re-enable service worker with safe caching, add Install App in Settings
2026-02-25 09:56:26 +01:00
senke
9b33f3283d
feat(settings): wire appearance controls to ThemeProvider and backend
2026-02-25 09:54:45 +01:00
senke
bd63ac6832
feat(live): add GoLivePage, GoLiveView, liveService methods, lazy export, route, Navbar/Sidebar wiring
2026-02-24 10:00:43 +01:00
senke
36e7bfc355
feat(frontend): add admin transfer API functions in commerceService
2026-02-23 23:36:09 +01:00
senke
fdd750d772
feat(seller): add transfers history card to SellerDashboard
2026-02-23 22:57:28 +01:00
senke
83ed4f315b
chore(release): v0.602 — Payout, Dette Technique & Tests E2E
...
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
- Stripe Connect: onboarding, balance, SellerDashboardView
- Interceptors: auth.ts, error.ts extracted, facade
- Grafana: dashboards enriched (p50, top endpoints, 4xx, WS, commerce)
- E2E commerce: product->order->review->invoice
- SMOKE_TEST_V0602, RETROSPECTIVE_V0602, PAYOUT_MANUAL
- Archive V0_602 scope, V0_603 placeholder, SCOPE_CONTROL v0.603
- Fix sanitizer regex (Go no backreferences)
- Marketplace test schema: product_licenses, product_images, orders, licenses
2026-02-23 22:32:01 +01:00
senke
914139a7b1
refactor(api): extract error interceptor to interceptors/error.ts
2026-02-23 22:05:37 +01:00
senke
45e8522200
refactor(api): extract auth interceptor to interceptors/auth.ts
2026-02-23 22:01:11 +01:00
senke
706837be97
fix(auth): skip state invalidation on logout response
...
invalidateStateAfterMutation was triggered on POST /auth/logout 200,
causing invalidateQueries for ['user','me'] and refetch of getMe().
That refetch fails (500) since session is already invalidated.
Skip invalidation for /auth/logout - cleanup is handled in auth service.
2026-02-23 10:00:54 +01:00
senke
fa7fc7031e
fix(auth): restore login and logout flow
...
- Clear React Query user cache on logout (auth.ts + logoutLocal in authStore)
to prevent stale user data in Header/useUser after disconnect
- Fix LoginPage redirect: user was removed from persist (Action 4.1.1.5),
so parsed.state?.user was always undefined and redirect never triggered.
Use isAuthenticated directly as source of truth.
- Close Header user menu on logout for cleaner UX
2026-02-23 09:54:05 +01:00
senke
8efd398239
refactor(frontend): eliminate ~45 'any' types in production code
...
CLN-04: Replaced any with unknown, proper interfaces, or concrete
types across 17 files. Focus: error handlers, API responses,
WebSocket data, and function parameters.
2026-02-22 17:44:49 +01:00
senke
8e9431fe93
feat(commerce): replace mock purchases with real API calls
...
CLN-02: getPurchases() now calls GET /marketplace/orders;
requestRefund() calls POST /marketplace/orders/:id/refund.
Removed MOCK_PURCHASES constant. MSW handler updated.
2026-02-22 17:44:29 +01:00
senke
5e4291ecba
feat(auth): add ephemeral stream-token endpoint for HLS and WebSocket authentication
...
SEC-03: TokenStorage.getAccessToken() returns null with httpOnly cookies.
New POST /api/v1/auth/stream-token returns a 5-min JWT compatible with
both stream server (Claims struct) and chat server (JwtClaims struct).
Frontend hlsService and websocket updated to use fetchStreamToken() fallback.
2026-02-22 17:28:00 +01:00
senke
9f4c84c025
feat(marketplace): add invoice download link to PurchasesView and LicensesView
2026-02-22 16:15:55 +01:00
senke
e6797481cf
feat(marketplace): add review API to frontend
2026-02-22 16:09:04 +01:00
senke
508e082bcc
feat(checkout): add CheckoutSuccessView, CheckoutErrorView and getOrder
2026-02-22 14:42:15 +01:00
senke
0adc212719
feat(seller): add GET /sell/stats/evolution, top-products, sales, SalesEvolutionChart, real commerceService
2026-02-22 14:21:21 +01:00
senke
c418e677d2
feat(marketplace): add getMyLicenses, enrich LicenceCard/LicenceDetailsModal, LicensesView
2026-02-22 14:18:05 +01:00
senke
31a27e4724
feat(marketplace): add playable preview and image gallery to ProductDetailView
2026-02-22 14:14:38 +01:00
senke
3d7cc141fe
feat(marketplace): connect CreateProductView to enriched product API
2026-02-22 14:10:26 +01:00
senke
13d9e96001
feat(marketplace): add bpm, musical_key, category to marketplaceService listProducts
2026-02-22 14:08:59 +01:00
senke
d2a55b405e
feat(groups): S2 frontend - request join, invite, roles, my groups, MSW handlers
2026-02-21 05:51:29 +01:00
senke
28e6642fa6
feat(social): GET /social/explore, explore tab, feed filters all/following/groups (S1.5, S1.6)
2026-02-21 05:31:12 +01:00
senke
b572863847
feat(social): feed pagination with cursor (S1.4)
2026-02-21 05:28:19 +01:00
senke
79feb220f4
feat(social): connect feed to social API, enrich with actor/track, FeedItem supports posts (S1.1-S1.3)
2026-02-21 05:26:52 +01:00
senke
5cc3d7b181
feat(presence): PresenceBadge and display (P1.3)
2026-02-21 05:22:52 +01:00
senke
20e4278996
fix(chat): align typing WebSocket protocol with Chat Server
...
- startTyping/stopTyping now send { type: 'Typing', conversation_id, is_typing }
- Document JWT auth limitation (query param) for v0.302
2026-02-21 05:16:52 +01:00
senke
082fb9f2eb
fix(player): resolve TypeScript errors in PlayerQueue and queue API types
Frontend CI / test (push) Failing after 0s
Storybook Audit / Build & audit Storybook (push) Failing after 0s
2026-02-21 05:11:07 +01:00
senke
cc2d4fb8ba
feat(queue): add collaborative queue UI (share link, session mode, polling sync)
2026-02-20 18:45:42 +01:00
senke
830409ab84
feat(social): connect SocialViewTrending to API
2026-02-20 18:34:21 +01:00
senke
ede3546f4b
feat(release): v0.202 — Lots G, H, F, C, D
...
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
- Lot G: Recherche avancée (musical_key, tri pertinence, autocomplete, facettes, historique)
- Lot H: Analytics créateur (stats, charts, completion rate, export CSV/JSON)
- Lot F: Seller dashboard (GET /sell/stats, liste produits)
- Lot C: Player (crossfade, gapless preload, PiP)
- Lot D2: Autoplay (GET /tracks/recommendations, section À écouter ensuite)
Backend: GetRecommendations handler, route /tracks/recommendations
Frontend: PlayerQueue recommendations, fix TS errors (GlobalPlayer, AnalyticsViewKpiGrid, etc.)
Docs: FEATURE_STATUS, PROJECT_STATE, CHANGELOG, SCOPE_CONTROL
2026-02-20 18:16:17 +01:00
senke
7caf082078
feat(seller): add GET /sell/stats and connect dashboard (F1)
2026-02-20 17:02:13 +01:00
senke
363b092f3e
feat(analytics): add creator export CSV/JSON (H4)
2026-02-20 17:00:36 +01:00
senke
d81695c27c
feat(analytics): add creator charts endpoint and UI (H2)
2026-02-20 16:59:25 +01:00
senke
ecbc2389d8
feat(analytics): add creator stats endpoint and UI (H1)
2026-02-20 16:57:58 +01:00
senke
72bc1a811d
feat(search): wire type facettes in SearchPage (G4)
2026-02-20 16:55:32 +01:00