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 |
|
senke
|
f4eb6f82d8
|
docs(audit): ajouter AddTrackToPlaylistModal au tableau des refactorisations
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:22:33 +01:00 |
|
senke
|
4e2c920b49
|
docs(audit): add PlaylistTrackList to refactored components table
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:14:41 +01:00 |
|
senke
|
3d31321e96
|
docs(audit): add NotificationMenu to refactored components table
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:07:42 +01:00 |
|
senke
|
6dca8a36d9
|
docs(audit): add LibraryManager to refactored components table
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:00:58 +01:00 |
|
senke
|
b6563112ea
|
docs(audit): add CourseDetailView to refactored components table
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:52:47 +01:00 |
|
senke
|
3120aa96f5
|
docs(audit): add CourseLearningView to refactored components table
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:46:20 +01:00 |
|
senke
|
a88d5a3e7c
|
docs(audit): mark ProductDetailView (marketplace) as refactored in frontend audit
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:38:28 +01:00 |
|
senke
|
56940b16ad
|
docs(audit): mark PlaybackHeatmap as refactored in frontend audit
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:31:25 +01:00 |
|
senke
|
ea2810d64b
|
docs(audit): mark ProjectDetailView as refactored in frontend audit
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:24:57 +01:00 |
|
senke
|
c69124595e
|
docs(audit): mark SessionsPage as refactored in frontend audit
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:19:26 +01:00 |
|
senke
|
9eb27d108b
|
docs(audit): mark TrackSearchFilters as refactored in frontend audit
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:09:51 +01:00 |
|
senke
|
775f28f313
|
docs(audit): add AccountSettings to refactored components in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:04:31 +01:00 |
|
senke
|
5001769177
|
docs(audit): add Dialog to refactored components in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:00:02 +01:00 |
|
senke
|
6b21655f3f
|
docs(audit): add PlaylistList to refactored components in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 22:55:11 +01:00 |
|
senke
|
aeab65de09
|
docs(audit): add TrackFilters to refactored components in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 22:46:26 +01:00 |
|
senke
|
0b6d1c0511
|
docs(audit): record AudioPlayer (components/player) refactor in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 22:40:19 +01:00 |
|
senke
|
4b6f272861
|
docs(audit): record DataList refactor in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 22:36:06 +01:00 |
|
senke
|
62708affa0
|
docs(audit): record OptimizedImage refactor in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 22:31:48 +01:00 |
|
senke
|
5c228ae374
|
docs(audit): record AvatarUpload refactor in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 22:21:13 +01:00 |
|
senke
|
7d9b7084d6
|
docs(audit): record DatePicker refactor in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 22:15:27 +01:00 |
|
senke
|
5e4266fc5e
|
docs(audit): record ShareLinkManager refactor in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 22:09:42 +01:00 |
|
senke
|
b70900a8f0
|
docs(audit): record PlaybackDashboard refactor in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 22:04:54 +01:00 |
|
senke
|
f61d05b527
|
docs(audit): record MonitoringDashboard refactor in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 21:57:59 +01:00 |
|
senke
|
2b3a5d84b9
|
docs(audit): record RegisterPage refactor in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 21:50:42 +01:00 |
|
senke
|
03f4387f13
|
docs(audit): record FileManagerView refactor in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 21:45:27 +01:00 |
|
senke
|
a4d5e19099
|
docs(audit): record SearchPage refactor in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 21:39:51 +01:00 |
|
senke
|
5d9a9418b7
|
docs(audit): record NotificationsPage refactor in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 21:34:54 +01:00 |
|
senke
|
7541e5a528
|
docs(audit): mark CloudFileBrowser as module in features/studio, update problemes identifies
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 21:19:58 +01:00 |
|
senke
|
df5e51d105
|
docs(audit): mark Select as refactored in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 21:16:43 +01:00 |
|
senke
|
8fcabd49f5
|
docs(audit): mark file-upload as refactored in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 21:09:32 +01:00 |
|
senke
|
a51640f1a0
|
docs(audit): mark UploadModal as refactored in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 21:03:23 +01:00 |
|
senke
|
4490e78ff6
|
docs(ui): update audit report and mark LazyComponent as refactored in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 20:49:46 +01:00 |
|
senke
|
d7aaa0e69c
|
docs(views): update audit report and mark GearView as refactored in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 20:40:12 +01:00 |
|
senke
|
1eb766d0fa
|
docs(views): update audit report and mark ProfileView as refactored in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 20:31:26 +01:00 |
|
senke
|
335faefe17
|
docs(user): update audit report and mark ProfileForm as refactored in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 20:21:28 +01:00 |
|
senke
|
81cc36d5ff
|
docs(audit): mark ChatSidebar as refactored in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 20:07:56 +01:00 |
|
senke
|
5853cb2432
|
docs(search): update audit report for Search refactor
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 19:46:03 +01:00 |
|