Commit Graph
1364 Commits
Author SHA1 Message Date
vicrodh 186a249c45 fix(TagEditor): use selected result object instead of just ID
- Store full RemoteAlbumSearchResult instead of provider_id only
- Apply uses provider from selected result, not from dropdown
- Prevents mismatch when user changes provider after searching
2026-01-26 20:31:59 -06:00
vicrodh e0d2439f56 fix: correct Discogs adapter to use extended search result
- Remove duplicate discogs_release_to_search_result function
- Use existing discogs_extended_to_search_result which properly maps:
  year, country, label, catno, format
- MusicBrainz already maps label_info with catalog_number
2026-01-26 20:30:11 -06:00
vicrodh fd08dc8f2c feat(TagEditor): add track count and descriptive result status
Backend:
- Add media/track-count fields to MusicBrainz ReleaseResult model
- Extract track_count and format from search results

Frontend:
- Show "{n} results" or "No results, try different search"
- Auto-expand results panel when search returns data
- Track hasSearched state for proper status display
2026-01-26 20:14:33 -06:00
vicrodh 2c8efa64c7 feat(TagEditor): horizontal scroll cards for remote results
- Results now scroll horizontally with snap behavior
- Each card is 50% width (min 200px) showing:
  - Title (up to 2 lines)
  - Artist
  - Details pills: year, track count, country, format
  - Label + catalog number at bottom
- Cards have better visual hierarchy with background
- More metadata visible to identify editions/re-releases
2026-01-26 20:04:35 -06:00
vicrodh 62defcffc0 feat(TagEditor): compact UI for smaller screens
- Reduce track row height (44px → 36px) and cell padding
- Input focus: underline indicator instead of pill style
- Remote section: inline header with provider/search/chevron
- Results: 2-column grid layout, max-height 140px
- Simplify result items (title, artist, year+country)
- Reduce overall gaps and spacing
- Show results count badge on chevron toggle
2026-01-26 19:58:45 -06:00
vicrodh b5698fbf88 fix: resolve 500 error from invalid JSX and wrong import
- Remove invalid React/JSX component (CopyableCommand) from SettingsView
- Replace JSX usage with proper Svelte 5 markup
- Fix import: use openUrl instead of open from plugin-opener
2026-01-26 19:40:25 -06:00
vicrodh 328fb77464 fix(TagEditor): remove stray indentation from style tag
The style tag was indented with 2 spaces, causing PostCSS to fail
parsing (it saw JavaScript as CSS). Svelte requires the style tag
to be at root level with no indentation.
2026-01-26 19:29:41 -06:00
vicrodh dddb4d4fd1 fix: resolve type mismatches and add Phase 6 polish
- Fix RemoteTrackMetadata field types (disc_number, track_number as u8)
- Fix RemoteAlbumMetadata fields (genres, tracks as Vec, disc_count as u8)
- Fix cache method calls (async, proper signatures)
- Fix error variant construction (ProviderUnavailable, InvalidProviderId)
- Add track count mismatch warning in UI
- Add rate limit error message handling
- Add 'Open in browser' button for selected result
2026-01-26 18:55:05 -06:00
vicrodh 9dd63e106b feat(TagEditor): add remote metadata lookup UI
Phase 5 of service integration:
- Add MusicBrainz/Discogs provider selector
- Add search functionality with results display
- Add apply-to-form button to populate fields
- Include track-level metadata application
- Collapsible panel to keep UI clean
2026-01-26 18:48:46 -06:00
vicrodh 6d20baf914 feat: add remote metadata service and Tauri commands
Phase 4 of service integration:
- Add provider adapters (MusicBrainz, Discogs to unified DTOs)
- Add RemoteMetadataState with search_albums and get_album_metadata
- Create remote_metadata commands module with Tauri handlers
- Wire up state and commands in lib.rs

Available commands:
- remote_metadata_search: Search albums on MusicBrainz or Discogs
- remote_metadata_get_album: Get full album metadata with tracks
- remote_metadata_cache_stats: Get cache statistics
- remote_metadata_clear_cache: Clear the in-memory cache
2026-01-26 18:46:29 -06:00
vicrodh 25e877181a discogs: add search_releases and get_release_metadata methods
Phase 3 of service integration:
- Add DiscogsReleaseMetadata struct with full album info
- Add DiscogsArtist, DiscogsLabel, DiscogsTrack structs
- Add DiscogsSearchResultExtended for detailed search results
- Add search_releases() for release search with extended metadata
- Add get_release_metadata() for full release with tracklist
2026-01-26 18:42:41 -06:00
vicrodh b8340ad6c7 musicbrainz: add get_release_with_tracks with media/tracks support
- Add ReleaseFullResponse model with media, tracks, and tags
- Add Medium, MediumTrack, TrackRecording, Tag models
- Add get_release_with_tracks() for fetching full release details
- Add search_releases_extended() with configurable limit and catalog number
- Export new types from module
2026-01-26 18:39:47 -06:00
vicrodh 70df504af3 library: add remote_metadata module structure and unified DTOs
- Add RemoteProvider enum (MusicBrainz, Discogs)
- Add RemoteAlbumSearchResult for lightweight search results
- Add RemoteAlbumMetadata for full metadata with tracks
- Add RemoteTrackMetadata for track info
- Add RemoteMetadataCache with TTL-based expiration
- Add adapter functions for MusicBrainz and Discogs
- Add Discogs position/duration parsing utilities
2026-01-26 18:37:45 -06:00
vicrodh 50d765509d fix(TagEditor): remove Tracklist label, tone down album path display 2026-01-26 18:27:25 -06:00
vicrodh d3e046d8ef fix(LocalLibrary): restore scroll in album detail view
The virtualized-active class was being applied even when viewing album
detail, causing overflow:hidden to block scrolling. Added !selectedAlbum
check to only apply virtualized mode for list views.
2026-01-26 18:24:31 -06:00
vicrodh 79ebd66856 refactor(PlaylistDetailView): use danger CSS variables for clear artwork button 2026-01-26 18:20:48 -06:00
vicrodh 590fea538c refactor: replace hardcoded colors with CSS variables
- FocusMode: replace #000, white with theme variables
- miniplayer: replace #6366f1, #fff, #818cf8 with accent/text variables
- AlbumDetailView: replace #666666 with --text-muted
- LoginView: use --danger and --warning variables for error/timeout boxes
- PlaylistModal: use .icon-inline utility class

Add to app.css:
- Warning color variables (--warning, --warning-bg, --warning-border)
- .icon-inline and .badge-warning utility classes
2026-01-26 18:20:06 -06:00
vicrodh 8ae4f62401 refactor(ExpandedPlayer): replace hardcoded colors with CSS variables 2026-01-26 18:16:23 -06:00
vicrodh fcda0ddf36 refactor: centralize button styles in app.css
- Add global .btn, .btn-primary, .btn-secondary, .btn-danger, .btn-ghost classes
- Add --danger color CSS variables for multi-theme support
- Add .btn-sm and .btn-lg size modifiers
- Refactor all modals and views to use global button classes
- Remove 260+ lines of duplicated button CSS across components

Files updated:
- FavoritesEditModal, FolderEditModal, FolderSettingsModal
- LocalLibraryTagEditorModal, MigrationModal, PlaylistImportModal
- PlaylistModal, Sidebar, LocalLibraryView, PlaylistManagerView
2026-01-26 18:02:58 -06:00
vicrodh 1751a83499 fix(ui): align metadata footer buttons with app style
cx
2026-01-26 17:45:08 -06:00
vicrodh c09a4233db fix(ui): align metadata editor footer buttons and spacing
cx
2026-01-26 17:42:34 -06:00
vicrodh 138f4388b7 fix(ui): ensure 5-row tracklist scroll and footer alignment
cx
2026-01-26 17:34:52 -06:00
vicrodh 6b107a8c57 fix(ui): stabilize metadata editor table and footer
cx
2026-01-26 17:19:51 -06:00
vicrodh be605dacf4 refactor(ui): polish metadata editor table and footer
cx
2026-01-26 17:05:51 -06:00
vicrodh 9889303a13 fix(ui): improve tracklist table and footer controls
cx
2026-01-26 16:55:01 -06:00
vicrodh 333c53002e fix(ui): tabular tracklist with vertical snap
cx
2026-01-26 16:49:13 -06:00
vicrodh 3ca9fe48af fix(ui): compute total discs without const tag
cx
2026-01-26 16:43:08 -06:00
vicrodh c63290b483 refactor(ui): update local metadata editor layout
cx
2026-01-26 16:40:32 -06:00
vicrodh cf41862c50 fix(ui): size local tag editor modal inputs
cx
2026-01-26 16:31:10 -06:00
vicrodh 13ee849604 fix(ui): ensure modals overlay sidebar and player
cx
2026-01-26 15:44:33 -06:00
vicrodh 4bc4bb0132 fix(ui): hide Discogs panel until fetch
cx
2026-01-26 15:36:39 -06:00
vicrodh 885b5f73b5 refactor(ui): align album artwork labels and grid
cx
2026-01-26 15:31:09 -06:00
vicrodh db45369b0a fix(ui): match Discogs cover size to preview
cx
2026-01-26 15:14:44 -06:00
vicrodh 8c99794fbf fix(ui): update album artwork button copy
cx
2026-01-26 15:13:26 -06:00
vicrodh 3ed0b19d16 fix(ui): adjust album settings modal artwork
cx
2026-01-26 15:12:56 -06:00
vicrodh 90d2bd94ae revert: album settings artwork panel polish
cx
2026-01-26 15:09:28 -06:00
vicrodh d0a0562885 fix(ui): polish album settings artwork panel
cx
2026-01-26 15:07:56 -06:00
vicrodh 4d139f78a0 refactor(ui): move Discogs results into artwork panel
cx
2026-01-26 14:47:55 -06:00
vicrodh 9dc0a87740 fix(ui): restore LocalLibrary album header layout
cx
2026-01-26 14:39:41 -06:00
vicrodh 6517cfc791 refactor(ui): align album settings actions layout
cx
2026-01-26 14:31:51 -06:00
vicrodh 249d49ab4f refactor(ui): adjust album settings header layout
cx
2026-01-26 13:45:54 -06:00
vicrodh 130f94ee43 refactor(ui): tighten album settings layout
cx
2026-01-26 13:35:56 -06:00
vicrodh 11efbd5a59 fix(ui): use alert for metadata errors
cx
2026-01-26 13:27:58 -06:00
vicrodh b8cc181974 fix(ui): refine album settings metadata entry
cx
2026-01-26 13:27:26 -06:00
vicrodh 92d601a35b feat(ui): add LocalLibrary metadata editor modal
cx
2026-01-26 13:25:00 -06:00
vicrodh 5d812f4966 feat(library): add LocalLibrary tag editor backend
cx
2026-01-26 13:24:51 -06:00
Victor RH 302fd200ae Merge branch 'fix/chromecast-parity' into pre-release 2026-01-26 11:37:02 -06:00
Victor RH 19aa5ca4a1 Adds Flatpak sandbox instructions
Provides instructions and a UI section to guide users on granting filesystem access and network sharing permissions to the Flatpak version of the app.

Removes redundant home directory permission in tauri config.
2026-01-26 11:34:32 -06:00
vicrodh 2f4b79f1bf fix(cast): cleanup Chromecast connection on app exit 2026-01-26 11:01:14 -06:00
vicrodh 1384a1d276 feat(cast): add position tracking and auto-advance for Chromecast
- Add cast_get_position command for Chromecast media position
- Add CastPositionInfo struct with position, duration, player_state, idle_reason
- Extend position polling to work with both DLNA and Chromecast
- Detect track end on Chromecast via IDLE state with FINISHED reason
- Unify polling logic for both protocols

cpvsc
2026-01-26 10:41:35 -06:00