No description
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> |
||
|---|---|---|
| .github | ||
| .husky | ||
| apps/web | ||
| chat_exports | ||
| config | ||
| dev-environment | ||
| docker/haproxy | ||
| docs | ||
| docs-assets/mermaid | ||
| fixtures | ||
| full_veza_audit_data | ||
| home/senke/git/talas/veza/apps/web/src | ||
| infra | ||
| k8s | ||
| loadtests | ||
| make | ||
| packages/design-system | ||
| prompts | ||
| proto | ||
| scripts | ||
| sub_task_agents | ||
| test-reports/20251226-132633 | ||
| tests | ||
| tmt | ||
| tools | ||
| veza-backend-api | ||
| veza-common | ||
| veza-docs | ||
| veza-stream-server | ||
| .cursorrules | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .lighthouserc.js | ||
| .nvmrc | ||
| audit-admin-desktop.png | ||
| audit-dashboard-desktop.png | ||
| audit-dashboard-mobile.png | ||
| audit-discover-desktop-1280.png | ||
| audit-discover-desktop.png | ||
| audit-discover-mobile-375.png | ||
| audit-favoris-not-found.png | ||
| audit-feed-desktop-1280.png | ||
| audit-feed-desktop.png | ||
| audit-feed-mobile-375-content.png | ||
| audit-feed-mobile-375.png | ||
| audit-launch-desktop-1280.png | ||
| audit-launch-mobile-375.png | ||
| audit-launch-mobile.png | ||
| audit-library-desktop-1280-artist.png | ||
| audit-library-desktop-1280-empty.png | ||
| audit-library-desktop-artist-content.png | ||
| audit-library-desktop.png | ||
| audit-marketplace-desktop.png | ||
| audit-playlist-detail-desktop.png | ||
| audit-playlist-detail-mobile-375.png | ||
| audit-playlists-desktop-1280-empty.png | ||
| audit-playlists-desktop.png | ||
| audit-playlists-mobile-375.png | ||
| audit-profile-desktop-1280.png | ||
| audit-profile-desktop-fixed.png | ||
| audit-profile-mobile-375-fixed.png | ||
| audit-profile-mobile-375.png | ||
| audit-profile-playlists-tab.png | ||
| audit-profile-reposts-tab.png | ||
| audit-profile-tablet-768.png | ||
| audit-queue-desktop-1280-empty.png | ||
| audit-queue-desktop-1280-with-tracks.png | ||
| audit-queue-desktop.png | ||
| audit-queue-mobile-375-fixed.png | ||
| audit-queue-mobile-375.png | ||
| audit-queue-save-modal.png | ||
| audit-queue-tablet-768.png | ||
| audit-search-crash-luna.png | ||
| audit-search-desktop-1280-empty.png | ||
| audit-search-desktop.png | ||
| audit-search-mobile-375.png | ||
| audit-settings-desktop.png | ||
| audit-shared-playlist-fixed-desktop.png | ||
| audit-shared-playlist-fixed-mobile-375.png | ||
| audit-shared-playlist-notfound-with-valid-token.png | ||
| audit-social-desktop.png | ||
| audit-track-detail-desktop.png | ||
| audit-verify-email-bug04-resend-success-in-error-container.png | ||
| audit-verify-email-fixed-resend-success.png | ||
| audit-verify-email-mobile-375.png | ||
| audit-verify-email-no-token-desktop.png | ||
| audit-verify-email-tablet-768.png | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| CONTRIBUTING.md | ||
| docker-compose.dev.yml | ||
| docker-compose.env.example | ||
| docker-compose.override.yml.example | ||
| docker-compose.prod.yml | ||
| docker-compose.staging.yml | ||
| docker-compose.test.yml | ||
| docker-compose.yml | ||
| env.remote-r720.example | ||
| gen_hash.py | ||
| generate_page_fix_prompts.sh | ||
| go.work | ||
| go.work.sum | ||
| Makefile | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| RELEASE_NOTES_V1.md | ||
| run-audit.sh | ||
| rust-toolchain.toml | ||
| start_iteration.sh | ||
| start_mvp.sh | ||
| start_recovery.sh | ||
| status.sh | ||
| test_mvp_endpoints.sh | ||
| test_protected_endpoints.sh | ||
| test_user_journey.sh | ||
| turbo.json | ||
| Untitled | ||
| validate_v0101.sh | ||
| verify_logs_setup.sh | ||
| VERSION | ||
| VEZA_VERSIONS_ROADMAP.md | ||
Veza Monorepo
Version cible : v0.101 (stabilisation en cours). Voir docs/V0_101_RELEASE_SCOPE.md pour le périmètre.
Project Structure
apps/web: The main frontend application (React + Vite). This is the single source of truth for the UI.veza-desktop: A thin Electron wrapper that loadsapps/web. It creates the native desktop experience.veza-backend-api: Main Go API service.veza-stream-server: Rust streaming server.veza-chat-server: Rust chat server.
Development Setup (v0.9.3)
Prerequisites: Node 20 (see .nvmrc), Go, Rust, Docker. Configure .env from .env.example.
# Verify environment
make doctor
./scripts/validate-env.sh development
# Install dependencies
make install-deps
# Option A — Backend in Docker + Web local
make dev
# Option B — All apps local with hot reload (infra from docker-compose.dev.yml)
make dev-full
# Option C — Infra only, then run services manually
docker compose -f docker-compose.dev.yml up -d
make dev-web # or make dev-backend-api, make dev-stream-server
See docs/ENV_VARIABLES.md for required variables. make build builds all services.
Quick Start
Frontend
cd apps/web
npm install
npm run dev
Desktop (Optional)
Requires apps/web to be running.
cd veza-desktop
npm install
npm run dev
Docker Production
Canonical production compose file: docker-compose.prod.yml
docker compose -f docker-compose.prod.yml up -d
Deprecated (use docker-compose.prod.yml):
docker-compose.production.yml— legacy, may be removedconfig/docker/docker-compose.production.yml— legacy config
See make/config.mk for COMPOSE_PROD and deployment docs.
CI/CD
- Badge : CI status above. Set
SLACK_WEBHOOK_URL(Incoming Webhook) in repo secrets to receive Slack notifications on failure.
Documentation
- Developer Onboarding — Setup, architecture, conventions, troubleshooting
- Documentation index — Index complet de la documentation
- See
docs/for detailed architecture and development guides. Older audits and reports are archived indocs/archive/.