Commit Graph

471 Commits

Author SHA1 Message Date
Claudio Ortolina 1a62360b21 Group records in records on this day widget 2026-03-12 09:09:25 +00:00
Claudio Ortolina c352ad4809 Can print an individual medium tracklist 2026-03-09 14:52:26 +00:00
Claudio Ortolina 4569c6727e Add function to download a record's tracklist for printing 2026-03-09 13:39:12 +00:00
Claudio Ortolina d76471b03e Use MDEx to consolidate Markdown handling 2026-03-08 09:31:09 +00:00
Claudio Ortolina 52815bde2f When doing markdown to HTML, sanitize HTML
Closes #101
Closes #102
2026-03-07 19:05:37 +00:00
Claudio Ortolina 2e3732e38b Apply all necessary exclusions to sobelow findings 2026-03-07 18:37:24 +00:00
Claudio Ortolina a23f772c04 Re-enable Credo CyclomaticComplexity check 2026-03-06 10:08:25 +00:00
Claudio Ortolina 7cf9b4e7f8 First pass at uniformed types, specs and docs
- spec public functions (skipping controllers, views, live views and
components)
- use types instead of explanations in docs
- remove redundant docs
- fix typos
2026-03-06 08:33:11 +00:00
Claudio Ortolina 08f7565d44 Replace inspect(reason) with friendly error messages
Closes #81
2026-03-05 20:25:13 +00:00
Claudio Ortolina eb8a00ab54 Replace String.to_integer with safe Integer.parse
Use Integer.parse/1 instead of String.to_integer/1 on user-supplied
and external API input to prevent ArgumentError crashes on non-numeric
values. Adds fallback defaults or nil returns at each call site.
2026-03-05 14:27:37 +00:00
Claudio Ortolina 88e09a6ad8 Handle errors when storing assets 2026-03-03 08:27:05 +00:00
Claudio Ortolina d770640cd5 Expose release packaging information 2026-03-02 19:00:28 +00:00
Claudio Ortolina d9bb7cc630 Fix display of selected release in release summary 2026-03-02 18:55:08 +00:00
Claudio Ortolina 2f57ce2e67 Display static changed banner instead of toast 2026-02-28 10:30:44 +00:00
Claudio Ortolina 49b7c3c955 Extract common elements from record detail pages 2026-02-28 09:46:31 +00:00
Claudio Ortolina 3635e113c8 Add Error Tracker link to main menu 2026-02-26 22:07:47 +00:00
Claudio Ortolina a76ae7169f Enable universal navigation 2026-02-26 15:10:40 +00:00
Claudio Ortolina c6d778c1cd Render debug information in side sheet with highlighting 2026-02-26 11:16:55 +00:00
Claudio Ortolina 0f2ace4920 Account for search errors in the add record component 2026-02-25 08:04:20 +00:00
Claudio Ortolina d55e957eea Autofocus message input when opening chat 2026-02-24 16:56:13 +00:00
Claudio Ortolina 65a2305f47 Move database backup action to maintenance page 2026-02-24 16:53:44 +00:00
Claudio Ortolina e74809a59a Fix missing :warning flash messages 2026-02-24 11:06:17 +00:00
Claudio Ortolina 8eaaa3cfec Use custom country module to resolve flags more accurately
Ported from https://github.com/wojtekmaj/country-code-to-flag-emoji
(MIT)
2026-02-24 08:57:30 +00:00
Claudio Ortolina ec131498e7 Disambiguate records in universal search
Add purchased date
2026-02-23 19:41:12 +00:00
Claudio Ortolina e58888bbc7 Format streaming chat message to Markdown 2026-02-23 14:29:41 +00:00
Claudio Ortolina 60d81e14de Enable chat for artists 2026-02-22 15:31:09 +00:00
Claudio Ortolina eea451417f Render chat as markdown, better layout 2026-02-22 10:31:10 +00:00
Claudio Ortolina 8d38512712 Fix review blockers in record chat
- Add Task.Supervisor to app supervision tree
- Use tagged tuples instead of rescue for error handling
- Pass embedding_text from parent LiveView as prop
- Remove dead Completion struct fields
- Extract socket assigns before Task closure
- Log errors server-side, show generic user message
- Make build_system_prompt private, remove thin wrapper
- Extract do_send_message for retry reuse

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 10:20:58 +00:00
Claudio Ortolina 6e6e419801 Add record chat sheet with OpenAI streaming
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 10:13:05 +00:00
Claudio Ortolina 1dfb2d2a6f Use Wikipedia data for record similarity and raise similarity threshold 2026-02-19 15:51:12 +00:00
Claudio Ortolina dd20aaf60d Replace px units 2026-02-19 10:40:44 +00:00
Claudio Ortolina facb7359c1 Improve formatting of release label 2026-02-19 10:38:17 +00:00
Claudio Ortolina c19ca503e5 Remove TODOs around replacing components 2026-02-17 08:09:00 +00:00
Claudio Ortolina 49723c97b0 Use non-pixel measurements 2026-02-15 20:06:34 +00:00
Claudio Ortolina d473e1f8a4 Hide external links if there are none 2026-02-14 19:51:51 +00:00
Claudio Ortolina 9775f192a4 Replace dominant color squares with equalizer animation
Swap the static colored squares on record show pages for an animated
equalizer where each bar is tinted with a dominant color, adding a
music-themed visual.
2026-02-14 10:11:12 +00:00
Claudio Ortolina 6e655cd866 Add button to retry fetching release tracks 2026-02-14 09:35:46 +00:00
Claudio Ortolina 48c7d16c89 Consolidate a few components 2026-02-10 19:32:28 +00:00
Claudio Ortolina 25a0cd83c1 Update footer credits 2026-02-09 19:45:48 +00:00
Claudio Ortolina 4b03102aa7 Display size for image search previews 2026-02-09 19:02:12 +00:00
Claudio Ortolina ddc4691522 EXP: cover search via Brave API 2026-02-09 18:51:47 +00:00
Claudio Ortolina 33ab914650 Use Fluxon input for genres 2026-02-09 18:34:26 +00:00
Claudio Ortolina e418395b23 Edit record genres 2026-02-09 08:53:16 +00:00
Claudio Ortolina a7056aa8d9 Extract some reused components 2026-02-07 17:23:13 +00:00
Claudio Ortolina ecd87ee2c6 Add universal search support for record sets 2026-02-07 16:11:48 +00:00
Claudio Ortolina abb1ab332a Can order record sets 2026-02-07 10:23:35 +00:00
Claudio Ortolina 419b093101 First pass at record sets 2026-02-05 11:46:52 +00:00
Claudio Ortolina 5a4b67119f Fix bg color and padding for records on this day 2026-02-03 19:18:29 +00:00
Claudio Ortolina 09a9d02c25 Use more idiomatic tailwind class 2026-01-27 21:21:33 +00:00
Claudio Ortolina 7dd35c2745 Remove unused component 2026-01-27 21:20:30 +00:00