senke
8e9ee2f3a5
fix: stabilize builds, tests, and lint across all stacks
...
Complete stabilization pass bringing all 3 stacks to green:
Frontend (apps/web/):
- Fix TypeScript nullability in useSeason.ts, useTimeOfDay.ts hooks
- Disable no-undef in ESLint config (TypeScript handles it; JSX misidentified)
- Rename 306 story imports from @storybook/react to @storybook/react-vite
- Fix conditional hook call in useMediaQuery.ts useIsTablet
- Move useQuery to top of LoginPage.tsx component
- Remove useless try/catch in GearFormModal.tsx
- Fix stale closure in ResetPasswordPage.tsx handleChange
- Make Storybook decorators (withRouter, withQueryClient, withToast, withAudio)
no-ops since global StorybookDecorator already provides these — prevents
nested Router / duplicate provider crashes in vitest-browser
- Fix nested MemoryRouter in 3 page stories (TrackDetail, PlaylistDetail, UserProfile)
- Update i18n initialization in test setup (await init before changeLanguage)
- Update ~30 test assertions from English to French to match i18n translations
- Update test assertions to match SUMI V3 design changes (shadow vs border)
- Fix remaining story type errors (PlayerError, PlaylistBatchActions,
TrackFilters, VirtualizedChatMessages)
Backend (veza-backend-api/):
- Fix response_test.go RespondWithAppError signature (2 args, not 3)
- Fix TestErrorContractAuthEndpoints expected error codes
(ErrCodeUnauthorized vs ErrCodeInvalidCredentials)
- Fix TestTrackHandler_GetTrackLikes_Success missing auth middleware setup
- Fix TestPlaybackAnalyticsService_GetTrackStats k-anonymity threshold
(needs 5 unique users, not 1)
- Replace NOW() PostgreSQL function with time.Now() parameter in marketplace
service for SQLite test compatibility
- Add missing AutoMigrate entries in marketplace_test.go
(ProductImage, ProductPreview, ProductLicense, ProductReview)
Results:
- Frontend TypeCheck: 617 errors -> 0 errors
- Frontend ESLint: 349 errors -> 0 errors
- Frontend Vitest: 196 failing tests -> 1 skipped (3396/3397 passing)
- Backend go vet: 1 error -> 0 errors
- Backend tests: 5 failing -> all 13 packages passing
- Rust: 150/150 tests passing (unchanged)
- Storybook audit: 0 errors across 1244 stories
Triage report: docs/TRIAGE_REPORT.md
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 16:48:07 +02:00
senke
a90b584e53
fix(security): protect admin routes with role check
...
Previously, any authenticated user could access /admin, /admin/moderation,
/admin/platform, /admin/transfers, and /admin/roles — the ProtectedRoute
only checked isAuthenticated, not role. Exposed the admin Command Center
UI to listeners/creators (critical security flaw).
Changes:
- ProtectedRoute accepts requireAdmin prop; redirects to /dashboard when
authenticated user lacks admin/super_admin role or is_admin=true
- New wrapAdminProtected() helper in routeConfig
- All /admin/* routes now use wrapAdminProtected
Note: Backend API still enforces admin checks independently — this fix
only prevents the UI from being shown to non-admins.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 16:19:16 +02:00
senke
9a4c0d2af4
feat(web): update all features, stories, e2e tests, and auth interceptor
...
Update auth, playlists, tracks, search, profile, dashboard, player,
settings, and social features. Add e2e audit specs for all major pages.
Update ESLint config, vitest config, and route configuration.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 19:16:36 +02:00
senke
dfeff836ce
feat(ui): add SUMI design system components, seasonal hooks, and i18n updates
...
Add SumiButton and SumiCanvas components with lavis ink wash aesthetic.
Add useSeason and useTimeOfDay hooks for time-aware UI tinting.
Update storybook config, UI components, locales (en/es/fr), and dependencies.
Add Chromatic CI workflow.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 19:15:54 +02:00
senke
4fd537e3ba
test(settings): add regression tests for all 20 Settings page bugs
...
- RadioGroup: mutual exclusion with div-wrapped items, shared name attr
- settingsSchema: playback field validation (Bug #5 )
- useAccountSettings: password error clears on input (Bug #17 ),
DELETE text validation (Bug #9 ), correct API endpoint (Bug #1 )
- useTwoFactorSetup: toast.success() not bare toast() (Bug #3 )
- Checkbox: no hardcoded "Checkbox" aria-label (Bug #11 )
- PreferenceSettings: timezone label is "Time Zone" (Bug #18 )
49 tests pass across 6 test files.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 00:24:24 +01:00
senke
6044b5aff1
fix(settings): fix password error persistence and audio quality clearable
...
- Wrap password state setters to auto-clear passwordError on input change,
so stale validation errors don't persist after user corrects the fields
- Add clearable prop to Select component (default true for back-compat)
- Pass clearable={false} to audio quality dropdown so users cannot clear
it to an empty/invalid state
Fixes: Settings bugs #17 , #20
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 23:43:45 +01:00
senke
d840414673
fix(settings): fix security and accessibility issues
...
- Add autoComplete attrs to password inputs (current-password, new-password)
to fix browser autofill warnings
- Add autoComplete="new-password" to delete dialog password input to
prevent browser from pre-filling password and leaking email to search bar
- Replace VAPID key env var name in user-facing error with generic message
- Remove hardcoded 'Checkbox' aria-label fallback from checkbox component;
let native label association provide accessible name instead
Fixes: Settings bugs #7 , #8 , #10 , #11 , #12 , #13
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 23:42:00 +01:00
senke
2309a6d7d5
fix(settings): fix toast crash, schema validation, radio group, and delete dialog
...
- Fix toast calls in useTwoFactorSetup.ts: use toast.success() instead
of direct toast() which crashes because the Proxy target is not callable
- Add playback field to settingsSchema.ts so Save Config validates correctly
- Refactor RadioGroup to use React Context instead of Children.map,
fixing mutual exclusion when items are wrapped in divs. Add name attr.
- Fix Delete Account dialog auto-closing without validation by using
custom footer with disabled confirm button when DELETE not typed
Fixes: Settings bugs #3 , #5 , #6 , #9
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 23:40:51 +01:00
senke
2efaa1432b
test: fix and improve unit tests across multiple features
...
Fix mocking issues, add missing test cases, and align tests with
current component APIs for analytics, chat, marketplace, player,
playlists, settings, tracks, and auth features.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 23:34:42 +01:00
senke
4247e2b76b
fix(ui): fix sidebar scrollbar visibility and tooltip width in collapsed mode
...
Add wrapperClassName prop to Tooltip for full-width layout in sidebar.
Hide scrollbar when sidebar is collapsed, show custom scrollbar when open.
Fix logout button gap in collapsed sidebar.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 23:34:17 +01:00
senke
441cb02233
fix(a11y): fix heading hierarchy h1→h3 gaps on 8 pages
...
Changed h3 section titles to h2 on pages where they directly follow the page h1:
- Library: empty state heading
- Queue: "Now Playing" + "Up Next"
- Search: discovery sections + results sections
- Profile: "About" + "Links"
- Sessions: card title
- Notifications: date group headers
Also: add 'api' binary to .gitignore
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 10:14:18 +01:00
senke
6dcbcb6e6a
fix: align API endpoints, fix visual overlaps, improve e2e tests
...
API alignment:
- Analytics: useAnalyticsView calls /creator/analytics/dashboard (real data)
- Chat: chatService uses /conversations + WS from backend token
- Dashboard: StatsSection uses real /dashboard API data
- Settings: suppress 2FA toast when endpoint unavailable
- Marketplace: seed uses 'active' status, admin follows all creators
Visual fixes (from pixel-perfect audit tests):
- Sidebar: min-h-0 on nav for proper flex scroll boundary
- TrackCard: increased action button spacing (gap-3, shrink-0)
- Register: flex-wrap on terms links to prevent overlap
- Discover: pb-36 for player bar clearance
E2E test improvements:
- helpers.ts: prepend CONFIG.baseURL for absolute URLs
- visual-helpers.ts: skip elements clipped by overflow or outside viewport
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 08:35:44 +01:00
senke
d177ead617
fix(ui): resolve 3 visual overlap bugs + fix e2e test base URLs
...
Visual fixes found by pixel-perfect audit tests:
- Sidebar: add pb-4 to nav to prevent Community/Settings overlap
- TrackCard: add pr-14 to action overlay to prevent play/more button overlap
- Layout: increase --main-offset-bottom to 9rem for player bar clearance
Test infra:
- Fix helpers.ts to prepend CONFIG.baseURL for @chromatic-com/playwright
compatibility (page.goto needs absolute URLs)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 02:53:47 +01:00
senke
6fad0ad68d
fix: stabilize frontend — 98 TS errors to 0, align API endpoints, optimize bundle
...
- Fix 98 TypeScript errors across 37 files:
- Service layer double-unwrapping (subscriptionService, distributionService, gearService)
- Self-referencing variables in SearchPageResults
- FeedView/ExploreView .posts→.items alignment
- useQueueSync Zustand subscribe API
- AdminAuditLogsView missing interface fields
- Toast proxy type, interceptor type narrowing
- 22 unused imports/variables removed
- 5 storybook mock data fixes
- Align frontend API calls with backend endpoints:
- Analytics: useAnalyticsView now calls /creator/analytics/dashboard (was /analytics)
- Chat: chatService uses /conversations (was mock data), WS URL from backend token
- Dashboard StatsSection: uses real /dashboard API data (was hardcoded zeros)
- Settings: suppress 2FA toast error when endpoint unavailable
- Fix marketplace products: seed uses 'active' status (was 'published')
- Enrich seed: admin follows all creators (feed has content)
- Optimize bundle: vendor catch-all 793KB→318KB gzip (-60%)
Split into vendor-charts, vendor-emoji, vendor-swagger, vendor-media, etc.
- Clean repo: remove ~100 orphaned screenshots, audit reports, logs from root
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 21:18:49 +01:00
senke
c5f13db195
feat: add pre-launch landing page at /launch
...
Frontend CI / test (push) Failing after 0s
Storybook Audit / Build & audit Storybook (push) Failing after 0s
Sumi-e ink wash aesthetic landing page with:
- Hero section with Talas branding and email capture
- Three value proposition cards (Open Hardware, Ethical Platform, Community)
- Condenser microphone product teaser
- Veza platform feature grid
- Bottom CTA with email subscription (POST /api/v1/newsletter/subscribe)
- Framer Motion scroll-triggered animations
- Fully responsive, accessible, public route (no auth required)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 19:13:20 +01:00
senke
fc58d89606
feat: UI components, services, utils, i18n, and routing
...
Update shared components (ComingSoon, SelectTrigger, AnnouncementBanner,
modals, social cards). Add usePatina hook. Refine API services, error
handling, query invalidation, state management. Update i18n strings
(en/fr/es). Update routing and app configuration.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 15:46:42 +01:00
senke
e0ca034daf
feat: design system, theme, and layout improvements
...
Update color tokens, motion, spacing, typography. Enhance ThemeProvider
and ThemeSwitcher. Refine layout components (Header, Sidebar, Navbar,
MobileBottomNav, DashboardLayout). CSS overhaul in index.css.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 15:44:37 +01:00
senke
4b57b46bac
feat: frontend improvements — UI polish, player bar, auth flow, i18n
...
- Header, Sidebar, Toast, Dropdown, EmptyState component refinements
- Auth flow: LoginPage, RegisterPage, AuthInput, AuthLayout improvements
- Player bar: glass effect, progress, track info, controls enhancements
- Dashboard, Discover, Search pages updates
- PlaylistCard, TrackCard component improvements
- Auth store and API interceptors hardening
- i18n: updated en/es/fr locale files
- CSS additions in index.css
- Package.json and vite config updates
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 11:35:44 +01:00
senke
d168bfd9e4
feat(v1.0.0-rc1): release candidate — GO/NO-GO audit, dark pattern fix, docs
...
TASK-RC-001: GO/NO-GO checklist with evidence (16/21 GO, 5 staging-dependent)
TASK-RC-002: Dark pattern audit — removed public play/like/follower counts
- TrackDetailPageCoverAndActions: stats visible only to creator
- TrackList: removed public play count column
- TrackSearchResults: removed play_count/like_count display
- UserCard: removed public follower count
- SearchPageResults: removed followers_count display
TASK-RC-003: Privacy policy (RGPD-compliant, docs/PRIVACY_POLICY.md)
TASK-RC-004: Discovery algorithm documentation (auditable, docs/DISCOVERY_ALGORITHM.md)
TASK-RC-005: Branch release ready (CI/CD validation pending)
TASK-RC-006: Re-pentest noted as optional/staging-dependent
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 16:23:18 +01:00
senke
2281c91e8b
feat(v0.13.5): polish marketplace & compliance — KYC, support, payout E2E
...
- Seller KYC via Stripe Identity (start verification, status check, webhook)
- Support ticket system (backend handler + frontend form page)
- E2E payout flow integration test (sale → payment → balance → payout)
- Migrations: seller_kyc columns, support_tickets table
- Frontend: SupportPage with SUMI design, lazy loading, routing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 14:57:19 +01:00
senke
8c0dd30685
feat(v0.13.2): consolidation design system — SUMI tokens, package, stories
...
TASK-DS-001: Migrated packages/design-system/ from legacy Kōdō to SUMI v2.0
- New src/ structure with proper TypeScript exports
- Component type registry documenting all 40+ UI components
- cn() utility re-export
- package.json with exports map for tokens subpaths
TASK-DS-002: Extracted design tokens as TypeScript objects
- tokens/colors.ts: backgrounds, surfaces, text, pigments, semantic, glass, shadows, light theme
- tokens/typography.ts: font families, sizes, weights, line heights, letter spacings
- tokens/spacing.ts: spacing scale, radius, z-index, layout
- tokens/motion.ts: durations and easing functions
TASK-DS-003: Added missing Storybook stories
- EmptyState.stories.tsx (8 variants: default, icon, action, search, sizes, card, centered)
- ButtonLoading.stories.tsx (6 variants: default, loading, text, destructive, outline, small)
- ContentFadeIn.stories.tsx (2 variants: default, card)
- DesignTokens.stories.tsx (visual token reference: pigments, backgrounds, text, typography, spacing, radius)
- Total: 42 → 46 stories for UI components + design token showcase
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 09:45:09 +01:00
senke
c0e2fe2e12
fix(v0.12.6.1): remediate remaining 15 MEDIUM + LOW pentest findings
...
MEDIUM-002: Remove manual X-Forwarded-For parsing in metrics_protection.go,
use c.ClientIP() only (respects SetTrustedProxies)
MEDIUM-003: Pin ClamAV Docker image to 1.4 across all compose files
MEDIUM-004: Add clampLimit(100) to 15+ handlers that parsed limit directly
MEDIUM-006: Remove unsafe-eval from CSP script-src on Swagger routes
MEDIUM-007: Pin all GitHub Actions to SHA in 11 workflow files
MEDIUM-008: Replace rabbitmq:3-management-alpine with rabbitmq:3-alpine in prod
MEDIUM-009: Add trial-already-used check in subscription service
MEDIUM-010: Add 60s periodic token re-validation to WebSocket connections
MEDIUM-011: Mask email in auth handler logs with maskEmail() helper
MEDIUM-012: Add k-anonymity threshold (k=5) to playback analytics stats
LOW-001: Align frontend password policy to 12 chars (matching backend)
LOW-003: Replace deprecated dotenv with dotenvy crate in Rust stream server
LOW-004: Enable xpack.security in Elasticsearch dev/local compose files
LOW-005: Accept context.Context in CleanupExpiredSessions instead of Background()
LOW-002: Noted — Hyperswitch version update deferred (requires payment integration tests)
29/30 findings remediated. 1 noted (LOW-002).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 06:13:38 +01:00
senke
e35f1c0e51
Merge branch 'feat/v0.12.5-pwa-mobile'
...
# Conflicts:
# VEZA_VERSIONS_ROADMAP.md
2026-03-11 23:05:01 +01:00
senke
66de8d6638
feat(v0.12.5): PWA enhancements — offline audio, responsive hooks, icons
...
- Service Worker: audio caching strategy for offline playback (cache-first)
- Service Worker: CACHE_AUDIO message for explicit track caching
- useMediaQuery hook with useIsMobile/useIsTablet/useIsDesktop helpers
- PWAUpdateBanner and OfflineBanner components (previously stubs)
- Missing notification icons: badge-72x72, checkmark, xmark
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 10:09:24 +01:00
senke
a54196f229
feat(v0.12.3): F276-F305 frontend education UI and routing
...
- EducationPage with 3 tabs: Catalog, My Courses, Certificates
- HLS.js video player integration for course lessons
- Course enrollment, progress tracking, and certificate display
- TypeScript types matching backend models
- API service layer for all education endpoints
- Lazy loading route configuration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 09:46:25 +01:00
senke
a8c985688a
feat(v0.12.2): F501-F510 frontend distribution dashboard UI
...
- Distribution types, API service, and page component
- Distributions list with platform-specific status badges
- External streaming revenue table with summary cards
- Platform icons and status colors for Spotify/Apple Music/Deezer
- ARIA labels for accessibility
- Lazy-loaded route at /distribution
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:54:45 +01:00
senke
341546d439
feat(v0.12.1): frontend subscription plans UI
...
- Add subscription types, service, and page component
- Pricing page with Free/Creator/Premium plan cards
- Monthly/yearly billing toggle (17% savings on yearly)
- Current subscription status display
- Cancel/reactivate subscription controls
- Invoice billing history table
- ARIA labels for accessibility
- Lazy-loaded route at /subscription
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:37:35 +01:00
senke
849c0e6cb8
feat(v0.12.0): F254-F255 frontend marketplace payout and balance UI
...
- Add seller balance/payout API methods to marketplaceService
- Add seller stats API methods (evolution, top products, sales)
- Add marketplace balance card to SellerDashboardView
- Add manual payout request button (min $100)
- Display auto-payout threshold info ($50 weekly)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 18:52:37 +01:00
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
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
7cd01e4216
feat(v0.10.5): Notifications complètes — F551-F555
...
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
F555: Backend pagination/filter GetNotifications (type, page, limit) + frontend pagination
F551: WebSocket real-time — backend inject chat hub, send on CreateNotification; frontend useChat invalidates
F553: Quiet hours — migration 132, CreateNotification skips push/WS, UI in PushPreferencesSection
F554: Notification grouping — migration 133, group_key/actor_count for like/comment, UI format
F552: Weekly digest — migration 134, NotificationDigestWorker, email template, prefs UI
Acceptance: no gamification notif; defaults unchanged; individual toggles for marketing
2026-03-10 10:02:21 +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
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
05467c1c2f
v0.9.7
2026-03-06 18:52:08 +01:00
senke
6a82959a96
feat(admin): add Settings tab with announcements, feature flags, maintenance
...
- Add SETTINGS tab to AdminDashboardTabs with AdminSettingsView
- Align moderation actions to backend: dismiss, warn, ban (replace cleared/quarantined)
2026-03-03 09:24:52 +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
122eff5c0f
feat(upload): batch upload with parallel queue, BatchUploader component
2026-02-25 13:37:52 +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
d1ae4a2768
feat(a11y): ARIA labels, aria-haspopup menu, icon button labels
2026-02-25 09:55:30 +01:00
senke
9b33f3283d
feat(settings): wire appearance controls to ThemeProvider and backend
2026-02-25 09:54:45 +01:00
senke
50482a01fd
feat(theme): extend ThemeProvider with contrast, density, accent, fontSize
2026-02-25 09:52:32 +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
c44b65da4b
feat(storybook): enhance ProductDetailView stories with Error state
2026-02-24 00:20:09 +01:00
senke
a3ad4d4764
feat(marketplace): add ProductDetailPage, lazy export, route /marketplace/products/:id
2026-02-24 00:17:39 +01:00
senke
c785e61e69
feat(v0.701): AdminTransfers page/route, MSW, stories, Deep Health, API ref, docs, scope v0.702
...
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
- Step 13: AdminTransfersPage, LazyAdminTransfers, route /admin/transfers
- Step 14: MSW handlers admin transfers
- Step 15: AdminTransfersView stories (Default, Empty, WithFailedTransfers, Error, Loading)
- Step 16-17: DeepHealth handler (disk, config), GET /health/deep
- Step 19: health_deep_test.go (4 tests)
- Step 20: docs/API_REFERENCE.md
- Step 21: Archive V0_604, MIGRATIONS.md migration 116
- Step 22: CHANGELOG, PROJECT_STATE, FEATURE_STATUS v0.701
- Step 23: RETROSPECTIVE_V0701, V0_702 placeholder, SCOPE_CONTROL, .cursorrules
- Step 24: Archive V0_701_RELEASE_SCOPE
- Fix: AdminTransfersView Select component (use options API)
2026-02-23 23:42:02 +01:00
senke
5835469ef2
test(seller): add MSW handler and story for transfers
2026-02-23 22:57:35 +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