Commit graph

1151 commits

Author SHA1 Message Date
FoxxMD
760373c227 docs: Replace instances of foxxmd.github.io
Some checks failed
Publish Docker image to Dockerhub / test (push) Has been cancelled
Publish Docker image to Dockerhub / Build OCI Images (push) Has been cancelled
Publish Docker image to Dockerhub / Build OCI Images-1 (push) Has been cancelled
Publish Docker image to Dockerhub / Merge OCI Images and Push (push) Has been cancelled
2026-04-07 12:44:41 +00:00
FoxxMD
db0e74aec3 feat(client): Strict ENV types
Some checks are pending
Publish Docker image to Dockerhub / test (push) Waiting to run
Publish Docker image to Dockerhub / Build OCI Images (push) Blocked by required conditions
Publish Docker image to Dockerhub / Build OCI Images-1 (push) Blocked by required conditions
Publish Docker image to Dockerhub / Merge OCI Images and Push (push) Blocked by required conditions
2026-04-06 20:10:25 +00:00
FoxxMD
a918a96d34 feat(sources): Better type enforcement 2026-04-06 20:07:30 +00:00
FoxxMD
bb51915085 feat: Increase transform play concurrency
Since MB rate limiting is done by api calient we can safely increase number of plays transformed without risking MB errors from rate limits
2026-04-06 19:12:19 +00:00
Matt Foxx
7c177dfe03
Merge pull request #521 from FoxxMD/processingOverhaul
refactor: Overhaul long-running processes
2026-04-06 15:11:11 -04:00
Matt Foxx
cf5e7ca1fe
Merge pull request #523 from Druidblack/master
feat: Add Yandex Music source
2026-04-06 14:58:11 -04:00
Druidblack
fd43ff86c8
added NO_DEVICE and NO_USER 2026-04-06 21:36:21 +03:00
FoxxMD
0bef197521 feat(yandex): Add env source config 2026-04-06 14:06:05 +00:00
FoxxMD
f16750609a feat(yandex): Handle bridge errors as upstream with some response context 2026-04-06 13:58:43 +00:00
FoxxMD
c39ef29597 fix: Add missing type to sourcestatusdata 2026-04-06 13:48:49 +00:00
FoxxMD
72639616b7 fix(jellyfin): Fix typo on devicesBlock env assignment #522 2026-04-06 12:53:04 +00:00
Druidblack
effe870104
fix time track
fixed the calculation of the track playback if it has ended and the new ones have not started.
2026-04-05 20:56:18 +03:00
Druidblack
5f4a5cb815
add yandex music 2026-04-05 19:35:00 +03:00
FoxxMD
0607aedf04 feat(musicbrainz): Handle rate limiting within api calls
Instead of using staggerMap with MB transformer settings, handle at api call level for each host
2026-04-02 21:23:26 +00:00
FoxxMD
1f165096b3 feat(client): make scrobble processing abortable 2026-04-02 19:42:59 +00:00
FoxxMD
fb6f6a18c8 feat(source): Make discover abortable 2026-04-02 18:41:45 +00:00
FoxxMD
03f8b20704 refactor: Implement abortable source polling
Use abort-controller-x with signals to interrupt polling process

#483
2026-04-02 18:36:20 +00:00
FoxxMD
c49cdba718 fix: Initialize plays in correct scope
Some checks failed
Publish Docker image to Dockerhub / test (push) Has been cancelled
Publish Docker image to Dockerhub / Build OCI Images (push) Has been cancelled
Publish Docker image to Dockerhub / Build OCI Images-1 (push) Has been cancelled
Publish Docker image to Dockerhub / Merge OCI Images and Push (push) Has been cancelled
2026-04-02 01:29:56 +00:00
FoxxMD
de67879af5 test: Make loop stop wait time configurable so tests run faster/more stable 2026-04-01 17:10:59 +00:00
FoxxMD
9d0cf8f845 feat: Implement dispose methods for classes with schedulers and long running async tasks 2026-04-01 17:10:25 +00:00
FoxxMD
1f2772353a fix: Fix circular dependency in error utils 2026-04-01 12:59:08 +00:00
Matt Foxx
664395a0ee
Merge pull request #508 from FoxxMD/cacheAusterity
feat: Reduce cache memory usage
2026-03-31 09:01:46 -04:00
FoxxMD
007d553d59 fix missed ttl for mb tests 2026-03-30 19:24:57 +00:00
FoxxMD
7c8c185c4c refactor: Remove ttl from mb api to ensure primary/secondary ttl is used correctly 2026-03-30 18:59:37 +00:00
FoxxMD
972eccd0bf cache init cleanup 2026-03-30 18:50:54 +00:00
FoxxMD
7a8cf7c004 feat: Skip fetching backlogged plays entirely if scrobbleBacklog=false
Some checks are pending
Publish Docker image to Dockerhub / test (push) Waiting to run
Publish Docker image to Dockerhub / Build OCI Images (push) Blocked by required conditions
Publish Docker image to Dockerhub / Build OCI Images-1 (push) Blocked by required conditions
Publish Docker image to Dockerhub / Merge OCI Images and Push (push) Blocked by required conditions
2026-03-29 23:50:55 +00:00
Matt Foxx
3f19abb899
Merge pull request #506 from FoxxMD/musicAssistant
Some checks are pending
Publish Docker image to Dockerhub / test (push) Waiting to run
Publish Docker image to Dockerhub / Build OCI Images (push) Blocked by required conditions
Publish Docker image to Dockerhub / Build OCI Images-1 (push) Blocked by required conditions
Publish Docker image to Dockerhub / Merge OCI Images and Push (push) Blocked by required conditions
Music assistant
2026-03-29 19:30:50 -04:00
FoxxMD
fe03bcd651 refactor: Refactor cache building to be able to specify both primary and secondary 2026-03-28 21:36:18 +00:00
FoxxMD
1f319cb9f6 fix: Use lifecycle invariant play for closest match 2026-03-28 02:01:14 +00:00
FoxxMD
a0ac0f8e46 reduce step ttl to 2 minutes 2026-03-27 20:30:48 +00:00
FoxxMD
06945fda52 feat: Improve cache stats
* Remove vsize since its very inaccurate
* Use memory store `size` for count, if present
2026-03-27 20:30:32 +00:00
FoxxMD
306c4c858e fix: Only enable metrics collection for real runs 2026-03-27 18:51:00 +00:00
FoxxMD
81885632a0 feat: Add cache stats to prometheus metrics 2026-03-27 18:45:30 +00:00
FoxxMD
dda06a0873 add chunk array function 2026-03-27 16:08:47 +00:00
FoxxMD
eca64d68e7 fix(musicbrainz): Catch recordings with no releases 2026-03-27 16:06:43 +00:00
FoxxMD
d92153f85f fix: Fix sleep time between consecutive dead scrobble attempts 2026-03-26 08:40:16 -04:00
FoxxMD
22d76c459a fix(scrobble): Improve ui/api experience for dead scrobble processing
* Return 200 when processing all, don't wait to finish to prevent response timeout
* Use event stream to update/remove/add dead scrobbles in ui

#489
2026-03-26 08:40:16 -04:00
FoxxMD
ec87ab96d6 fix(scrobble): Improve dead scrobble iteration and logging
* Use filtered, processable scrobbles in for-loop to avoid any weird in-place array splice issues when iterating
* Add more logging with labels/ids to make logging more readable
* Move dead scrobble removal function closer blocks where it should happen
2026-03-26 08:40:13 -04:00
FoxxMD
f62fe270fb feat(scrobble): Increase default dead letter retries from 1 to 3
#488
2026-03-26 08:36:54 -04:00
FoxxMD
0685d4b06d feat(lzendpoint): Update json body parsing to support Music Assistant 2026-03-25 20:19:29 +00:00
FoxxMD
82c0a4faec fix: Refactor play tranforming to dogfood steps and fix caching #495
* Re-use lifecycle steps/patch to build diffs
* Break out step generation into own function to simplify logic
* Cache steps instead of play to avoid returning a cached play when data is the same #495
* Replace patch object/patching logic with json-diff-ts as its more robust and actually maintained
  * Reduces need to stringify everywhere due to lack of cloning in jsonpatchdiff
2026-03-25 18:48:47 +00:00
FoxxMD
ccbd5e304a fix: Better handling when stage fails but should continue 2026-03-25 10:13:06 -04:00
FoxxMD
22cf95e58c feat(listenbrainz): Use upstream for backlogged 2026-03-25 01:37:54 +00:00
FoxxMD
358355c612 refactor: Move stagger config responsibility to transformer 2026-03-25 00:41:10 +00:00
FoxxMD
0dfa4c7aad fix(test): Fix expected plays for YTM interim plays 2026-03-24 20:23:47 +00:00
FoxxMD
68e473ec02 fix: Add stagger options as injected dependency to make tests faster 2026-03-24 20:21:14 +00:00
FoxxMD
a8d20734aa fix: Fix wrong operation for maxRandomStagger 2026-03-24 20:20:37 +00:00
FoxxMD
ebdb76cf6c fix: Fix type-erased meta property for json plays 2026-03-24 20:19:27 +00:00
FoxxMD
e62e1ac2dd feat: Add seenAt to source/client play meta 2026-03-24 19:38:05 +00:00
FoxxMD
e68b46f647 feat(ui): Implement play activity sortby seen/played 2026-03-24 19:15:54 +00:00