Commit Graph

1586 Commits

Author SHA1 Message Date
Claudio Ortolina c9ee94bd4a Key record set item ids during rendering
Makes live render faster by 20%
2026-03-06 20:02:58 +00:00
Claudio Ortolina 436274a8ef Extract internal record set card component 2026-03-06 17:02:19 +00:00
Claudio Ortolina 518a4e9623 Remove finch req duration by normalized path metric
Too noisy
2026-03-06 15:27:13 +00:00
Claudio Ortolina 1063c43a65 Revert "Remove finch req duration by path metric"
This reverts commit c1e4024095.
2026-03-06 15:26:36 +00:00
Claudio Ortolina 0d7ed39b4c Extend tracked metrics 2026-03-06 15:19:47 +00:00
Claudio Ortolina c1e4024095 Remove finch req duration by path metric
Paths are too many and too long
2026-03-06 15:06:39 +00:00
Claudio Ortolina 63e44518a3 Order blocked paths alphabetically 2026-03-06 15:01:53 +00:00
Claudio Ortolina 34717a618a Add two more blocked routes 2026-03-06 15:00:29 +00:00
Claudio Ortolina 05afcc7732 Make sure tags are part of the telemetry storage key 2026-03-06 12:40:22 +00:00
Claudio Ortolina a23f772c04 Re-enable Credo CyclomaticComplexity check 2026-03-06 10:08:25 +00:00
Claudio Ortolina d3ae3a7381 Fix ScrobbleRule timestamps to use utc_datetime 2026-03-06 09:58:40 +00:00
Claudio Ortolina 54f19cd9a2 Fix ArtistInfo.country/1 crash when area is missing 2026-03-06 09:51:56 +00:00
Claudio Ortolina 6c2036ff7d Make excluded genres configurable 2026-03-06 09:45:42 +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 a3ccc06d14 Extract shared SQL builder for scrobble rules 2026-03-05 20:52:25 +00:00
Claudio Ortolina d738032f8a Add string length validations to user-input schemas 2026-03-05 20:42:44 +00:00
Claudio Ortolina 08f7565d44 Replace inspect(reason) with friendly error messages
Closes #81
2026-03-05 20:25:13 +00:00
Claudio Ortolina e8f393c5a0 Guard against nil medium in scrobble_medium
Closes #76
2026-03-05 19:54:32 +00:00
Claudio Ortolina 6d72df3905 Extract apply_fallback_index to shared helper
Closes #92
2026-03-05 19:50:50 +00:00
Claudio Ortolina d4376e5fa0 Extract DB queries from MaintenanceLive into context 2026-03-05 18:01:50 +00:00
Claudio Ortolina 4b1f6bb245 Fix inconsistent toast arity in form components
Closes #94
2026-03-05 17:06:23 +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 23c478fe4c Mount telemetry repo in live dashboard stats 2026-03-05 13:52:55 +00:00
Claudio Ortolina f109057be5 Persist telemetry data in local sqlite database 2026-03-05 13:39:38 +00:00
Claudio Ortolina bb541c8004 Add error_tracker metrics in LiveDashboard 2026-03-05 11:48:17 +00:00
Claudio Ortolina 73a943bc63 Server records on this day email assets from a public endpoint 2026-03-05 10:50:35 +00:00
Claudio Ortolina 478832249b Send record of the day email 2026-03-05 10:37:04 +00:00
Claudio Ortolina adc7ef49e5 Add /admin to the blocked both pats 2026-03-05 09:05:09 +00:00
Claudio Ortolina 08d01e5939 Catch /xmlrpc.php bot request 2026-03-05 06:59:14 +00:00
Claudio Ortolina f9758e5566 Reject common bot scanner paths 2026-03-05 06:45:12 +00:00
Claudio Ortolina c831b20317 Move error tracker notifier files to correct namespace 2026-03-04 19:39:36 +00:00
Claudio Ortolina ad9bcd8481 Inline error tracker notification code
As we don't need the Discord functionality which brings quite a lot of
extra libraries/code
2026-03-04 17:19:14 +00:00
Claudio Ortolina ed1dd2b440 Mount error tracker notifier 2026-03-04 15:55:32 +00:00
Claudio Ortolina 1c04eea88f Install and configure Swoosh with Mailgun 2026-03-04 15:52:17 +00:00
Claudio Ortolina 6d451481b7 Remove obsolete color extraction strategies 2026-03-03 16:01:25 +00:00
Claudio Ortolina 1d3361c425 BETA: accurate color extractor 2026-03-03 15:41:24 +00:00
Claudio Ortolina de14ec3e25 Consolidate completely stateless tests into doctests
Removing dupes
2026-03-03 11:30:52 +00:00
Claudio Ortolina 88e09a6ad8 Handle errors when storing assets 2026-03-03 08:27:05 +00:00
Claudio Ortolina 6ef5f0a000 Add metrics to rate limiter 2026-03-02 19:23:27 +00:00
Claudio Ortolina c066585cbf Display ALL catalog numbers 2026-03-02 19:05:09 +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 a992c1f0dd Introduce a Req.RateLimiter module to fix API rate limit issues 2026-03-02 15:04:45 +00:00
Claudio Ortolina 99674eb8bc Refactor and add tests for OpenAI namespace 2026-03-02 14:11:51 +00:00
Claudio Ortolina 5bd85013c6 Simplify OpenAI api implementation 2026-03-02 13:56:46 +00:00
Claudio Ortolina a0df11d26f Use new style for MB link and copy button in artist page 2026-03-01 20:19:46 +00:00
Claudio Ortolina 919a42d355 Parameterize API cooldowns 2026-03-01 17:17:32 +00:00
Claudio Ortolina 6836cf5c9e Integrate refresh of Last.fm data (both per artist and batch) 2026-03-01 09:46:27 +00:00
Claudio Ortolina b35f4aed1d EXP: enrich artist info data via Last.fm and produce better embeddings 2026-03-01 08:22:35 +00:00
Claudio Ortolina 2f57ce2e67 Display static changed banner instead of toast 2026-02-28 10:30:44 +00:00