- Created SpotifyContext for account management
* Add/remove Spotify accounts with email and display name
* Persistent storage to localStorage
* Automatic account activation when assigned to zone
- Implemented zone-to-account mapping system
* Each zone can be assigned a Spotify account
* Multiple zones can share one account
* Switching between sources preserves account assignment
- Enhanced ZoneCard component:
* Account selector dropdown when Spotify is selected
* Display account name/email under zone name
* Auto-select first account when switching to Spotify
* Green-tinted account dropdown for visual distinction
- Created SpotifyAccountManager component:
* Add new Spotify accounts with email and display name
* List all configured accounts
* Remove accounts (cleans up zone mappings)
* Collapsible form for adding new accounts
* Glassmorphic styling with green accent
- Updated Audio page:
* New 'Accounts' tab for Spotify account management
* Accessible alongside Zones, Radio, and Library tabs
* Smooth tab transitions with animations
- Architecture supports:
* Real Spotify API integration (ready for OAuth)
* Multiple accounts simultaneously
* Spotify Connect per account (one instance per account)
* Zone grouping with shared account control
- Build: 70 modules, 1.25 MB (345 KB gzipped)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Integrated MapLibre GL for professional maritime mapping
- Combined OSM base maps with OpenSeaMap layer for nautical overlays
* Seamarks, buoys, channels, and depth information
* Fully styled with MapLibre-compatible tiles
- Created NavigationMap component with:
* Real-time ship position marker with heading indicator
* Automatic centering and smooth flyTo animations
* Waypoint display with current waypoint highlighting
* Ship track visualization (last 500 points, dashed line)
* Route polyline showing waypoints
- Professional map controls:
* Zoom in/out buttons with smooth animations
* Center-on-ship button for quick navigation
* Info panel showing current position, heading, speed, distance
* Glassmorphic info panel with dark/light mode support
- Enhanced SignalK mock:
* Added trackPoints array to record ship movement
* Automatically maintains last 500 points for performance
* Integrated with map for visual track history
- Updated Navigation page to use new map
- Build: 68 modules, 1.24 MB (343 KB gzipped)
- Hot module reloading working smoothly
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Replace all ghcr.io images (blocked without auth) with local Dockerfiles:
snapserver/snapclient from debian:bookworm-slim,
mopidy from debian:bookworm-slim + Python/GStreamer,
librespot disabled in dev (v0.8.0 has vergen dep bug)
- Fix duplicate 'image' and 'version' keys in compose files
- Dev mode: zones + librespot use alpine dummy containers
- Dashboard dev: use upstream node:20-alpine directly (no custom build)
- Port changed to 8090 (8080 taken by Supabase)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>