Update Notes - 3-30-2025 (5.0.0)
5.0.0 is a substancial under-the-hood rewrite that updates every component in the system to upgrade the underlying frameworks TVS is built upon.
🚨 BREAKING CHANGES:
- Removed incompatible Vime library.
video@1
andvideo@2
have been removed and should not be used anymore. To fix your config file if it's broken, usevideo
rather thanvideo@1
orvideo@2
. hlsBugFix
option was removed fromvideo
engine since the bug that it was fixing isn't present anymore.- Video game
console
option is no longer recognized; usecore
instead (https://nostalgist.js.org/apis/launch/#core) - The "1989" theme should be specified in quotes.
- Disabled Nightwave Plaza API querying due to CORS blocking.
Replace this:
guide:
theme: 1989
To this:
guide:
theme: "1989"
📦 Dependency Updates:
- Updated to Svelte 5 and rewrote all content engines to include better type definitions.
- Updated Nostalgist library to 0.14 from 0.11 to fix some bugs in the VideoGame engine.
🐛 Bug Fixes:
- Fixed invalid HTML structure in program guide tables
- Added better teardown logic for exiting video games
- Addressed issue where channels were not properly torn down upon channel change
- Fixed audio volume issues with Visualizer engine
- Fixed aspect ratio issue in Bouncing Logo engine
- Fixed verbiage for off-air channels in Channel List engine
✨ New Features:
- Added schema validation support for configuration files. To take advantage of this, add the following line to the top of your configuration file, including the "# " at the beginning:
# yaml-language-server: $schema=https://gcpw.art/tvs/schemas/5.0.0.json
Then open the file in Visual Studio Code with the YAML extension installed.
When new versions of the schema are released I'll call them out in the notes; you'd change the 5.0.0.json
to the latest schema version to validate against it instead.
- Added
stretch
aspect ratio to the Image engine. This will stretch images to the size of their container regardless of aspect ratio. - Added
shuffle
parameter to loops that allows you to shuffle them randomly or in such a way that the entire cycle gets played through once, then repeated again.
- number: 181
name: Shuffled Loop
abbr: LSHUF
loop:
shuffle: random # You can shuffle the content in a loop. Use `random` to shuffle the content randomly, or `cycle` to shuffle the content in a cycle.
content:
- image: placeholders/sequence/0.jpg
duration: 3
- image: placeholders/sequence/1.jpg
duration: 3
- image: placeholders/sequence/2.jpg
duration: 3
- image: placeholders/sequence/3.jpg
duration: 3
- image: placeholders/sequence/4.jpg
duration: 3
- image: placeholders/sequence/5.jpg
duration: 3
- number: 182
name: Cycled Loop
abbr: LCYCL
loop:
shuffle: cycle # Cycle shuffling will play back the content in a random order but show all content before repeating.
content:
- image: placeholders/sequence/0.jpg
duration: 3
- image: placeholders/sequence/1.jpg
duration: 3
- image: placeholders/sequence/2.jpg
duration: 3
- image: placeholders/sequence/3.jpg
duration: 3
- image: placeholders/sequence/4.jpg
duration: 3
- image: placeholders/sequence/5.jpg
duration: 3
🕶️ Aesthetics:
- Updated the default welcome image with a new look.