Claudio Ortolina
eaece07193
Count formats in results
2026-04-20 15:15:29 +01:00
Claudio Ortolina
c4ebe636ff
Fix ML-143 review: security, worker, and test improvements
...
Closes ML-143 review findings:
- cast_id/1 uses Integer.parse instead of String.to_integer
- add_to_cart validates against server-side release_groups
- JS.push payload trimmed to {id, format} only
- Oban.insert_all result checked for partial failures
- handle_async success resets @importing? to false
- ImportFromMusicbrainzReleaseGroup gets unique constraint
- Record.parse_datetime/1 made public with safe match
- Workers delegate to Record.parse_datetime/1
- Test coverage: change_format, clear_cart, wishlist single import
2026-04-20 15:15:29 +01:00
Claudio Ortolina
3f5ce060b1
Implement ML-143: Cart-style multi record import
...
Closes ML-143.
2026-04-20 15:15:29 +01:00
Claudio Ortolina
cf872cfed0
Secondary sort for artist albums in collection (purchase date desc)
2026-04-19 21:36:07 +01:00
Claudio Ortolina
7767933742
Give more space above the universal search input
2026-04-19 21:29:40 +01:00
Claudio Ortolina
da12d5d693
Handle ArtistLive.Form saved message in show view
2026-04-19 08:59:04 +01:00
Claudio Ortolina
fb1b60373d
Fix max width issue for release selector on mobile
2026-04-18 10:57:14 +01:00
Claudio Ortolina
f6bcf3d970
Partial fix for barcode scan camera persisting after disconnection
2026-04-18 10:50:41 +01:00
Claudio Ortolina
b37162fce3
Fix colors of mixed badges
2026-04-17 22:30:27 +01:00
Claudio Ortolina
94143010c0
Fix doubly-wrapped safe tuple in artist bio render
2026-04-17 16:00:22 +01:00
Claudio Ortolina
e6a8488137
Use Notes.change_note/2 instead of Note.changeset/2 in notes component
...
Closes #171
2026-04-17 12:56:08 +01:00
Claudio Ortolina
fbc548e903
Explicitly trust Wikipedia's HTML
...
Closes #168
2026-04-16 23:14:00 +01:00
Claudio Ortolina
464e627a63
Remove unnecessary padding from detail views
2026-04-16 22:54:39 +01:00
Claudio Ortolina
6b35b5cde5
Trigger search on Enter in search inputs inside forms
2026-04-16 15:15:47 +01:00
Claudio Ortolina
840547c509
Speed up structured modal animation
2026-04-16 09:31:30 +01:00
Claudio Ortolina
fea1231304
Replace refresh scrobble list icon
...
Makes it for a better animation
2026-04-15 22:52:28 +01:00
Claudio Ortolina
7899f621f3
Preserve rule picker state across parent re-renders
2026-04-15 15:11:17 +01:00
Claudio Ortolina
c816f2de4a
Add scrobbled tracks search parser
...
Introduces ListeningStats.SearchParser with NimbleParsec supporting
record:, album_mbid:, artist_mbid:, artist:, album:, track: filters.
Links scrobble count on record page to filtered scrobbled tracks view.
2026-04-15 14:56:38 +01:00
Claudio Ortolina
851cb36858
Fix dl accessibility violations on stats dashboard
2026-04-15 14:16:24 +01:00
Claudio Ortolina
4194fb8b6d
Update dependencies
...
oban_web 2.12.2 => 2.12.3
2026-04-15 13:50:52 +01:00
Claudio Ortolina
405235e2b3
Add picker to create scrobble rules on the fly
2026-04-15 10:53:58 +01:00
Claudio Ortolina
ebd9e5445f
Fix how long ago for records with year release dates
2026-04-15 07:20:01 +01:00
Claudio Ortolina
8db324d74a
Extract shared badge/dropdown to ScrobbleComponents
2026-04-14 16:50:40 +01:00
Claudio Ortolina
888b5a68e6
Update all callers to use matching_records
...
Migrate StatsLive.Index, ScrobbledTracksLive.Index, and TopAlbums to
consume matching_records list instead of scalar record IDs. Remove the
derive_legacy_record_ids bridge function. TopAlbums now uses a dropdown
for multi-record badges with play count display.
2026-04-14 16:14:59 +01:00
Claudio Ortolina
9ef918a621
Update record_status_badges with matching_records and dropdown
2026-04-14 16:10:57 +01:00
Claudio Ortolina
e43bccb9bc
Extract shared index logic into LiveHelpers.IndexActions
...
Closes #150
2026-04-13 23:09:22 +01:00
Claudio Ortolina
4fa13d5422
Reset chat state when navigating between entities
...
The Chat component kept stale messages and chat references
when patching to a different artist/record because update/2
only refreshed the chat list, not the active chat state.
2026-04-13 18:32:19 +01:00
Claudio Ortolina
6a6410bcaa
Have the LLM use square bracketed links for internal references
2026-04-13 14:24:36 +01:00
Claudio Ortolina
76438360d7
Load collection summary asynchronously on mount
2026-04-13 13:11:15 +01:00
Claudio Ortolina
5512ac0837
Hide button text on mobile
2026-04-13 12:53:57 +01:00
Claudio Ortolina
3b8415d8c4
Add Collection Chat to universal search
2026-04-13 10:15:43 +01:00
Claudio Ortolina
a509248625
Wire up Chat component in CollectionLive.Index
2026-04-13 10:12:49 +01:00
Claudio Ortolina
035b4e7197
Extract shared record action menu component
...
Closes #155
2026-04-12 23:23:11 +01:00
Claudio Ortolina
88906e10ad
Add ex_slop, configure it, run it and fix issues
2026-04-12 22:07:27 +01:00
Claudio Ortolina
3da0865725
Drop Records embedding wrappers
2026-04-11 21:43:00 +01:00
Claudio Ortolina
8826834549
Fix release status badge in grouped records on this day
...
The tooltip was using the group representative instead of the
actual record, causing all items in a group to show the same
badge regardless of their own selected_release_id.
2026-04-10 10:38:48 +01:00
Claudio Ortolina
49d26e1fd0
Switch the release component to a form to enable recovery
2026-04-08 18:22:44 +01:00
Claudio Ortolina
d406e98fce
Use message index for chat DOM ids
2026-04-08 12:42:01 +01:00
Claudio Ortolina
d691b1b432
Fix encoding of past messages in LLM request
2026-04-08 12:34:45 +01:00
Claudio Ortolina
2609adbf84
Address Lumis api deprecation
2026-04-06 10:27:13 +01:00
Claudio Ortolina
501ff18733
Can copy a chat message
2026-04-05 14:35:03 +01:00
Claudio Ortolina
40ea3aaa2a
Add fallback error images for scrobble activity
2026-04-05 08:35:23 +01:00
Claudio Ortolina
b9be62a500
Async barcode scan batch import for 2+ new records
...
When barcode scan results contain at least 2 new records,
enqueue individual Oban jobs instead of importing synchronously.
Wishlisted/collected/not_found results still process synchronously.
2026-04-04 10:20:50 +01:00
Claudio Ortolina
cd52890f86
Move release status badge inside group
2026-04-03 17:48:13 +01:00
Claudio Ortolina
9d0170dad3
Hide universal search shortcuts on mobile
2026-04-02 17:15:31 +01:00
Claudio Ortolina
555e7065dc
Fix display of metadata in universal search results
2026-04-02 17:15:04 +01:00
Claudio Ortolina
90538e7890
Move status tooltip badge
2026-04-02 16:22:57 +01:00
Claudio Ortolina
a390a992cc
Remove tooltip (fails for unknown reasons)
2026-04-02 13:21:51 +01:00
Claudio Ortolina
98c2f85258
Use a tooltip for release status
2026-04-02 11:57:41 +01:00
Claudio Ortolina
3f7da55e50
Add a release tracked badge to records in lists
2026-04-02 11:52:07 +01:00