Commit Graph

479 Commits

Author SHA1 Message Date
Claudio Ortolina 654b172ddb Fix UI inconsistencies across templates
- Replace .separator with .dropdown_separator in 4 dropdown menus
- Change gray-* to zinc-* color classes in online store templates
- Wrap hardcoded page titles in gettext() in online store templates
- Add consistent dark:text-zinc-200 to maintenance h3 subsections
- Add text-zinc-900 dark:text-zinc-200 to scrobble section headers
- Fix heading hierarchy (h1/h2 → h2/h3) in record set items
- Align artist form modal header to text-lg font-semibold
- Use size="xs" prop instead of class override on format badge
- Add external link icon to wishlist online store buttons
2026-03-16 11:37:29 +00:00
Claudio Ortolina 4a2b7f4e03 Extract dropdown_nav/1 component in Layouts 2026-03-16 11:13:45 +00:00
Claudio Ortolina d59ee157db Add current section border to top right menu sections 2026-03-16 11:09:31 +00:00
Claudio Ortolina ac2758aabf Fix more margins 2026-03-15 21:09:52 +00:00
Claudio Ortolina 4fb148e9db Simplify signatures of scrobbling functions 2026-03-14 22:22:41 +00:00
Claudio Ortolina 7cdd502701 Streamline print/scrobble buttons 2026-03-14 08:51:19 +00:00
Claudio Ortolina 3d66d7a6d7 Remove unnecessary spacing in the application footer 2026-03-14 07:17:08 +00:00
Claudio Ortolina 1dd7974cc7 Use socket assigns instead of threading IDs via JS.push
Extends the same optimization from the previous commit to
all remaining show page handlers across collection, wishlist,
and artist LiveViews. Also simplifies bare JS.push() calls
to plain phx-click strings.
2026-03-13 16:48:12 +00:00
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