Skip to content

StreamQueue v0.2.2

Choose a tag to compare

@choompuy choompuy released this 04 Oct 21:58
· 96 commits to main since this release

This release focuses on reliability, Twitch connection recovery, YouTube request handling, Windows distribution, and a more self-contained application experience.

Highlights

  • More reliable Twitch integration

    • Added automatic recovery for stalled or disconnected Twitch Chat and EventSub connections.
    • Added Twitch health status and reauthorization warnings to the control panel.
    • Improved OAuth recovery and handling of revoked or unauthorized tokens.
    • Prevented authentication failures from causing endless reconnect loops.
    • Improved device-code polling and Twitch API error handling.
    • Added safer WebSocket shutdown and background reconnection.
  • Improved Channel Points reliability

    • Centralized redemption completion and refund handling.
    • Redemption status is now updated consistently when requests are played, removed, cleared, or blocked.
    • Distinguishes successful Twitch refunds from failed refund API requests.
    • Chat messages no longer claim a refund unless Twitch actually accepted it.
    • Improved Channel Points reward validation and error reporting.
  • YouTube search and playback improvements

    • Added configurable YouTube content mode:

      • Music — the default mode for music-focused requests.
      • Any — allows other YouTube video categories.
    • Improved filtering using YouTube topic and category metadata.

    • Scheduled streams are no longer treated as playable videos.

    • Improved live stream handling.

    • Avoided unnecessary YouTube API quota usage for requests that do not reach the API.

    • Improved quota accounting for timeouts and API responses.

    • Overlay playback can now recover from transient YouTube player errors without stalling the queue.

    • Overlay retries preserve the current playback position where possible.

  • Queue and fallback reliability

    • Queue items are now removed by videoId instead of array index.
    • Added server-side validation for queue removal requests.
    • Improved queue restoration and deduplication after restart.
    • Reduced queue state drift between persisted and runtime state.
    • Fallback track data is persisted separately from the main queue state.
    • Playlist filtering now preserves playlist ordering.
  • Stable server port

    • Added a persisted server port with 4747 as the default.
    • If the configured port is occupied, StreamQueue selects the next available port.
    • Reusing the persisted port keeps the OBS overlay URL stable across restarts.
  • Self-contained frontend

    • Removed remote Google Fonts and other remote frontend assets.
    • IBM Plex Mono is now bundled with the application.
    • QR code generation now uses a local bundled library.
    • Improved local asset and navigation URL handling.
    • Added local-address and host validation.
  • Windows release workflow

    • Added an automated Windows release build.
    • Release packages now assemble the SEA executable, frontend assets, license, and optional tray launcher.
    • Updated the tray launcher documentation for the .NET 10 WinForms application.
    • Documented self-contained tray launcher publishing.
    • Updated packaging requirements and release instructions.
  • CI and code quality

    • Added GitHub Actions CI checks for type checking, linting, and tests.
    • Added ESLint configuration and updated TypeScript/tooling configuration.
    • Expanded backend and frontend regression coverage across Twitch, YouTube, queue, persistence, and playback behavior.
    • Cleaned up test lint warnings and unused code.
  • Logging and persistence

    • Centralized application logging with file output and log rotation.
    • Improved runtime data and cache path resolution.
    • Persistence now defers file reads until they are actually needed.
    • Improved compatibility with existing persisted state.
    • Hardened configuration validation and secret handling.
    • Fixed port availability checks.

Breaking / behavioral changes

  • The default YouTube content mode remains Music, preserving the previous music-focused behavior.
  • The server now persists its selected port, so the same installation can keep a stable local overlay URL.
  • Twitch authentication failures may now require explicit reauthorization instead of silently retrying indefinitely.

Upgrade

For the Windows standalone release, replace the application files with the new v0.2.2 package while preserving your existing data/, cache/, and logs/ directories.

Existing configuration, playlists, queue state, and Twitch OAuth data are migrated through the application's normal persistence layer.