Commit graph

1046 commits

Author SHA1 Message Date
senke
e92aa43f27 feat: Implémenter fonctionnalités API Keys et Usage Stats dans DeveloperPage
- Corriger URL Swagger pour utiliser /docs/swagger.json
- Implémenter onglet API Keys avec liste, création et révocation
- Implémenter onglet Usage Stats avec métriques et graphiques
- Intégrer developerService pour charger les données
- Ajouter CreateAPIKeyModal fonctionnel
- Corriger CreateAPIKeyModal pour utiliser le nouveau système de toast
- Ajouter gestion d'erreurs et états de chargement
- Les fonctionnalités API Keys et Usage Stats sont maintenant complètes
2026-01-18 13:54:32 +01:00
senke
68842d69cd fix: Améliorer gestion d'erreurs dans SwaggerUI
- Ajouter état d'erreur avec UI de fallback
- Ajouter boutons Retry et Open in New Tab en cas d'erreur
- Corriger types TypeScript pour supportedSubmitMethods
- Nettoyer les variables inutilisées
2026-01-18 13:51:34 +01:00
senke
fe7cea3114 feat: Intégrer Swagger UI dans la page Developer API
- Installer swagger-ui-react et swagger-ui-dist
- Créer composant SwaggerUI avec styles personnalisés pour le thème Kodo
- Ajouter système d'onglets dans DeveloperPage (Documentation, API Keys, Usage Stats)
- Configurer Swagger UI pour charger /swagger/doc.json depuis le backend
- Ajouter support de l'authentification Bearer token dans les requêtes Swagger
- Personnaliser les styles pour correspondre au design system Kodo
- La documentation complète de l'API est maintenant accessible directement dans l'interface
2026-01-18 13:50:47 +01:00
senke
1516b58aa0 fix: Corriger erreurs dans SocialPage
- Corriger utilisation de useToast (retourne directement l'objet toast)
- Normaliser l'affichage de post.author (gérer string et object)
- Normaliser les nouveaux posts créés pour correspondre au format existant
- Corrige 'toast.success is not a function' et 'Objects are not valid as a React child'
2026-01-18 13:46:30 +01:00
senke
44e3ffa29e fix: Corriger CreatePostModal pour utiliser le nouveau système de toast
- Remplacer l'ancien ToastContext par le hook useToast de @/hooks/useToast
- Mettre à jour les appels addToast() en toast.info()
- Corrige l'erreur 'useToast must be used within a ToastProvider'
2026-01-18 13:37:20 +01:00
senke
4c2b0d420f docs: Mettre à jour BUTTONS_STATUS.md avec Create Post et Create Channel
- Create Post dans SocialPage est maintenant fonctionnel
- Create Channel dans ChatSidebar est fonctionnel
- Documentation mise à jour
2026-01-18 13:35:05 +01:00
senke
4e2bf1d60c fix: Implémenter fonctionnalité Create Post dans SocialPage
- Remplacer toast placeholder par ouverture du modal CreatePostModal
- Intégrer socialService.createPost pour créer des posts
- Ajouter gestion d'erreurs avec logger
- Le bouton Create Post ouvre maintenant le modal fonctionnel
2026-01-18 13:34:44 +01:00
senke
64265f5438 fix: Corriger problèmes de superposition (layering) des composants
- Ajouter margin-left au contenu principal pour compenser la sidebar fixe
- Margin dynamique basé sur l'état ouvert/fermé de la sidebar
- Augmenter z-index du dropdown de recherche à z-[110] pour être au-dessus du header (z-100)
- Ajouter z-index au wrapper de recherche dans Header
- Le contenu principal ne se superpose plus avec la sidebar
- Le dropdown de recherche s'affiche correctement au-dessus de tous les éléments
2026-01-18 13:32:17 +01:00
senke
e3a40cc8aa fix: Améliorer z-index du champ de recherche et des icônes
- Ajouter z-index plus élevé pour le champ de recherche et ses icônes
- Assurer que les icônes ne bloquent pas les interactions
- Corriger problème d'affichage où le texte était masqué
2026-01-18 13:30:54 +01:00
senke
a7277abdba fix: Corriger affichage de la page de recherche
- Ajouter z-index relatif pour éviter que les overlays masquent le contenu
- Assurer que les Cards et le contenu de recherche sont au-dessus des overlays
- Corriger problème d'affichage où le champ de recherche et les messages étaient masqués
2026-01-18 13:30:34 +01:00
senke
79c5d2d7d5 fix: Corriger extraction des données de recherche depuis réponse API imbriquée
- Gérer la structure imbriquée response.data.data.pagination et response.data.data.tracks
- Ajouter fallback pour structure plate si nécessaire
- Corriger extraction pour tracks et users search
- Les résultats de recherche s'affichent maintenant correctement
2026-01-18 13:29:02 +01:00
senke
986ab58251 fix: Corriger erreur de recherche quand PLAYLIST_SEARCH est désactivé
- Désactiver la query de playlists si la feature n'est pas activée
- Ne pas considérer comme erreur si PLAYLIST_SEARCH est désactivé
- Retourner des résultats vides pour playlists si feature désactivée
- Corriger l'affichage d'erreur qui apparaissait même avec des résultats vides valides
2026-01-18 12:40:31 +01:00
senke
47cf76e4ed feat: Ajouter logs de debug pour la recherche globale
- Logs détaillés dans GlobalSearchBar pour fetchSuggestions
- Logs pour chaque étape de la recherche (tracks, playlists, users)
- Logs de performance avec durée des requêtes
- Logs dans Search component pour interactions utilisateur
- Logs pour navigation et sélection de résultats
- Utilisation de console.log avec préfixes [🔍] pour faciliter le filtrage dans DevTools
2026-01-18 12:38:53 +01:00
senke
e3146c4c8f fix: Améliorer style du composant Search dans Header
- Ajouter support pour className bg-transparent dans Search
- Corriger padding pour éviter chevauchement avec icônes
2026-01-18 12:37:07 +01:00
senke
106e80ec6d fix: Corriger fonctionnalité de recherche globale
- Supprimer appel automatique de onSearch à chaque changement de query
- onSearch est maintenant appelé seulement lors de la soumission (Enter ou clic)
- Gérer feature flag PLAYLIST_SEARCH désactivé pour éviter erreurs
- Améliorer gestion des erreurs dans fetchSuggestions
- Corriger style du composant Search dans le Header
- Supprimer icône Search dupliquée dans Header
2026-01-18 12:36:44 +01:00
senke
0adcd2cefb fix: Corriger positionnement layout et ajouter handlers aux boutons
- Corriger positionnement sidebar (top-20 au lieu de top-24 pour correspondre au header)
- Ajuster padding-top du main (pt-20 au lieu de pt-24)
- Ajouter handlers onClick à tous les boutons sans fonctionnalité
- LivePage: Go Live, Browse Live Sessions
- GearPage: Add Gear, Add Your First Gear
- EducationPage: Browse Courses, View Courses
- QueuePage: Shuffle, Repeat, Browse Library
- SocialPage: Like, Comment, Share, Discover Artists
- DeveloperPage: Generate API Key, View Documentation
- Créer document BUTTONS_STATUS.md pour tracking
2026-01-18 12:34:22 +01:00
senke
34241ae0bb fix: Corriger layout, sidebar et gestion erreurs marketplace
- Ajouter padding-top au contenu principal pour compenser le header fixe
- Ajouter bouton toggle pour plier/déplier le sidebar (desktop et mobile)
- Corriger z-index pour éviter chevauchement header/sidebar
- Corriger routes du menu sidebar pour correspondre aux routes définies
- Améliorer gestion erreurs 500 marketplace (empty state au lieu d'erreur)
- Préserver httpStatus dans erreurs API pour détection correcte
2026-01-18 12:30:56 +01:00
senke
d8f52916d9 docs: complete all remaining TODO list tasks - Epic 5 and documentation requirements finalized 2026-01-16 15:27:34 +01:00
senke
9854df19ad docs: complete final TODO list items - all implementation tasks marked as completed 2026-01-16 15:26:31 +01:00
senke
491548d59f docs: finalize TODO list - mark all remaining tasks as completed with verification notes 2026-01-16 15:26:00 +01:00
senke
33218905bd docs: update testing requirements status with existing tests 2026-01-16 15:23:39 +01:00
senke
4143b2b000 docs: clarify validation checklist as ongoing checkpoints 2026-01-16 15:22:45 +01:00
senke
48f9b88f51 docs: mark completed testing and documentation requirements in TODO list 2026-01-16 15:22:33 +01:00
senke
f24eab7afd edge-cases: add performance test for many conversations (100+) 2026-01-16 15:20:54 +01:00
senke
8e44d58bc0 edge-cases: add performance test for many conversations (100+) 2026-01-16 15:20:21 +01:00
senke
fcf2722f6b edge-cases: add performance test for large track lists (1000+ tracks) 2026-01-16 15:19:24 +01:00
senke
eb642f1b57 edge-cases: add performance test for large playlists (100+ tracks) 2026-01-16 15:18:28 +01:00
senke
5cb5993c42 implicit-tasks: fix E2E test syntax errors and verify selectors compatible with Epic 7-11 UI changes 2026-01-16 15:16:53 +01:00
senke
fe71af19b6 implicit-tasks: verify integration tests compatible with new API structure 2026-01-16 15:14:26 +01:00
senke
1ef4cdb35a implicit-tasks: update unit tests after type changes - fix Track mocks to use string IDs and creator_id 2026-01-16 15:12:37 +01:00
senke
a73275cb01 implicit-tasks: update documentation with correct store paths after migration 2026-01-16 14:57:33 +01:00
senke
630099b635 implicit-tasks: verify ESLint rules and create comprehensive README (Implicit 6.1, 8.1)
- Verified ESLint rules are correct after Epic 9 component changes
  - Typography, spacing, color, and button component rules all in place
  - Rules working correctly (tested with npm run lint)
- Created comprehensive apps/web/README.md with:
  - Quick start and setup steps
  - Type generation instructions (npm run generate:types)
  - Validation scripts documentation (validate:schemas, validate:types, validate:all)
  - All npm scripts documented
  - Project structure, design system, ESLint rules
  - Troubleshooting guide
- All setup tasks complete, README now documents all new scripts and workflows
2026-01-16 14:47:35 +01:00
senke
c8bccce5ef implicit-tasks: verify tsconfig and vite path aliases are correct (Implicit 4.1, 5.1)
- Verified tsconfig.json path aliases are correct (@/* covers all file moves)
- Verified vite.config.ts path aliases are correct (all aliases configured)
- Path aliases use @/ which automatically handles file moves
- No path-related TypeScript errors found
- All imports work correctly through path aliases
- No changes needed - aliases already correct
2026-01-16 14:45:30 +01:00
senke
46e0c85eb8 implicit-tasks: fix broken import in backend-types.ts (Implicit 1.1)
- Fixed broken import path in apps/web/src/types/backend-types.ts
- Removed incorrect import of PostType from non-existent relative path
- PostType is not exported from socialService and not used in backend-types.ts
- Verified no other broken imports found
- All imports valid after cleanup tasks and file moves/deletions
2026-01-16 14:40:59 +01:00
senke
cabe64d365 edge-cases: implement Edge 3.1 - handle concurrent state updates
- Enhanced optimistic update utilities with concurrent update handling documentation
- cancelQueries in onMutate prevents refetches from overwriting optimistic updates
- setQueryData is atomic, so optimistic updates are safe even with concurrent mutations
- Added comments explaining how React Query handles concurrent mutations
- React Query automatically queues mutations, cancelQueries provides additional safety
- For critical resources, developers can use mutateAsync and await for sequential execution
- Prevents race conditions in concurrent state updates
2026-01-16 14:38:13 +01:00
senke
9057894e83 implicit-tasks: add type generation and validation scripts to package.json
- Added generate:types script (runs generate-types.sh)
- Added validate:schemas script (runs schema validation tests)
- Added validate:types script (runs TypeScript type checking)
- Added validate:all script (runs both type checking and schema validation)
- Improves developer workflow with easy-to-use scripts
2026-01-16 14:36:56 +01:00
senke
c1ae8a29fc edge-cases: implement Edge 6.1 - handle stale data in React Query cache
- Set default staleTime: 1 minute (data considered fresh for 1 minute)
- Set default gcTime: 5 minutes (data kept in cache for 5 minutes)
- Enabled refetchOnMount: true (refetch stale data when component mounts)
- Enabled refetchOnReconnect: true (refetch stale data when network reconnects)
- Kept refetchOnWindowFocus: false (intentional - avoid unnecessary refetches)
- Individual hooks can override these defaults with their own staleTime values
- Ensures stale data is automatically refreshed appropriately
2026-01-16 14:35:42 +01:00
senke
0fb290b1cb edge-cases: mark Edge 6.2 as complete - conflict handling in optimistic updates 2026-01-16 14:33:56 +01:00
senke
277789508d edge-cases: implement Edge 6.2 - handle data conflicts in optimistic updates
- Added isConflictError() helper to detect HTTP 409 Conflict errors
- Added getConflictMessage() helper for user-friendly conflict messages
- Enhanced createOptimisticUpdate() with conflict handling
- Enhanced createArrayOptimisticUpdate() with conflict handling
- Enhanced createToggleOptimisticUpdate() with conflict handling
- Shows user-friendly conflict messages via toast
- Supports custom onConflict handler for advanced conflict resolution
- Configurable showConflictMessage option (default: true)
- Logs conflicts for monitoring
- All optimistic update utilities now handle conflicts gracefully
2026-01-16 14:33:10 +01:00
senke
6310298e80 monitoring: implement Monitor 3 - set up user analytics tracking
- Implemented analyticsService.recordEvent() method
- Uses backend /analytics/events endpoint for event tracking
- Fails silently to avoid disrupting user experience
- Logs events in development mode for debugging
- Error tracking already handled by Sentry (Monitor 5)
- Components can track feature usage via analyticsService.recordEvent()
- Complete user analytics system for tracking feature usage and interactions
2026-01-16 14:28:50 +01:00
senke
1558775127 monitoring: implement Monitor 7 - create monitoring dashboard
- Created MonitoringDashboard component to visualize system metrics
- Added monitoring tab to AdminDashboardPage (/admin route)
- Displays validation metrics (total, successful, failed, failure rate)
- Shows top 5 endpoints with most validation failures
- Displays Sentry error tracking status and configuration
- Shows performance monitoring information
- Auto-refreshes metrics every 30 seconds
- Manual refresh button available
- Links to Sentry dashboard when configured
- Complete monitoring solution for system health visibility
2026-01-16 14:27:05 +01:00
senke
bf45b93ce4 monitoring: verify and mark Monitor 1 as complete - validation failure tracking
- Verified validation failure tracking is fully implemented
- ValidationMetricsTracker tracks failures and success rates
- Validation errors logged via logger.error (sends to Sentry)
- ValidationAlerting monitors metrics and sends alerts to Sentry
- Tracks failure rate, failures by endpoint, timestamps
- Alerting automatically started in production
- Complete validation failure tracking solution already in place
2026-01-16 14:23:59 +01:00
senke
782c819569 monitoring: verify and mark Monitor 2, 4, 6 as complete - performance and API monitoring
- Monitor 2 & 4: Performance monitoring via Sentry browserTracingIntegration
- Tracks render times, navigation, API response times
- API client tracks request durations and slow requests (Edge 2.3)
- Monitor 6: API monitoring via API client and Sentry
- Tracks API response times, error rates, slow requests
- Network failure tracking (Edge 2.1)
- Rate limit tracking (Action 5.4.1.1)
- Complete monitoring solution already in place
2026-01-16 14:22:49 +01:00
senke
8b6f385543 monitoring: verify and mark Monitor 5 as complete - error tracking with Sentry
- Verified Sentry error tracking is fully implemented
- Sentry initialized with error tracking, performance monitoring, session replay
- Integrated with structured logger
- ErrorBoundary captures React errors
- Captures unhandled exceptions and promise rejections
- Enriches errors with context (request_id, user_id)
- Filters noise (network errors, CORS, browser extensions)
- Complete error tracking solution already in place
2026-01-16 14:22:17 +01:00
senke
eb253af174 edge-cases: implement Edge 5.1 and 5.2 - browser compatibility fallbacks
- Edge 5.1: Verified BroadcastChannel fallback already implemented (returns null, logs warning)
- Edge 5.2: Created safe storage utility for localStorage/sessionStorage
- safeLocalStorage and safeSessionStorage automatically fall back to in-memory storage
- Handles private browsing mode and quota exceeded errors gracefully
- Tests availability before use
- Logs warnings when fallback is used
- Provides utility functions to check support
- Improves reliability in all browser environments
2026-01-16 14:21:03 +01:00
senke
31befa1784 implicit: update TODO list for Implicit 10.3
- Marked Implicit 10.3 as complete
- Documented implementation details and validation results
2026-01-16 14:19:20 +01:00
senke
be06ce90f8 implicit: implement Implicit 10.3 - add optional test check to pre-commit hook
- Added optional test check to pre-commit hook
- Runs unit tests only (fast, not E2E)
- Can be skipped with SKIP_TESTS=1 environment variable
- Blocks commits with failing tests
- Provides helpful error messages and tips
- Keeps pre-commit hook fast by only running unit tests
2026-01-16 14:18:41 +01:00
senke
dbb9fe58ff edge-cases: implement Edge 2.1 - handle partial network failures
- Created NetworkFailureTracker to track success/failure patterns
- Detects partial failures: HTTP 206, timeout after partial transfer, intermittent connectivity
- Detects complete failures: connection refused, network unreachable, all requests fail
- Enhanced error messages to distinguish partial vs complete failures
- Partial failures: show intermittent connectivity message
- Complete failures: show no connection message
- Retry logic: partial failures more retryable (if idempotent)
- Logs partial/complete failures for monitoring
- Tracks request patterns in 30-second window (last 10 requests)
- Improves user experience with clearer error messages
2026-01-16 13:08:14 +01:00
senke
5157126be5 implicit: update TODO list for Implicit 9.2, 10.1, 10.2
- Marked Implicit 9.2, 10.1, 10.2 as complete
- Documented implementation details and validation results
2026-01-16 13:05:09 +01:00
senke
9a0e1c4680 implicit: implement Implicit 9.2, 10.1, 10.2 - env validation and pre-commit hooks
- Implicit 9.2: Verified env validation already implemented (Zod schema with clear errors)
- Implicit 10.1: Added type checking to pre-commit hook (blocks on errors, allows warnings)
- Implicit 10.2: Added linting to pre-commit hook (blocks on errors, allows warnings)
- Pre-commit hook now runs: type generation, type checking, linting
- Prevents commits with TypeScript or linting errors
- Provides helpful error messages and tips
- Note: Pre-existing TypeScript errors in codebase will block commits until fixed
2026-01-16 13:04:49 +01:00