Releases: metaversecloud-com/jukebox
Release v2.1.2
? Release v2.1.2
Version Bumps Applied:
- Major: false
- Minor: false
- Patch: true
Triggered by: PR #21 - Fix removing currently playing song from catalog
Merged by: @LinaBell
Changes in this PR
Summary
- When the currently playing song is removed from the catalog, the canvas media now stops immediately and skips to the next available song in the queue
- If no songs remain in the queue, media is set to none and nowPlaying is cleared
- Publishes a nowPlaying SSE event so all connected clients update immediately
- Previously, removing a playing song only updated the data object without stopping the canvas media, causing the removed song to continue playing, loop, or create desync between UI and audio
Test plan
- Play a song, remove it from catalog while playing — verify it stops and next song starts
- Play a song with nothing in queue, remove from catalog — verify media stops completely
- Play a song, remove a different song from catalog — verify currently playing is unaffected
- As non-admin user, verify audio stops when admin removes the currently playing song
- Remove from queue (not catalog) — verify existing behavior unchanged
Generated with Claude Code (https://claude.com/claude-code)
This release was automatically created by the Auto Release workflow
What's Changed
Full Changelog: v2.1.1...v2.1.2
Release v2.1.1
? Release v2.1.1
Version Bumps Applied:
- Major: false
- Minor: false
- Patch: true
Triggered by: PR #20 - Prevent crashes from API timeouts & fix build issues related to pipeline update
Merged by: @LinaBell
Changes in this PR
Summary:
- Add res.headersSent guard in errorHandler to prevent double-send crashes when Topia public API returns 502 timeout
- Add unhandledRejection and uncaughtException process handlers as safety net
- Fixes intermittent app crashes during API timeouts
Test plan:
- Verify app continues to handle normal errors correctly
- Verify app does not crash when an SDK call times out mid-request
- Verify error is logged but response completes gracefully when headers already sent
Generated with Claude Code (https://claude.com/claude-code)
This release was automatically created by the Auto Release workflow
What's Changed
Full Changelog: v2.1.0...v2.1.1
Release v2.1.0
? Release v2.1.0
Version Bumps Applied:
- Major: false
- Minor: true
- Patch: false
Triggered by: PR #19 - Add admin settings UI for mode, name, and image
Merged by: @LinaBell
Changes in this PR
Summary
- Replaces the AUDIO_ONLY env var with a per-asset admin setting stored in the dropped asset data object
- New Admin Settings section with Mode dropdown (Jukebox/Karaoke), Name input, and Image URL input
- Header component now shows custom name/image with mode-based defaults (Jukebox or Karaoke)
- AUDIO_ONLY env var still respected as fallback for backwards compatibility
- New POST /api/settings endpoint (admin-only) with validation and locking
Test plan
- Open as admin, navigate to Admin tab, verify Settings section appears with current values
- Change Mode to Jukebox, save, verify next song plays as audio only
- Change Mode to Karaoke, save, verify next song plays with video
- Set custom Name, verify Header displays it
- Set custom Image URL, verify Header displays it
- Clear Name/Image URL, verify defaults appear based on Mode
- Verify non-admin users cannot access /api/settings (returns 401)
- Verify existing assets without settings get default settings on first load
- Verify AUDIO_ONLY env var still works as fallback when settings.mode is missing
Generated with Claude Code (https://claude.com/claude-code)
This release was automatically created by the Auto Release workflow
What's Changed
Full Changelog: v2.0.8...v2.1.0
Release v2.0.8
? Release v2.0.8
Version Bumps Applied:
- Major: false
- Minor: false
- Patch: true
Triggered by: PR #18 - Release: Update @rtsdk/topia to v0.20.1
Merged by: @LinaBell
Changes in this PR
Summary
- Update @rtsdk/topia SDK dependency to v0.20.1
Test plan
- Verify app starts without errors
- Verify SDK interactions work correctly
🤖 Generated with Claude Code
This release was automatically created by the Auto Release workflow
What's Changed
- refactor elasticache client by @notchjpl in #15
- improve connection by @notchjpl in #16
- Release: Update @rtsdk/topia to v0.20.1 by @LinaBell in #18
Full Changelog: 2.0.7...v2.0.8
2.0.7
2.0.6
2.0.5
2.0.4: Change particle position to be above asset (#7)
* Initialize dev * Add production release CICD * Create Vite App in Client * Remove Vite boilerplate * Configured port and proxy * express server setup, vite build dir, prettier * Server Boilerplate * Path alias configured * Client boilerplate * Client boilerplate set up * README done, ports changed, env setup * Removed test button * Google API added * Server changed to ts * client updated * minimalistic jukebox done (v 0.0.1) * Search set up * webhook route created * UI started * Client Side WIP * Server side WIP * Added marquee and infinite scroll * playVideos from client, reorg * Locking Implemented * Get Catalog * skeleton loader and sse trial * implemented sse * improved infinite scroll * client cleanup * SSE using event emitters WIP * global event emitter object * admin wip * Add to Queue done * client cleanup * server cleanup * ready for testing * package lock regenerated * Docker file changed * Update aws-dev.yml * Added npx to package json * file extensions added manually * Update package.json * Update package.json * Update Dockerfile * cicd * improved queuing * update package-lock and restore npm start script * copy all content * update dev pipeline * temporarily ignore ts * Changed file name * improved health check * Admin settings (remove from catalog) * (temp) dont remove currently playing video * Replace fetch-event-source with EventSource * scalability using redis * removed temp fix * removed redis password * removed redis port * redis connection trial * add connect timeout * temp very large connect timeout * removed connect timeout * minor bug fixes * small bug fix * Used updated stylesheet, added checkInteractiveCred * updates wip * queue wip * queue done * rename * redis url fix * added error handler * more updates * fix nowPlaying err * audio only for stride * removed hard coded and added AUDIO_ONLY env * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * fix error screen * Add production release CICD * Add production release CICD * clean workflows * Add production release CICD * Add production release CICD * Add production release CICD * Add production release CICD * Update aws_dev_release.yml * Update aws_dev_release.yml * Update aws_dev_release.yml * Update aws_dev_release.yml * Add production release CICD * Add production release CICD * Add production release CICD * jukebox analytics * analytics & particles * views fix * UI fix * particle effect fallback * bug fix on queue * Update SDK * added particle name to healthcheck * gitignore * search bug fix + hide add button when loading * remove particles from env * move server start date * use updatePublicKeyAnalytics method * update particle effect position --------- Co-authored-by: LinaBell <lina@topia.io> Co-authored-by: Terraform <terraform@topia.io> Co-authored-by: notchjpl <128665993+notchjpl@users.noreply.github.com> Co-authored-by: Juan Pablo Lorier <jplorier>
Only Audio option
Audio only for Stride (#5) * Initialize dev * Add production release CICD * Create Vite App in Client * Remove Vite boilerplate * Configured port and proxy * express server setup, vite build dir, prettier * Server Boilerplate * Path alias configured * Client boilerplate * Client boilerplate set up * README done, ports changed, env setup * Removed test button * Google API added * Server changed to ts * client updated * minimalistic jukebox done (v 0.0.1) * Search set up * webhook route created * UI started * Client Side WIP * Server side WIP * Added marquee and infinite scroll * playVideos from client, reorg * Locking Implemented * Get Catalog * skeleton loader and sse trial * implemented sse * improved infinite scroll * client cleanup * SSE using event emitters WIP * global event emitter object * admin wip * Add to Queue done * client cleanup * server cleanup * ready for testing * package lock regenerated * Docker file changed * Update aws-dev.yml * Added npx to package json * file extensions added manually * Update package.json * Update package.json * Update Dockerfile * cicd * improved queuing * update package-lock and restore npm start script * copy all content * update dev pipeline * temporarily ignore ts * Changed file name * improved health check * Admin settings (remove from catalog) * (temp) dont remove currently playing video * Replace fetch-event-source with EventSource * scalability using redis * removed temp fix * removed redis password * removed redis port * redis connection trial * add connect timeout * temp very large connect timeout * removed connect timeout * minor bug fixes * small bug fix * Used updated stylesheet, added checkInteractiveCred * updates wip * queue wip * queue done * rename * redis url fix * added error handler * more updates * fix nowPlaying err * audio only for stride * removed hard coded and added AUDIO_ONLY env --------- Co-authored-by: LinaBell <lina@topia.io> Co-authored-by: Terraform <terraform@topia.io> Co-authored-by: notchjpl <128665993+notchjpl@users.noreply.github.com> Co-authored-by: Juan Pablo Lorier <jplorier>
More updates
More updates (#4) * Initialize dev * Add production release CICD * Create Vite App in Client * Remove Vite boilerplate * Configured port and proxy * express server setup, vite build dir, prettier * Server Boilerplate * Path alias configured * Client boilerplate * Client boilerplate set up * README done, ports changed, env setup * Removed test button * Google API added * Server changed to ts * client updated * minimalistic jukebox done (v 0.0.1) * Search set up * webhook route created * UI started * Client Side WIP * Server side WIP * Added marquee and infinite scroll * playVideos from client, reorg * Locking Implemented * Get Catalog * skeleton loader and sse trial * implemented sse * improved infinite scroll * client cleanup * SSE using event emitters WIP * global event emitter object * admin wip * Add to Queue done * client cleanup * server cleanup * ready for testing * package lock regenerated * Docker file changed * Update aws-dev.yml * Added npx to package json * file extensions added manually * Update package.json * Update package.json * Update Dockerfile * cicd * improved queuing * update package-lock and restore npm start script * copy all content * update dev pipeline * temporarily ignore ts * Changed file name * improved health check * Admin settings (remove from catalog) * (temp) dont remove currently playing video * Replace fetch-event-source with EventSource * scalability using redis * removed temp fix * removed redis password * removed redis port * redis connection trial * add connect timeout * temp very large connect timeout * removed connect timeout * minor bug fixes * small bug fix * Used updated stylesheet, added checkInteractiveCred * updates wip * queue wip * queue done * rename * redis url fix * added error handler * more updates * fix nowPlaying err --------- Co-authored-by: LinaBell <lina@topia.io> Co-authored-by: Terraform <terraform@topia.io> Co-authored-by: notchjpl <128665993+notchjpl@users.noreply.github.com> Co-authored-by: Juan Pablo Lorier <jplorier>