Claudio Ortolina
56d9d6bfd7
Use MDEx streaming to render chat content
2026-03-20 23:42:10 +00:00
Claudio Ortolina
47ca6fa1d2
Add canonical_tailwind to get correct formatting for tailwind classes
2026-03-20 13:02:32 +00:00
Claudio Ortolina
715a1e1f69
Consolidate handling of artist joinphrases
2026-03-19 15:09:34 +00:00
Claudio Ortolina
1001610472
First pass at having a chat count in the entity pages
2026-03-19 12:28:58 +00:00
Claudio Ortolina
97f0c5bfc3
Improve scrobbled tracks/album metadata tooltips design
2026-03-18 18:31:55 +00:00
Claudio Ortolina
1ee4d3465a
Move /dev/maintenance to /maintenance
2026-03-18 07:44:22 +00:00
Claudio Ortolina
5afb5f9533
Inline similar records in collection show view
2026-03-18 07:30:45 +00:00
Claudio Ortolina
16bcb1f36e
Use patch instead of navigate for similar records
2026-03-18 07:25:38 +00:00
Claudio Ortolina
5eb7ccd837
Fix overlapping buttons in chat
2026-03-17 14:10:31 +00:00
Claudio Ortolina
8fd8dde73d
Persist chat history
2026-03-17 13:50:01 +00:00
Claudio Ortolina
270762cdb6
Move maintenance menu item, remove redundant title
2026-03-16 19:28:47 +00:00
Claudio Ortolina
a459666126
Autosize all icon buttons
2026-03-16 15:09:05 +00:00
Claudio Ortolina
244e7734a5
Unify genre tag styling in record edit form
...
Use Fluxon .badge component instead of custom spans to match
the read view styling.
Closes #115
2026-03-16 14:34:35 +00:00
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