senke
b5fe6e8fd1
feat(release): v0.202 — Lots G, H, F, C, D
...
- 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
992e93cd23
chore: finalize v0.201 docs (CHANGELOG, FEATURE_STATUS, PROJECT_STATE, SCOPE_CONTROL)
2026-02-20 15:44:30 +01:00
senke
425b11d50c
docs: prepare v0.201 — scope, project state, SCOPE_CONTROL
...
- V0_201_RELEASE_SCOPE.md: Phase 2 Contenu (recherche, métadonnées, analytics)
- PROJECT_STATE.md: état actuel, prochaines étapes
- SCOPE_CONTROL.md: référence v0.201
- .cursorrules: scope v0.201
2026-02-20 15:23:12 +01:00
senke
a11f8e526a
chore(v0.103): finalize release — CHANGELOG, FEATURE_STATUS, .cursorrules scope
2026-02-20 15:14:25 +01:00
senke
813e83caab
docs: document WebAuthn/Passkeys deferral to v0.104 (A3)
2026-02-20 14:52:53 +01:00
senke
5a43cb8356
docs: document 2FA SMS deferral to v0.104 (A2)
2026-02-20 14:49:21 +01:00
senke
6a1686aad8
feat(auth): add OAuth Spotify provider (A1)
2026-02-20 14:48:08 +01:00
senke
134b8979c0
chore(v0.102): consolidate remaining changes — docs, frontend, backend
...
- docs: SCOPE_CONTROL, CONTRIBUTING, README, .github templates
- frontend: DeveloperDashboardView, Player components, MSW handlers, auth, reactQuerySync
- backend: playback_analytics, playlist_service, testutils, integration README
Excluded (artifacts): .auth, playwright-report, test-results, storybook_audit_detailed.json
2026-02-20 13:02:12 +01:00
senke
ef016a07ed
docs(live): document Go Live limitation (A6)
2026-02-20 12:56:29 +01:00
senke
618dd77e11
docs: close v0.101, add v0.102 scope placeholder
2026-02-19 22:50:30 +01:00
senke
b05d08649f
chore: finalize v0.101 release — all criteria validated
2026-02-19 19:31:06 +01:00
senke
2b7a01bf7d
fix(e2e): align local E2E setup with CI or document CI-only validation
2026-02-19 19:23:17 +01:00
senke
42f2f54abc
chore: finalize v0.101 release — all criteria validated
2026-02-19 19:19:19 +01:00
senke
aad59b6b8a
docs: validate no regression on critical flows for v0.101
2026-02-19 19:13:38 +01:00
senke
7aaaf9fef7
fix(e2e): align local E2E setup with CI or document CI-only validation
2026-02-19 19:10:15 +01:00
senke
27c48e703a
docs: finalize v0.101 security checklist and scope
2026-02-19 19:01:56 +01:00
senke
5d0f303e3c
docs: update v0.101 remediation status and scope checklist
2026-02-19 16:27:22 +01:00
senke
df0eb9b0ad
fix(e2e): align CI Go version to 1.24 for v0.101
...
fix(web): resolve lint errors for v0.101
- eslint: add ignores (e2e, scripts, playwright-report, generated types)
- eslint: add browser globals, disable react-hooks in stories
- fix empty catch blocks (Cart, MarketplacePage, RolesPage, SettingsPage)
- fix PlayerExpanded: move useEffect before early return
- fix TrackHistory.test: rename type import to avoid no-redeclare
2026-02-19 16:27:10 +01:00
senke
c73effcf88
chore(docs): add v0.101 diagnostic baseline
...
- Add V0_101_DIAGNOSTIC_BASELINE.md with initial diagnostic results
- Fix eslint: remove storybook plugin dep, add dist_verification to ignores
- Fix .storybook/preview.tsx: remove unused React, use object shorthand
2026-02-19 16:08:05 +01:00
senke
29cdca1e02
docs: update remediation and onboarding for v0.101
...
- REMEDIATION_PROGRESS: add Phase v0.101 section
- V0_101_RELEASE_SCOPE: check build criteria
- VERSION: 0.101.0-dev (release tag will create)
2026-02-18 18:16:06 +01:00
senke
a992d394bb
fix(chat): ensure WebSocket auth token from query or cookie
...
- Chat server: accept token from ?token= or access_token cookie (httpOnly)
- Frontend: append token to WS URL when available (TokenStorage)
2026-02-18 12:42:48 +01:00
senke
aa7980ab71
fix(streaming): ensure HLS audio chain works end-to-end
...
- HAProxy: route /hls to stream server
- Vite proxy: /ws, /stream, /hls for dev
- HLS_BASE_URL: empty when STREAM_URL relative (proxy)
- FEATURE_STATUS: HLS_STREAMING operational
2026-02-18 12:42:42 +01:00
senke
7f72e280a4
docs: add full stack startup procedure for v0.101
2026-02-18 12:04:27 +01:00
senke
e11984898d
chore: consolidate CI, E2E, backend and frontend updates
...
- CI: workflows updates (cd, ci), remove playwright.yml
- E2E: global-setup, auth/playlists/profile specs
- Remove playwright-report and test-results artifacts from tracking
- Backend: auth, handlers, services, workers, migrations
- Frontend: components, features, vite config
- Add e2e-results.json to gitignore
- Docs: REMEDIATION_PROGRESS, audit archive
- Rust: chat-server, stream-server updates
2026-02-17 16:43:21 +01:00
senke
ea1b60466a
fix(backend): remediation plan — tests, playback_analytics, job queue, gamification
...
Phase 1 - Backend tests:
- Add PlaybackAnalytics to AutoMigrate in setupTestTrackHandler
- Create migration 081_create_playback_analytics.sql for production
- PlaybackAnalyticsService: return ErrTrackNotFound for missing track
- RecordPlay handler: return 404 when track not found
- CreateShare: use RespondSuccess, fix services.ErrTrackNotFound/ErrForbidden
- GetTrackLikes, UnlikeTrack: use RespondSuccess for consistent response
- GetUserLikedTracks test: fix route /users/:id/likes and params
- GetSharedTrack_InvalidToken: set share service in test
Phase 4 - Job queue transcoding:
- Add EnqueueTranscodingJob to JobEnqueuer interface
- Add TypeTranscoding and processTranscodingJob (stub) in JobWorker
- MockJobEnqueuer: implement EnqueueTranscodingJob
Phase 5 - Gamification cleanup:
- Move api_manager.go to internal/api/archive/
- Add archive/README.md documenting archived modules
- Update TODOS_AUDIT.md and FEATURE_STATUS.md
2026-02-17 16:01:45 +01:00
senke
b51a331b7a
docs: align FEATURE_STATUS and validation scripts with v0.101 state
...
- docs/FEATURE_STATUS.md: 19 operational features (Gear, Live, Analytics, Roles)
- apps/web/docs/FEATURE_STATUS.md: reference 103 report, 19 features summary
- scripts/validate-full.sh: add full validation (validate-light + go test + npm test)
2026-02-17 15:35:58 +01:00
senke
057d9a8361
chore(docs): reorganize markdown files, add docs/README (P2)
2026-02-16 11:04:24 +01:00
senke
986d4bb0a4
docs: update REMEDIATION_PROGRESS with Phase 2 completion
2026-02-16 10:53:29 +01:00
senke
fed6e715c6
docs(security): document Lot 9 (2FA) and Lot 10 (OAuth) verification (A07)
...
Both flows verified correct - no code changes required.
2026-02-16 10:23:33 +01:00
senke
e866629a58
fix(security): update or remove vulnerable npm devDependencies (A06)
...
- Remove @lhci/cli, newman, pa11y-ci (used only by obsolete Makefile.old)
- Redirect qa:postman, qa:lh, qa:a11y scripts to explanatory message
- npm audit fix for remaining lodash vulnerability
- Document Lot 6 (bypass flags verified) and Lot 8 in REMEDIATION_PROGRESS
2026-02-16 10:20:10 +01:00
senke
effbd7e36f
fix(security): remove or protect education routes (A01)
...
Education packages internal/api/education and internal/core/education were
empty directories with no routes registered. Removed empty dirs and
documented in REMEDIATION_PROGRESS.md.
2026-02-16 10:18:43 +01:00
senke
6cb9e7521d
docs: add developer onboarding guide
2026-02-15 16:13:20 +01:00
senke
277120b0ad
feat(payments): document Hyperswitch activation and validate checkout flow
2026-02-15 16:08:49 +01:00
senke
0fb75f759b
chore(audit 2.2, 2.3): nettoyer .md et .json à la racine
...
- Archiver 131 .md dans docs/archive/root-md/
- Archiver 22 .json dans docs/archive/root-json/
- Conserver 7 .md utiles (README, CONTRIBUTING, CHANGELOG, etc.)
- Conserver package.json, package-lock.json, turbo.json
- Ajouter README d'index dans chaque archive
2026-02-15 14:35:08 +01:00
senke
7f7b6547bc
chore: consolidate pending changes (Hyperswitch, PostCard, dashboard, stream server, etc.)
2026-02-14 21:45:15 +01:00
senke
04c25aa24f
Phase 2 stabilisation: code mort, Modal→Dialog, feature flags, tests, router split, Rust legacy
...
Bloc A - Code mort:
- Suppression Studio (components, views, features)
- Suppression gamification + services mock (projectService, storageService, gamificationService)
- Mise à jour Sidebar, Navbar, locales
Bloc B - Frontend:
- Suppression modal.tsx deprecated, Modal.stories (doublon Dialog)
- Feature flags: PLAYLIST_SEARCH, PLAYLIST_RECOMMENDATIONS, ROLE_MANAGEMENT = true
- Suppression 19 tests orphelins, retrait exclusions vitest.config
Bloc C - Backend:
- Extraction routes_auth.go depuis router.go
Bloc D - Rust:
- Suppression security_legacy.rs (code mort, patterns déjà dans security/)
2026-02-14 17:23:32 +01:00
senke
b733f47a33
chore: playwright workflow, docs, rapports audit, visual-tests, tmt unit
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-11 22:19:34 +01:00
senke
d534c4e857
ci: add npm audit, govulncheck, cargo audit to CI
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-11 21:33:27 +01:00
senke
ffd578befd
docs: mark veza-mobile as abandoned, document ghost features
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-11 21:31:22 +01:00
senke
875df12d8b
small fixes : cors + login loop
2026-02-07 20:36:48 +01:00
senke
6ce5ea10a4
feat(e2e): Playwright + pixelmatch stack for pixel-perfect visual regression
...
- playwright.config.visual.ts: dedicated config, viewport 1280x720, Chromium only,
snapshots in e2e/tests/visual/__snapshots__
- e2e/tests/visual/visual-regression.spec.ts: login, register, dashboard (full/header/sidebar),
player bar, playlists, 404, mobile/tablet viewports; dark theme + reduceMotion
- scripts/visual-diff.js: optional pixelmatch script to generate diff image from two PNGs
- docs/VISUAL_TESTING_STRATEGY.md: strategy, commands, CI, workflow
- npm scripts: test:visual, test:visual:update, test:visual:report
- deps: pixelmatch, pngjs; @playwright/test aligned to 1.58.1
- baseline snapshots added for login, dashboard, playlists, 404, viewports
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 20:01:30 +01:00
senke
0a8aee2178
docs(frontend): update roadmap checklist and implementation log
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 19:52:48 +01:00
senke
3f9af329cd
docs(frontend): add Spotify/Discord quality roadmap and checklist
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 19:50:43 +01:00
senke
17b57dc885
docs(audit): TrackDetailPage refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 06:57:46 +01:00
senke
1474078090
docs(audit): PlaylistDetailPage refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 06:47:07 +01:00
senke
b0921cd070
docs(audit): PlaylistActions refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 06:10:30 +01:00
senke
92bd9eeef3
docs(audit): EquipmentDetailView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 05:46:19 +01:00
senke
7744e3ca0e
docs(audit): TrackListPagination refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 05:04:24 +01:00
senke
5fd968ec4a
docs(audit): PlaylistAnalytics refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 04:54:00 +01:00
senke
0352824f06
docs(audit): VirtualizedChatMessages refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 04:44:30 +01:00
senke
51c1937b51
docs(audit): LibraryPage refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 04:31:15 +01:00
senke
e3fa53925c
docs(audit): router refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 04:16:43 +01:00
senke
e342776843
docs(audit): ChatView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 04:01:30 +01:00
senke
509a893b50
docs(audit): AuthView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 03:54:38 +01:00
senke
a5a5e001d0
docs(audit): AdminView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 22:32:04 +01:00
senke
5a6d647434
docs(audit): NotificationsView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 22:23:19 +01:00
senke
fe63e56c1f
docs(audit): EducationView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 22:11:45 +01:00
senke
99517571d3
docs(audit): SettingsView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 22:00:12 +01:00
senke
0c19958cd2
docs(audit): CartView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 21:51:30 +01:00
senke
b076b83f19
docs(audit): PurchasesView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 21:43:08 +01:00
senke
7d8345684d
docs(audit): SocialView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 21:35:06 +01:00
senke
be4b297a06
docs(audit): MarketplaceView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 21:26:33 +01:00
senke
ac1cf02544
docs(audit): AnalyticsView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 18:34:24 +01:00
senke
b74dc97fb4
docs(audit): LiveView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 18:16:11 +01:00
senke
11611749df
docs(audit): CheckoutView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 18:04:47 +01:00
senke
2c4ea8b7cd
docs(audit): AdminDashboardView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 17:54:39 +01:00
senke
a83688dac1
docs(audit): components/settings/account AccountSettings refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 17:43:34 +01:00
senke
ae1b014a4b
docs(audit): ChatInterface refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 14:25:15 +01:00
senke
7278bdccef
docs(audit): CreateProductView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 14:17:28 +01:00
senke
430c4e730d
docs(audit): FileDetailsView refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 14:06:09 +01:00
senke
00a700b9a9
docs(audit): VirtualizedList refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 13:55:32 +01:00
senke
36a13b10c3
docs(audit): context/AudioContext refactorised 2026-02-05
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 13:46:58 +01:00
senke
c7c477574e
docs(audit): add features/player AudioPlayer refactor entry to FRONTEND_DEEP_DIVE_AUDIT
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 13:37:31 +01:00
senke
0388888845
docs(audit): add Library UploadModal refactor entry to FRONTEND_DEEP_DIVE_AUDIT
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 13:26:57 +01:00
senke
5cafe00902
docs(audit): add DiscoverView refactor entry to FRONTEND_DEEP_DIVE_AUDIT
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 13:19:48 +01:00
senke
b125e215b2
docs(audit): add UserProfilePage refactor entry to FRONTEND_DEEP_DIVE_AUDIT
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 13:11:09 +01:00
senke
dacda36ac6
docs(audit): GroupDetailView refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 12:35:28 +01:00
senke
2d94d09cda
docs(audit): EditProfile refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 11:45:29 +01:00
senke
049060cf9a
docs(audit): FormBuilder refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 11:36:31 +01:00
senke
f5c9916421
docs(audit): MonitoringDashboardContent subcomponents entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 11:28:03 +01:00
senke
1137819c92
docs(audit): Table (data) refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 11:23:10 +01:00
senke
8353417f30
docs(audit): tooltip refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 10:32:46 +01:00
senke
0d8b1b21f4
docs(audit): tabs refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 10:12:56 +01:00
senke
82692c5c8f
docs(audit): accordion refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 02:33:34 +01:00
senke
7e420189b1
docs(audit): dropdown-menu refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 02:27:58 +01:00
senke
f9ffc4d552
docs(audit): StudioView refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 02:18:00 +01:00
senke
564eb059e2
docs(audit): CloudSettingsView refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 02:11:58 +01:00
senke
7e139b77c1
docs(audit): AIToolsView refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 02:07:27 +01:00
senke
fab2ca1077
docs(audit): ConnectivityView refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 02:02:23 +01:00
senke
15fbe672df
docs(audit): GoLiveView refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 01:57:44 +01:00
senke
9450e68054
docs(audit): CreateProjectModal refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 01:51:46 +01:00
senke
085d3ae049
docs(audit): ProjectsManager refactor entry
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 01:45:05 +01:00
senke
80acd8b50c
docs(audit): TrackHistory refactor entry in FRONTEND_DEEP_DIVE_AUDIT
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 01:35:21 +01:00
senke
3911f1d579
docs(audit): TwoFactorSetup refactor entry in FRONTEND_DEEP_DIVE_AUDIT
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 01:26:01 +01:00
senke
8ee736ba38
docs(audit): UploadView refactor entry in FRONTEND_DEEP_DIVE_AUDIT
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 01:12:44 +01:00
senke
e555235ad8
docs(audit): AddCollaboratorModal refactor entry in FRONTEND_DEEP_DIVE_AUDIT
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 01:04:43 +01:00
senke
b77308476b
docs(audit): ajouter SharePlaylistModal au tableau des refactorisations
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 00:58:07 +01:00
senke
6a31bf9ae9
docs(audit): ajouter CreatePlaylistDialog au tableau des refactorisations
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 00:53:10 +01:00
senke
4937beecf6
docs(audit): ajouter PlaylistSearch au tableau des refactorisations
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 00:47:47 +01:00
senke
4d4123c2a3
docs(audit): ajouter PlaylistBatchActions au tableau des refactorisations
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 00:37:26 +01:00