Skip to content

Releases: Kimsec/Stream-Control

v1.1.0

15 Dec 21:51

Choose a tag to compare

Changelog

Added

  • NOW ON GUNICORN FOR PRODUCTION 🥳
  • Advanced panel is now grouped into sections: MiniPC, Chatbot, and Backend.
  • Chatbot moderation UI: Add banned word/sentence (add-only) with a show/hide form (Add + Cancel).
  • API endpoint: POST /api/banned_words to append entries to the chatbot banned_words.txt with auto reload of wordlist.
  • Backend section: IP bans button linking to /bans.

Fixed

  • GUI scale tweaks

v1.0.0

24 Nov 20:33

Choose a tag to compare

Changelog

v1.0.0

🎉 First stable release! The testing phase is officially over - Stream Control v1.0.0 is now considered stable

Changed (v1.0.0)

  • Chat tab layout now keeps the overall page height consistent whether the Twitch preview is visible or hidden by dynamically offsetting the chat container via --preview-offset.
  • Preview toggle logic watches the embed height with a ResizeObserver, ensuring the Twitch chat automatically shifts to sit directly under the live preview without introducing scroll.

Improvements

  • Code polish across the preview/chat
  • Fine-tuned the ResizeObserver wiring so preview height changes propagate instantly.
  • General UI touch-ups (button states, modal handling) to keep the stable release feeling snappy.

v0.9.5

27 Oct 19:30

Choose a tag to compare

📢 v1.0.0 stable release coming soon! This is the final pre-release before v1.0.0. We're polishing the last details and conducting final testing.

This release represents the final feature set before our stable v1.0.0 release. We're now focusing on:

  • Final stability testing
  • Documentation improvements
  • Bug fixes only

Changelog:

Added

  • Twitch viewer count in the OBS tab with live-only polling

    • New API: GET /twitch/stream_info returns { is_live, viewer_count, title, game_name, started_at }
    • Frontend polls only while streaming; interval configurable via window.__VIEWER_POLL_MS (default 10s)
  • Top Twitch player embed

    • Edge-to-edge container, muted autoplay, correct parent handling via template attributes
    • Double-click Chat tab to toggle; fully unloads iframe on hide to stop audio/data
    • Uses the logged-in broadcaster automatically (cached from /twitch/channel_info) for instant show
    • Prevent text selection on double-click for a clean gesture
  • Power action confirmations

    • Shared confirmation modal for Restart/Shutdown (in addition to Stop Stream)
    • Repair Backend confirmation modal (restarts nginx and StreamGuard)
  • Guard robustness

    • Health HTTP server now supports graceful shutdown, address reuse, and retry binding to tolerate fast systemd restarts
    • Token validator triggers forced EventSub resubscription when a previously invalid token becomes valid again
    • Bitrate guard supports LIVE_SCENE_LOW_GRACE_SEC to ignore low-bitrate blips immediately after switching to LIVE
  • Title/Category editor UX

    • Debounced category search with request aborts; minimum 2 chars; similarity-ranked results (top 6)
    • Prefills from a 5‑minute channel info cache and shows placeholders while loading
  • Restream editor UI

    • Switched to class-based selectors; grid layout; cleaner icon buttons; compact mobile view (hide RTMP until editing)
  • Health panel mapping refined

    • ChatGuard dot shows ws when WebSocket is up but subscription not yet confirmed; added stunnel service state mapping

Fixed

  • Eliminated "Address already in use" on rapid systemctl restart of StreamGuard (health server binds with reuse + retries)
  • Prevented accidental text selection when toggling the Twitch player
  • Corrected chat fullscreen sizing and z-index so the player stays above the chat iframe
  • Logs viewer polish: stale message guards and no duplicate backlog when following

v0.8.5

23 Sep 20:41
9eefbc5

Choose a tag to compare

Changelog

Added

  • Logs Viewer in the web UI (Mini‑PC tab → Logs):
    • Service dropdown (StreamGuard, Chatbot, Nginx, Stunnel Kick, Stream Control)
    • Line count selector (25/50/100), Follow mode via WebSocket
    • Journalctl‑style timestamps (e.g., "Sep 08 04:56:38:"), color highlighting
    • Clean switching without mixing logs, auto‑scroll, and buffer trimming
    • API: GET /api/logs?service=<key>&lines=<n>, WS: /ws/logs?service=<key>
  • Health Indicators expanded:
    • Shows Chatbot, Nginx, Stunnel, StreamGuard, ChatGuard, SLS, OBS, Twitch Events WS, Raid AutoStop, Token
    • Concise labels and unified dot styling (ok/offline/error)
  • Repair Backend button on Mini‑PC tab to restart core services (nginx and StreamGuard)
  • IP Banning support with admin UI at /bans and persistent bans.json

Changed

  • Status emojis replaced with unified health dots across the UI
  • EventSub resubscribe logic hardened:
    • Immediate attempt on session_welcome
    • Forced resubscribe when token transitions to valid
    • Backoff to prevent spamming

Fixed

  • Logs initial load always respects the selected line count (default 25)
  • Prevent stale WebSocket messages when switching services in Logs Viewer
  • Minor CSS/layout refinements for logs and mobile

v0.7.2

26 Aug 08:39
37c2c3f

Choose a tag to compare

Changelog:

  • Security: Automatically blocks an IP after three failed login attempts.
  • Administration: Added a /bans endpoint to review ban details and lift bans.
  • UI/UX: Modernized the login screen for a cleaner, more contemporary look.

v0.6.5

15 Aug 09:14
a1aa8f9

Choose a tag to compare

Full Changelog:

  • Added Chat commands
  • New health indicators

v0.5.1

11 Aug 14:43
031dc8d

Choose a tag to compare

Tested in full production, 100% working