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
e8f393c5a0
Guard against nil medium in scrobble_medium
...
Closes #76
2026-03-05 19:54:32 +00:00
Claudio Ortolina
d4376e5fa0
Extract DB queries from MaintenanceLive into context
2026-03-05 18:01:50 +00:00
Claudio Ortolina
f109057be5
Persist telemetry data in local sqlite database
2026-03-05 13:39:38 +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
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
a992c1f0dd
Introduce a Req.RateLimiter module to fix API rate limit issues
2026-03-02 15:04:45 +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
871f4b3554
Extract ListeningStats out of ScrobbleActivity
2026-02-27 12:16:38 +00:00
Claudio Ortolina
6bf13486a3
Do not crash on & search
2026-02-27 07:56:44 +00:00
Claudio Ortolina
1b934537ea
Remove Sentry and Honeybadger
2026-02-26 21:52:57 +00:00
Claudio Ortolina
561cd02ec7
Fixes error in matching multiple colums during search
2026-02-25 07:54:59 +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
60d81e14de
Enable chat for artists
2026-02-22 15:31:09 +00:00
Claudio Ortolina
78025eba69
Use gpt 4.1 with search
2026-02-22 10:27:44 +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
082c0cc0b3
Remove unused bin/vacuum command
2026-02-18 22:12:32 +00:00
Copilot
2faddbf0c6
Add audit tooling for scrobbled tracks data quality ( #89 )
2026-02-17 11:24:45 +00:00
Claudio Ortolina
3e1da2cb19
Uniform repo usage for Oban jobs
2026-02-17 09:01:46 +00:00
Claudio Ortolina
10b6a0703c
Centralize pagination settings
2026-02-17 08:24:07 +00:00
Claudio Ortolina
98f901c020
Materialize record releases to improve performance
2026-02-16 12:30:41 +00:00
Claudio Ortolina
583789850c
Normalize top artist and top album counts
...
- Make sure joins don't discard tracks
- Make sure we group by names as MB ids can be empty
2026-02-15 20:35:23 +00:00
Claudio Ortolina
d19f2062c5
Recalculate record embedding after their artist changes
2026-02-15 20:16:34 +00:00
Claudio Ortolina
08da5bb272
Fix parsing of record type from MB response
2026-02-15 11:38:26 +00:00
Claudio Ortolina
2872d14a8a
Refresh all data at the beginning of the month
2026-02-14 12:09:06 +00:00
Claudio Ortolina
01b3d64b82
Refresh records MusicBrainz data every first day of the month
2026-02-14 11:50:05 +00:00
Claudio Ortolina
8862e1d374
Show record sets in records detail pages
2026-02-13 12:00:12 +00:00
Claudio Ortolina
29b1c04433
Remove shallow color wrapper
2026-02-10 19:32:28 +00:00
Claudio Ortolina
4ef09b47f4
Unify batching logic
2026-02-10 19:29:54 +00:00
Claudio Ortolina
fe748782c7
Reorder record sets via drag and drop
2026-02-10 11:16:41 +00:00
Claudio Ortolina
c3deecb56b
Make sure worker doesn't swallow errors
2026-02-09 21:14:05 +00:00
Claudio Ortolina
a5520e076d
Fix typo
2026-02-09 21:11:28 +00:00
Claudio Ortolina
ebf3dc616e
Improve Wikipedia worker
...
- No need to sleep, Wikipedia API is not rate-limited
- Account for non-retryable failures (no english found)
2026-02-09 17:00:30 +00:00
Claudio Ortolina
25bd4b10c4
Add maintenance tasks to refresh all artist wikipedia bios
2026-02-09 15:24:29 +00:00
Claudio Ortolina
bcae291cff
Support getting artist bios from Wikipedia (experimental)
2026-02-09 15:20:06 +00:00
Claudio Ortolina
0bdad096d0
Explicit error handling when dealing with secrets
2026-02-09 11:08:57 +00:00
Claudio Ortolina
9da995bce8
Extract helpers to handle async jobs
2026-02-09 11:07:33 +00:00