Commit Graph

2615 Commits

Author SHA1 Message Date
Claudio Ortolina 5eb7ccd837 Fix overlapping buttons in chat 2026-03-17 14:10:31 +00:00
Claudio Ortolina 0f0d90d84e Increase busy_timeout in test to avoid intermittent failures on CI
Running ExUnit with seed: 849711, max_cases: 4

........................................................................................................................................................................................................................................................................................................................................................................................................................................................

  1) test count_record_sets/0 and count_record_sets/1 returns total count (MusicLibrary.RecordSetsTest)
Error:      test/music_library/record_sets_test.exs:97
     ** (Exqlite.Error) Database busy
     INSERT INTO "record_sets" ("name","description","inserted_at","updated_at","id") VALUES (?1,?2,?3,?4,?5)
     code: record_set(%{name: "One"})
     stacktrace:
       (ecto_sql 3.13.5) lib/ecto/adapters/sql.ex:1113: Ecto.Adapters.SQL.raise_sql_call_error/1
       (ecto 3.13.5) lib/ecto/repo/schema.ex:1000: Ecto.Repo.Schema.apply/4
       (ecto 3.13.5) lib/ecto/repo/schema.ex:500: anonymous fn/15 in Ecto.Repo.Schema.do_insert/4
       (music_library 0.1.0) lib/music_library/record_sets.ex:71: MusicLibrary.RecordSets.create_record_set/1
       (music_library 0.1.0) test/support/fixtures/music_library/record_sets.ex:16: MusicLibrary.Fixtures.RecordSets.record_set/1
       test/music_library/record_sets_test.exs💯 (test)

................................................................................................................................
Finished in 25.5 seconds (3.4s async, 22.1s sync)
37 doctests, 532 tests, 1 failure
2026-03-17 14:02:57 +00:00
Claudio Ortolina 3f95aee7a7 Cap message content 2026-03-17 13:51:38 +00:00
Claudio Ortolina a86c9ad6fc Remove dead code 2026-03-17 13:50:34 +00:00
Claudio Ortolina 8fd8dde73d Persist chat history 2026-03-17 13:50:01 +00:00
Claudio Ortolina bcef30eb52 Document production oban plugins 2026-03-17 11:55:36 +00:00
Claudio Ortolina 490a3a562f Add Oban operational maintenance configuration 2026-03-17 11:53:12 +00:00
Claudio Ortolina ca3c32c804 Add project convention around using the icon class 2026-03-16 19:43:30 +00:00
Claudio Ortolina 5a418248ad Use same gaps in stats page
Closes #120
2026-03-16 19:30:52 +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 62359092d8 Uniform play icon sizes
Closes #121
2026-03-16 14:54:54 +00:00
Claudio Ortolina 3bae241d74 Uniform card corners/shadows
Closes #119
2026-03-16 14:51:04 +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 4370391265 Remove useless space-y directive 2026-03-16 14:15:45 +00:00
Claudio Ortolina cd062c84f2 Update architecture docs 2026-03-16 12:53:32 +00:00
Claudio Ortolina 74a2b9bce8 Update and uniform styles for scrobble rules and online templates lists 2026-03-16 12:43:07 +00:00
Claudio Ortolina f1e3b22f91 Make online store templates searchable 2026-03-16 11:56:39 +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 028f111300 Stabilize rate limiter tests by using dependency injection 2026-03-16 11:21:24 +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 48859582d7 Update elixir to 1.20.0-rc.3 2026-03-16 10:34:57 +00:00
Claudio Ortolina 00037f0aa8 Update architecture docs 2026-03-16 08:07:09 +00:00
Claudio Ortolina 5752d1fe27 Add tests for scrobble rules search/sort 2026-03-16 08:06:48 +00:00
Claudio Ortolina 3fb6c93d9d Add sorting optoins to scrobble rules page 2026-03-16 08:03:47 +00:00
Claudio Ortolina 6d6cf21047 Uniform scrobble rules layout 2026-03-16 08:00:17 +00:00
Claudio Ortolina 43b054b34a Search scrobble rules, improved layout 2026-03-16 07:58:21 +00:00
Claudio Ortolina c4b2f00996 Update dependencies
igniter 0.7.4 => 0.7.6
2026-03-16 07:33:24 +00:00
Claudio Ortolina ac2758aabf Fix more margins 2026-03-15 21:09:52 +00:00
Claudio Ortolina 805f93cd3c Improve wording and layout of scrobbled tracks order buttons 2026-03-15 21:03:11 +00:00
Claudio Ortolina d2cccce9dc Uniform margins 2026-03-15 20:58:50 +00:00
Claudio Ortolina d815928f91 Fix SearchParser catch-all wiping valid filters
The `_, %{}` catch-all in `normalize/1` matched any map, so an
invalid filter (e.g. `format:vin`) would reset the accumulator
even when valid filters were already collected. Add a `map_size`
guard so it only returns `%{query: ""}` for a truly empty
accumulator. Also update the moduledoc.
2026-03-15 18:56:30 +00:00
Claudio Ortolina abb6a5f8f4 Update dependencies
fluxon 2.3.4 => 2.3.5

Includes a test fix due to some internal changes in Fluxon.
2026-03-15 10:18:07 +00:00
Claudio Ortolina 4fb148e9db Simplify signatures of scrobbling functions 2026-03-14 22:22:41 +00:00
Claudio Ortolina 0a26891575 Update project conventions 2026-03-14 18:33:34 +00:00
Claudio Ortolina 69ff926aba Allow WASM evaluation on prod 2026-03-14 18:02:27 +00:00
Claudio Ortolina 2dd6f10a7f Fix CSP error for barcode detection 2026-03-14 17:38:04 +00:00
Claudio Ortolina 4d1ac9652c Link the scrobbled count in stats 2026-03-14 09:59:09 +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 0b9d008ecb No need to thread the record ID when we can use the record directly 2026-03-13 16:29:11 +00:00
Claudio Ortolina be563d8fca Streamline record set items reordering query 2026-03-13 16:26:01 +00:00
Claudio Ortolina cb5c9b0d5a Enable incremental vacuum for accessory repos 2026-03-13 16:23:56 +00:00
Claudio Ortolina a00b858226 Add index to speed up records by release date 2026-03-13 16:23:29 +00:00
Claudio Ortolina bba1b1eabc Remove redundant configuration (identical to defaults) 2026-03-13 16:22:58 +00:00
Claudio Ortolina 002c81d3b8 Load Tidewave only in dev 2026-03-13 15:13:37 +00:00
Claudio Ortolina 854a6e1816 Allow worker blob URLs in CSP directives
canvas-confetti creates web workers from blob URLs,
which requires an explicit worker-src directive.
2026-03-13 15:01:28 +00:00
Claudio Ortolina 9901f1177e Update tidewave to 0.5.6 2026-03-13 14:56:32 +00:00