Commit graph

274 commits

Author SHA1 Message Date
senke
716d397f2c api-contracts: replace User interface with generated type base
- Update User type in types/api.ts to extend VezaBackendApiInternalModelsUser
- Preserve UI-specific computed fields (avatar_url, stats, roles, status, etc.)
- Make required fields actually required (id, username, email, role, etc.)
- All existing imports continue to work via barrel exports
- No User-specific TypeScript errors introduced
2026-01-15 17:09:14 +01:00
senke
f1ea34562b api-contracts: replace Track interface with generated type base
- Update Track type in types/api.ts to extend VezaBackendApiInternalModelsTrack
- Update Track type in features/tracks/types/track.ts to extend generated type
- Preserve UI-specific computed fields (coverUrl, plays, likes, etc.)
- Support backward compatibility for duration (number|string)
- All existing imports continue to work without changes
- No Track-specific TypeScript errors introduced
2026-01-15 17:07:50 +01:00
senke
7df3a03e46 api-contracts: replace ApiError interface with Zod-inferred type
- Replace manual ApiError interface with Zod-inferred type from apiSchemas
- Update all imports (15+ files) to use ApiError from @/schemas/apiSchemas
- Remove ApiError interface from types/api.ts
- Update ApiResponse to import ApiError from schemas
- All TypeScript checks pass for ApiError-related code
2026-01-15 17:03:35 +01:00
senke
64f62635a5 api-versioning: add X-API-Deprecated header and frontend deprecation warning
- Backend: Add X-API-Deprecated header alongside existing X-API-Version-Deprecated
- Frontend: Show deprecation warning toast when deprecated API version detected
- Warning shown only once per session to avoid spam
- Includes sunset date in warning message if available
2026-01-15 16:56:21 +01:00
senke
daada38da8 state-ownership: replace all useAuthStore().user with useUser() hook
- Migrated all hooks: useAuth, useChat, useLogin
- Migrated all components: Header, ProfileForm, FollowButton, LikeButton, PlaylistFollowButton, ChatMessage, ChatMessages, CommentThread, CommentSection, PlaylistList, ChatSidebar, SettingsPage, DashboardPage
- Updated storeSelectors.ts useAuthUser() to use React Query
- All production code now uses useUser() hook instead of Zustand store
- Action 4.1.1.3 and 4.1.1.4 complete
2026-01-14 01:45:42 +01:00
senke
9ceaebd14a state-ownership: audit all files using useAuthStore().user
Found 24 files using user from authStore:
- 18 components (Header, DashboardPage, Chat components, etc.)
- 4 hooks (useAuth, useChat, useLogin)
- 2 utilities (stateHydration, storeSelectors docs)

Created comprehensive audit document with migration strategy.

Action 4.1.1.2 complete
2026-01-14 01:40:42 +01:00
senke
f7a87afd49 state-ownership: remove domain data from library store
- Remove items, favorites, pagination, isLoading, error from LibraryState
- Remove fetchItems, fetchFavorites, uploadFile, toggleFavorite, deleteItem, clearItems, setLoading, setError from LibraryActions
- Remove undoRedo and stateMiddleware wrappers (no domain data to track)
- Update useLibraryActions() to use React Query for all domain data actions
- Store now only contains filters (UI state)
- Update useLibraryItemsNormalized() and useLibraryFavoritesNormalized() to return empty state (deprecated)
- Update useLibraryPagination() to return both camelCase and snake_case for compatibility

Action 4.1.2.4 complete
2026-01-14 01:39:23 +01:00
senke
76d95ecfb4 incus deployement fully implemented, Makefile updated and make fmt ran 2026-01-13 19:47:57 +01:00
senke
2b74cac84f state-ownership: update storeSelectors.ts to use React Query hooks
- Replace useLibraryItems() with React Query hook
- Replace useLibraryFavorites() with React Query hook
- Replace useLibraryPagination() to extract from React Query response
- Replace useLibraryStatus() to use React Query status
- Update useLibraryActions() to use queryClient.refetchQueries()
- Maintain same interface for backward compatibility
- Migrates DashboardPage components automatically

Action 4.1.2.3.3 complete
2026-01-12 13:37:02 +01:00
senke
95565f4d96 state-ownership: audit components using library store domain data - found 2 DashboardPage components and storeSelectors utility 2026-01-11 18:21:08 +01:00
senke
8903dfcdae state-ownership: create React Query hooks for library items (useLibraryItems, useLibraryFavorites) 2026-01-11 18:19:52 +01:00
senke
45686bee1e state-ownership: audit library store domain data - identified 3 domain fields and 3 UI state fields 2026-01-11 18:18:45 +01:00
senke
18df75c906 state-ownership: audit track queries React Query usage - only comments/likes use React Query 2026-01-11 18:18:15 +01:00
senke
ae4a516083 state-ownership: update STATE_SELECTORS.md with correct auth store import path 2026-01-11 18:17:45 +01:00
senke
b5a1720fc8 state-ownership: update STATE_DEBUGGING.md to reflect current store structure (Action 4.6.1.7) 2026-01-11 18:04:42 +01:00
senke
2f7a30b97f state-ownership: remove obsolete state utilities (stateCleanup, stateVersioning, statePersistence) 2026-01-11 18:03:58 +01:00
senke
8b6b8afd6c state-ownership: create React Query hook for user (Action 4.1.1.1) 2026-01-11 17:43:07 +01:00
senke
243ab0518e error-propagation: integrate offline detection utility with error handler 2026-01-11 17:42:04 +01:00
senke
3b01f74637 error-propagation: add offline detection utility 2026-01-11 17:41:37 +01:00
senke
28766b1646 error-propagation: enhance network error detection to distinguish timeout, connection refused, and offline 2026-01-11 17:41:08 +01:00
senke
bfa02332e6 error-propagation: fix retry handlers and mark Action 3.4.1.3 complete 2026-01-11 17:40:21 +01:00
senke
d1303abbe3 error-propagation: implement retry for failed mutations (remaining handlers) 2026-01-11 17:39:51 +01:00
senke
3625618584 error-propagation: implement retry for failed mutations (ShareDialog, CommentSection) 2026-01-11 17:38:54 +01:00
senke
364d0c9cd0 error-propagation: implement retry for failed mutations (MarketplaceHome, RolesPage, SettingsPage) 2026-01-11 17:38:15 +01:00
senke
ed5c37b15a error-propagation: implement retry for failed mutations (AccountSettings) 2026-01-11 17:37:04 +01:00
senke
396df6b7e9 error-propagation: implement retry for failed mutations (Cart) 2026-01-11 17:36:33 +01:00
senke
afa93b6040 error-propagation: implement retry for failed mutations (ProfileForm, LibraryPage) 2026-01-11 17:35:38 +01:00
senke
5153cf9750 error-propagation: enhance error boundary logging for monitoring 2026-01-11 17:33:03 +01:00
senke
048ebe28ac error-propagation: update ErrorBoundary to use ErrorDisplay component 2026-01-11 17:32:25 +01:00
senke
f66ba62116 error-propagation: highlight form fields on validation errors 2026-01-11 17:31:12 +01:00
senke
9f5b5dc415 error-propagation: redirect to login on auth errors 2026-01-11 17:29:55 +01:00
senke
a9ba1fa2a3 error-propagation: integrate issue reporting with ErrorDisplay 2026-01-11 17:29:11 +01:00
senke
c007249b19 error-propagation: create support issue reporting utility 2026-01-11 17:27:45 +01:00
senke
6c848eeaf4 error-propagation: show offline indicator on network errors 2026-01-11 17:16:49 +01:00
senke
f2ff09d7e1 error-propagation: add getErrorCategory function for error categorization 2026-01-11 17:14:49 +01:00
senke
0dd2b0c9ae error-propagation: fix leftover toast.error in LibraryPage confirmBulkDelete 2026-01-11 17:13:00 +01:00
senke
dad2f59fa4 error-propagation: replace toast.error with ErrorDisplay in Cart component 2026-01-11 17:12:27 +01:00
senke
33030d3a5d error-propagation: replace toast.error with ErrorDisplay in AccountSettings 2026-01-11 17:11:51 +01:00
senke
d65d0da161 error-propagation: replace toast.error with ErrorDisplay in ProfileForm 2026-01-11 17:11:03 +01:00
senke
a433d7d2f4 error-propagation: replace toast.error with ErrorDisplay in ChatSidebar and CreateRoomDialog 2026-01-11 17:10:27 +01:00
senke
ab751971d0 error-propagation: replace toast.error with ErrorDisplay in SharePlaylistModal and AddCollaboratorModal 2026-01-11 17:08:58 +01:00
senke
a5a6e4a142 error-propagation: replace toast.error with ErrorDisplay in ShareDialog and CommentSection 2026-01-11 17:08:04 +01:00
senke
b69227f401 error-propagation: replace toast.error with ErrorDisplay in SettingsPage (query and mutation errors) 2026-01-11 17:07:02 +01:00
senke
b33bb1a4b0 error-propagation: replace toast.error with ErrorDisplay in RolesPage (query and mutation errors) 2026-01-11 17:06:30 +01:00
senke
f857bcd407 error-propagation: replace toast.error with ErrorDisplay in MarketplaceHome (query and mutation errors) 2026-01-11 17:05:54 +01:00
senke
4259a8faf6 error-propagation: replace toast.error and inline error with ErrorDisplay in TrackDetailPage 2026-01-11 17:05:23 +01:00
senke
c9fc6b2eda error-propagation: update PlaylistErrorBoundary to use ErrorDisplay component 2026-01-11 17:04:42 +01:00
senke
437119f0ec error-propagation: update PlayerError to use ErrorDisplay component 2026-01-11 17:03:55 +01:00
senke
94a0296664 error-propagation: fix AuthErrorMessage tests for ErrorDisplay integration 2026-01-11 17:03:00 +01:00
senke
d704eb98d3 error-propagation: update AuthErrorMessage to use ErrorDisplay component 2026-01-11 17:02:34 +01:00