Commit Graph

5 Commits

Author SHA1 Message Date
Mistral Vibe
9617946d10 feat: optimize development tasks for better workflow and reduced Docker overhead
- Streamlined task structure with clear recommendations
- Added dev:up as main development task (replaces dev:full)
- Added dev:build for explicit container building
- Improved cleanup tasks:
  - dev:clean: Safe cleanup preserving network/proxy
  - dev:nuke: Full cleanup when network is corrupted
- Added dev:restart for quick service restart
- Added help task with clear task documentation
- Removed redundant/conflicting tasks

Benefits:
-  Reduced Docker download overhead (smart building)
-  Preserved network/proxy configuration (safe cleanup)
-  Simpler, more intuitive workflow
-  Clear task recommendations
-  Better separation of concerns between tasks

Usage:
- task dev:up          # Start development (recommended)
- task dev:build        # Build containers (when dependencies change)
- task dev:clean        # Safe cleanup
- task dev:nuke         # Full cleanup (when network issues occur)
2026-04-08 15:35:13 +02:00
Mistral Vibe
4af013c928 fix: improve development environment and audio debugging
- Fix docker-compose.dev.yml to use development targets instead of production
- Update dev:full task to properly build containers and start all services
- Add dev:clean task for environment cleanup
- Add dev:audio-debug task for focused audio debugging
- Enhance audio service with development mode detection and debugging
- Update DEV_SERVICES to include web service

These changes resolve issues with glitchy audio playback in development by:
1. Using proper development targets with hot reload
2. Ensuring proper build steps before starting services
3. Adding debugging capabilities for audio issues
4. Providing better development environment management
2026-04-08 15:28:05 +02:00
Mistral Vibe
887c1c62db feat: add dev:full task to start complete development server with logs 2026-04-08 15:21:38 +02:00
Mistral Vibe
16bfdd2e90 Move band management into dedicated settings pages
- Add BandSettingsPage (/bands/:id/settings/:panel) with Members,
  Storage, and Band Settings panels matching the mockup design
- Strip members list, invite controls, and NC folder config from
  BandPage — library view now focuses purely on recordings workflow
- Add band-scoped nav section to AppShell sidebar (Members, Storage,
  Band Settings) with correct per-panel active states
- Fix amAdmin bug: was checking if any member is admin; now correctly
  checks if the current user holds the admin role
- Add 31 vitest tests covering BandPage cleanliness, routing, access
  control (admin vs member), and per-panel mutation behaviour
- Add test:web, test:api:unit, test:feature (post-feature pipeline),
  and ci tasks to Taskfile; frontend tests run via podman node:20-alpine
- Add README with architecture overview, setup guide, and test docs
- Add @testing-library/dom and @testing-library/jest-dom to package.json

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 14:55:10 +02:00
Mistral Vibe
cd1d098ca4 fix: avatar stale state, nginx intercept, and dev tooling
Frontend (SettingsPage):
- Sync avatarUrl state via useEffect when me.avatar_url changes after
  background refetch, so profile section never shows stale avatar
- Invalidate ["comments"] after upload/generate/remove so SongPage
  comment avatars update immediately instead of waiting for staleTime
- Fix Remove button: was sending avatar_url: undefined which JSON.stringify
  drops entirely, so the server never cleared it; now sends ""

nginx:
- Change /api/ and /ws/ locations to use ^~ prefix so the static-asset
  regex rule (~* \.(png|svg|ico)$) cannot intercept API paths; PNG/SVG
  avatar uploads were returning 404 from nginx in production
- Merge nc-scan 300s timeout into ^~ /api/v1/bands/ block
- Add client_max_body_size 10m (default 1MB was silently rejecting
  uploads before they reached FastAPI)

Dev tooling:
- Add docker-compose.dev.yml for hot-reload development workflow
- Add Taskfile.yml with dev, test, lint, migrate, and shell tasks

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 20:41:32 +02:00