Commit Graph

193 Commits

Author SHA1 Message Date
Claudio Ortolina 9b019945fb Increase queue limits
Queues are inherently rate-limited by the http APIs, so this change just
reduces waiting/execution times for other non-http operations done
inside the job body.
2026-06-01 08:55:31 +03:00
Claudio Ortolina 4a6c80f7a9 ML-191: avoid VACUUM / scrobble refresh write collision
Set busy_timeout: 5_000 on MusicLibrary.Repo so SQLite waits up to
5 seconds on lock contention instead of throwing SQLITE_BUSY
immediately (default is 0).

Move RepoVacuum from 0 3 to 3 3 (3:03 AM London) to avoid the
deterministic collision with RefreshScrobbles which fires on the
every-5-min cadence at the hour mark.
2026-05-19 16:46:37 +01:00
Claudio Ortolina faafe8792f Default dev port to 4003 2026-05-19 08:41:39 +01:00
Claudio Ortolina a51226d68a Increase retetion of completed oban jobs 2026-05-12 17:07:29 +01:00
Claudio Ortolina aa95e99377 Update tailwind
tailwind:
  tailwindcss 4.2.4 => 4.3.0
2026-05-08 22:23:45 +01:00
Claudio Ortolina afbce40de9 Update dependencies
mix:
  phoenix 1.8.6 => 1.8.7

Manually port update to filter_parameters now including "token" by default
2026-05-06 12:01:27 +01:00
Claudio Ortolina 0ffc348234 Exclude state and params from production http logs 2026-05-04 15:08:51 +01:00
Claudio Ortolina 7c6760d7db ML-158: force single-line log output in production
Three-layer architecture:
- Logster v2 handles HTTP request and LiveView socket telemetry in logfmt format
- Custom formatter as safety net escaping any remaining embedded newlines
- Config flag (single_line_logging) gating Logster attachment to prod only

Dev environment retains multi-line format for readability.
2026-05-04 15:01:10 +01:00
Claudio Ortolina 08fcd70a8c ML-154: add early platform detection for SQLite extensions 2026-04-30 13:39:39 +01:00
Claudio Ortolina 252caf31ce ML-11: Improve performance of Telemetry.Storage with in-memory buffer 2026-04-24 10:30:28 +01:00
Claudio Ortolina 007f59b0c3 Update tailwind from 4.2.3 to 4.2.4 2026-04-21 14:16:46 +01:00
Claudio Ortolina 56983c3e2c Update tailwind from 4.2.2 to 4.2.3 2026-04-20 22:47:38 +01:00
Claudio Ortolina 7b5b7e68dd Harden OpenAI api layer
- Support rate limiting
- Add proper error handling (don't rely on exceptions)

Closes #147
2026-04-05 16:01:29 +01:00
Claudio Ortolina 64c546a8af Update esbuild from 0.27.7 to 0.28.0 2026-04-02 22:01:35 +01:00
Claudio Ortolina edd38eb5f2 Revert "Reduce repo cache size"
This reverts commit b3af5be00d.
2026-04-02 19:31:55 +01:00
Claudio Ortolina 1f86c704c5 Update esbuild from 0.27.5 to 0.27.7 2026-04-02 18:36:27 +01:00
Claudio Ortolina 851bbd54af Setup swoosh sandbox 2026-04-02 15:26:15 +01:00
Claudio Ortolina b3af5be00d Reduce repo cache size
As assets are self-contained in their own table, and shielded with heavy
CDN + in-memory caching, there's no point in keeping a very large cache.
2026-04-02 10:40:03 +01:00
Claudio Ortolina 4cf9ff01a4 Update esbuild from 0.27.4 to 0.27.5 2026-04-02 06:52:42 +01:00
Claudio Ortolina 320a131370 Increase cooldown for Discogs requests 2026-04-01 09:30:39 +01:00
Claudio Ortolina f2def32571 Increase MusicBrainz api_cooldown to 1000ms 2026-04-01 06:44:37 +01:00
Claudio Ortolina 2e22ace7cf Move RecordsOnThisDayEmail to MusicLibraryWeb namespace 2026-03-28 10:25:03 +00:00
Claudio Ortolina 5c5a523fe6 Move scrobble refresh infra to Oban 2026-03-28 09:00:18 +00:00
Claudio Ortolina 61dd3f45c7 Move refresh config and callers to ListeningStats 2026-03-27 23:14:09 +00:00
Claudio Ortolina e575f2af9e Stub color extractor in tests
Makes the test suite much faster
2026-03-26 22:58:39 +00:00
Claudio Ortolina 152b3ddb70 Tweak test database settings for speed 2026-03-26 22:30:09 +00:00
Claudio Ortolina 0295e58e57 Add rate limiting to Wikipedia and BraveSearch APIs
Closes #133
2026-03-25 11:38:17 +00:00
Claudio Ortolina 84fa313638 Removes unused config/litestream.yml 2026-03-23 08:06:51 +00:00
Claudio Ortolina b215d23ff1 Increase parallelism and tolerance for tests (CI particularly) 2026-03-22 08:11:15 +00:00
Claudio Ortolina bf9113f531 Reduce Litestream backup frequency to daily 2026-03-21 07:53:02 +00:00
Claudio Ortolina a47ec1dfdd Increase metrics buffer size 2026-03-21 07:44:12 +00:00
Claudio Ortolina 55f7d7f2e2 Try and setup litestream for S3 backups 2026-03-20 23:04:09 +00:00
Claudio Ortolina 86584845de Update tailwind to 4.2.2 2026-03-18 16:41:29 +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 490a3a562f Add Oban operational maintenance configuration 2026-03-17 11:53:12 +00:00
Claudio Ortolina cb5c9b0d5a Enable incremental vacuum for accessory repos 2026-03-13 16:23:56 +00:00
Claudio Ortolina bba1b1eabc Remove redundant configuration (identical to defaults) 2026-03-13 16:22:58 +00:00
Claudio Ortolina d269b72838 Update esbuild to 0.27.4 2026-03-12 18:55:20 +00:00
Claudio Ortolina f42c449213 Update two frontend asset directives to conform with Phoenix 1.8.5 2026-03-11 15:43:37 +00:00
Claudio Ortolina 20b497bbb8 Don't track route not found errors 2026-03-10 20:05:27 +00:00
Claudio Ortolina d3e1ecd10b Remove Sobelow TODOs 2026-03-07 18:39:38 +00:00
Claudio Ortolina 2b09611fe9 Mark TODOs to change secrets in base configuration 2026-03-07 18:17:27 +00:00
Claudio Ortolina 6c2036ff7d Make excluded genres configurable 2026-03-06 09:45:42 +00:00
Claudio Ortolina 99e30d5fdf Send the records on this day email at 7am 2026-03-06 08:05:36 +00:00
Claudio Ortolina 06aaa35628 Increase buffer size for Telemetry Storage 2026-03-05 22:55:09 +00:00
Claudio Ortolina f109057be5 Persist telemetry data in local sqlite database 2026-03-05 13:39:38 +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