Skip to content

Changelog

Version 0.16.0

What’s New?

Reduced Memory Usage

Moving to Zod in 0.15.0 provided a big reduction in memory footprint that has been further improved in this release by moving individual Source/Client validation to be dynamically loaded. This means MS will not load validation/types for Source/Clients you do not use.

Users with a minimal number of Sources/Clients should see the largest impact from this.

Benchmarks for MS with no Sources/Clients

Startup

Version Runtime Validation Context % Memory Usage Change
0.14.2 tsx ts gen + ajv -
0.15.0 node zod + eager validation -13%
0.16.0 node zod + dynamic validation -14%

Stabilized (after 4 minutes of running)

Version Runtime Validation Context % Memory Usage Change
0.14.2 tsx ts gen + ajv -
0.15.0 node zod + eager validation -22%
0.16.0 node zod + dynamic validation -27%

ENV Config UX Improvements

The move to Zod in 0.15.0 also opened the door for big improvements to ENV Config experience for the end-user:

Self-Documenting

ENV variables now share, or inherit, schema from file/aio config so ENV descriptions match those found elsewhere. The ENV config for Source/Clients in the docs is now self-documenting (generated from schema) to prevent typos and make common ENV easier to extend.

Improved Validation

ENV validation at startup is now more straightforward and useful. Instead of mapping variables to file (KOITO_TOKEN => data.token) and then printing an error

βœ– Invalid input: expected string, received undefined
β†’ at data.token

Variables are now directly validated to give you a clearer idea of what is missing or wrong

βœ– Invalid input: expected string, received undefined
β†’ at KOITO_TOKEN

Source/Client ID Enforcement

To further improve DX/UX the ID requirements first introduced in 0.14.0 are now mandatory.

Previously, MS would log a warning and use your Source/Client name as the ID, as noted in the 0.14.0 upgrade guide. Now, it reports a configuration error if no ID is present.

To migrate, fully complete the Configuring IDs section from the 0.14.0 migration guide.

Other Changelog Highlights

⛰️ Features

  • (lfm endpoint) Implement better api emulation #656
  • (source) Add Ingress SOT type
  • (now playing) Buffer valid updates for endpoint sources #659
  • (ui) Improve UX for theme switcher
  • (ui) Implement basic settings page
  • (No Category) Improve location wording for config errors

πŸ› Bug Fixes

  • (source): Fix player cleanup for ingress sources #652 #591

πŸ“š Documentation

  • (No Category) Use italicize-bold text style for required env properties instead of separate column
  • (No Category) Update env descriptions for id, name, and enable
  • (No Category) Update now playing for clients
  • (No Category) Fix config.json example
  • (No Category) Add lastfm endpoint alternative guidance
  • (No Category) Update configuration types language