Laurent
e5b5c249b4
refactor: remove AudioService from ContentView — all playback state via PlayerViewModel
1 month ago
Laurent
4fa431e9bd
refactor: make PlayerViewModel single source of truth for all playback state
1 month ago
Laurent
c3b97eb201
feat(remote): add DatabaseService.fetchTracksByIds for efficient ID-based lookups
1 month ago
Laurent
c754858f21
feat(remote): add NDJSONTransport for line-buffered JSON framing over TCP
1 month ago
Laurent
b0359f127b
feat(remote): add ConnectionState machine with transition validation
1 month ago
Laurent
89d50e6e94
feat(remote): add structured os.Logger for host and client
1 month ago
Laurent
6005ce739f
feat(remote): add RemoteCommand and HostEvent protocol types with tests
1 month ago
Laurent
5320da4b82
chore: declare app does not use non-exempt encryption
1 month ago
Laurent
0eaa095bae
feat: add Search MP3 action to Shazam identification alert
...
Opens freemp3music.org and copies "title artist" to clipboard for quick paste-and-search.
1 month ago
Laurent
2f1b9b537c
fix: stabilize layout at minimum window height and refine player controls
...
Wrap breadcrumb + content area in a constrained VStack so search bar,
playlist bar, and player controls stay pinned when toggling Home view.
Refactor PlayerControlsView to use a full-width progress track above
transport buttons. Allow play/pause to start from first track when
nothing is queued.
1 month ago
Laurent
d20bb2fef4
update config
1 month ago
Laurent
11d5f91a86
feat: improve player UX — scrubbing, keyboard shortcuts, now-playing indicator, Home button
...
Add chase-seek scrubbing for smooth slider interaction, global keyboard
monitor for space/arrows, now-playing speaker column in track table, Home
button in playlist bar, smart playlist sorting, and UI polish (label colors,
track selection, app icon 512@2x). Bump version to 10.
1 month ago
Laurent
a657075ef9
feat: integrate HomeView as default view in ContentView
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 month ago
Laurent
09be0460d4
feat: add HomeView with recently added list and library stats
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 month ago
Laurent
4a3dd23e57
feat: add database queries for home page (recently added, total duration, monthly additions)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 month ago
Laurent
ac4e421340
feat: wire smart playlists into UI — search save, bar, context menus, selection
1 month ago
Laurent
e6ae6c5266
feat: add smart_playlists table migration and CRUD methods
1 month ago
Laurent
124a48a07c
feat: add SmartPlaylist model with PlaylistRepresentable conformance
...
Also fixes unit test infrastructure: create shared scheme including
MusicTests, fix TEST_HOST path (Mumu.app), add PRODUCT_MODULE_NAME=Music,
add get-task-allow entitlement, and skip NSOpenPanel in test runs.
1 month ago
Laurent
7024be1cba
feat: add PlaylistRepresentable protocol, conform Playlist
1 month ago
Laurent
87410196af
add icon
1 month ago
Laurent
499558edc2
stuff
1 month ago
Laurent
e2f6d70356
fix dimensions
1 month ago
Laurent
6399eca302
feat: wire ShazamService into app and display results in alerts
1 month ago
Laurent
104fd64631
feat: add Shazam button to SearchBarView
...
Add isShazamListening and onShazam parameters to SearchBarView with a Shazam logo button that displays listening state and provides tactile feedback.
1 month ago
Laurent
3f788a2f81
feat: add ShazamService for music recognition
1 month ago
Laurent
66fb024b51
chore: add network, audio-input entitlements and microphone usage description
1 month ago
Laurent
44854f9868
feat: add track context menu and drag-to-reorder for playlists
1 month ago
Laurent
a0b95681e2
feat: add PlaylistBarView, FlowLayout, breadcrumb, and New Playlist menu
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 month ago
Laurent
8f4e330c92
feat: wire PlaylistViewModel into app and content view
1 month ago
Laurent
5b8cdf603c
feat: add PlaylistViewModel with reactive playlist observation
1 month ago
Laurent
1cf5353339
feat: add playlist database migration and CRUD methods
1 month ago
Laurent
41754b1f56
feat: add Playlist and PlaylistTrack models
1 month ago
Laurent
0a8ad2aa91
feat: assemble UI with search bar, track table, player controls, folder picker, and drag-and-drop
1 month ago
Laurent
c374cfa9eb
feat: add TrackTableView with NSTableView for high-performance track list
1 month ago
Laurent
c5b468103a
feat: add LibraryViewModel with reactive queries, debounced search, and column sorting
1 month ago
Laurent
d61ccda111
feat: add PlayerViewModel with queue management, shuffle, and play tracking
1 month ago
Laurent
9c934235d6
feat: add AudioService with AVPlayer playback, seeking, and volume control
1 month ago
Laurent
49693e95b4
feat: add ScannerService with file discovery, metadata extraction, and batch import
1 month ago
Laurent
e0e03daf3f
feat: add DatabaseService with schema, FTS5 search, and query methods
1 month ago
Laurent
a8978f7eae
feat: add Track model with GRDB record conformance and tests
...
Introduces the core Track struct (nonisolated to work with project-wide
MainActor default isolation), its FetchableRecord/MutablePersistableRecord
conformances, a DEBUG fixture helper, and three Swift Testing tests covering
round-trip persistence, ID assignment on insert, and deterministic hash computation.
1 month ago
Laurent
1aac6823fa
chore: track docs/superpowers specs and plans, fix gitignore
1 month ago
Laurent
10e147b447
chore: initialize project with GRDB dependency and directory structure
1 month ago