Commits
* Make landing description more generalized.
* Put Koito as first client. Maloja is unmaintained and shouldn't be showcased.
alpine hasn't been used in awhile due to dns problems
chore(docker): Add source OCI labels
These labels are used, among other things, by Renovate to pull
changelogs/link to the upstream repository automatically
(https://docs.renovatebot.com/modules/datasource/docker/).
Patch package to fix response content type change from librefm until scriptex/lastfm-ts-api#52 is merged
feat: Implement play diffing with inputs for debugging
Capture payload, response/body, errors, and warnings so we can store them in play lifecycle for future debugging
Fixes shared scrobble object overwriting lifecycle data for each scrobble client
* Store Source input and original play
* Store transformer hook results as diff patches alongside stage-specific arbitrary input data
* Use jsondiffpatch console format to log stage diffs
* Store scrobble payload data
Device Name/GroupName is more likely to exist and less likely to cause issues than upnpclass and other things we are looking for to verify its a valid track.
User can block the erroring device to "fix" bad behavior.
fix(sonos): Gracefully handle failure when fetching device state #455
feat(musicbrainz): Search by track MBID
feat(lastfm): Add response content logging
* Support timeout scriptex/lastfm-ts-api#50
* Error response debugging scriptex/lastfm-ts-api#51
* Use invariant hash for seen state logging
* Removes dependence on individual properties being available
* Drop player state if an existing existing player has the same play, rather than dropping by existing group
* Enable logging empty player for more debugging info
try to get device summary with for loop
add env gate to sonos test playground
disable debug test
Add mising type to source status data
refactor: Optimize production for memory usage
* Use dynamic import for schema based on environment
* If production use pre-generated json to avoid loading vega generator -- big memory footprint reduction
* If not production use vega so schema is always up to date
So that introducing trackId isn't confusing
* Use invariant hash for seen state logging
* Removes dependence on individual properties being available
* Drop player state if an existing existing player has the same play, rather than dropping by existing group
* Enable logging empty player for more debugging info
try to get device summary with for loop