Skip to content

Release Notes

v0.2.1

This update focuses on recording correctness, session lifecycle cleanup, better observability, platform compatibility updates (Douyu / Huya), Docker GPU support, and frontend stability improvements. It also includes a broad round of dependency and CI maintenance.

Highlights

  • Added split reason tracking across the full stack
    Segment split reasons are now modeled and surfaced consistently across FLV/HLS pipelines, backend events, API responses, database session data, WebSocket/protobuf messages, and the frontend session details UI.

  • Improved session lifecycle correctness

    • Active sessions now close when disabled streamers are later confirmed offline
    • Temporary-disabled backoff handling is now authoritative and no longer bypassed by live events
    • Cancellation is treated as successful completion instead of a failure state
  • Added NVIDIA GPU support for Docker hardware-accelerated transcoding

  • Added NVIDIA NVENC encoder support in the remux pipeline H.264, HEVC, and AV1 NVENC codecs are now available as video codec options when CUDA hardware acceleration is enabled. The frontend auto-selects the correct presets, quality control (CQ vs CRF), and scale filter (scale_cuda). Includes 7 built-in NVENC job presets and 2 GPU pipeline presets via migration.

  • Improved HLS stream resilience and circuit breaker isolation Transient HLS segment errors (network timeouts, CDN body decode failures) no longer abort the entire stream. Circuit breakers are now scoped per-streamer so one streamer's CDN issues don't trip the breaker for unrelated streamers on the same engine. Half-open state thresholds are now configurable.

  • Made graceful stop timeout configurable for the downloader

  • Improved download resilience The downloader now recovers from transient errors when strong progress has been made, instead of failing the entire session.

  • Improved Douyu support

    • Updated Douyu API handling for new request/version requirements and newer error-code behavior
    • Region-lock and retry-related error handling was adjusted accordingly
  • Updated Huya platform extractor for latest API changes

  • Added and exposed danmu statistics Danmu statistics are now collected, exposed by the backend, and displayed in the session UI with timeline charts, top talkers and word frequency rankings, and summary metric cards.

  • Improved frontend stability and polish

    • Fixed FOUC/theme initialization issues
    • Standardized dashboard loading skeletons and animations
    • Improved session playback UX and related frontend behavior
    • Fixed subscription dialog overflow on scaled displays
    • Fixed recordings timeline segment start times and false positive break detection
    • Fixed invalid logs URL construction
  • Improved notification quality

    • Download notifications now use the streamer display name instead of UUIDs
    • Telegram HTML payload handling was fixed
    • Legacy web push AES128GCM header handling was cleaned up

Behavior changes / review before upgrading

  • Douyu HS CDN support was removed
    If you relied on that specific Douyu configuration path, review your setup after upgrading.

  • Split reason data model changed
    This update adds richer segment/session split metadata and includes a related database migration. Review any consumers that depend on previous session or segment semantics.

  • Session segment timestamp semantics changed
    Session segment rows now distinguish recording start (created_at), recording completion (completed_at), and database insert time (persisted_at). Legacy rows may have null lifecycle timestamps and should use persisted_at for insertion-time semantics.

  • HLS configuration was cleaned up
    Mesio HLS configuration was reorganized across backend and frontend forms/schema. Review HLS-related settings after upgrading.

  • Cancellation semantics changed
    Cancellation is now treated as a successful completion path rather than a failure outcome. If you rely on completion/failure status downstream, review that behavior.

  • Temporary-disabled streamer behavior changed
    Backoff and disabled_until handling now remain authoritative even when new live events arrive.

  • Disabled streamers now close active sessions once offline is confirmed
    This may affect operational expectations if you previously relied on lingering sessions.

Improvements

Recording, pipeline, and processing

  • Improved compression processing with progress reporting, cancellation handling, and buffered I/O
  • Reduced overhead in writer callback paths
  • Batched pipeline and worker-pool log emission
  • Improved cancellation token propagation for mesio FLV downloads
  • Added more tolerant AMF0 lossy decoding support
  • Made graceful stop timeout configurable
  • Added recovery from transient download errors when strong progress has been made
  • Improved HLS stream resilience: transient segment errors (network/timeout) no longer abort the stream
  • Improved circuit breaker isolation to per-streamer scope with configurable half-open thresholds
  • Separated pipeline cancel and delete semantics
  • Optimized hex encoding with single pre-allocated String

Frontend

  • Fixed theme/provider regressions
  • Fixed flash-of-unstyled-content issues
  • Unified loading and empty-state transitions across dashboard pages
  • Improved session page playback behavior
  • Fixed subscription dialog overflow on scaled displays
  • Fixed recordings timeline segment start times and false positive break detection
  • Fixed invalid logs URL construction

Notifications and visibility

  • Better download notification display data
  • Better session metadata exposure across backend and frontend
  • Added danmu statistics panel with timeline charts, top talkers, word frequency rankings, and summary metric cards

Platform support

  • Updated Douyu extractor behavior for the latest API requirements
  • Removed obsolete Douyu HS CDN configuration support
  • Updated Huya extractor for latest API changes

Docker

  • Added NVIDIA GPU support for hardware-accelerated transcoding via compose override

Transcoding

  • Added NVIDIA NVENC encoder support (H.264, HEVC, AV1) with CUDA-aware scale filter, CQ quality control, and built-in presets

Maintenance

  • Migrated frontend tooling to Vite 8 and SWC
  • Updated Node.js from 22 to 24 LTS
  • Skipped Rust CI jobs on frontend-only PRs to reduce wasted CI time
  • Refreshed Rust, frontend, docs, and GitHub Actions dependencies
  • Updated repository text-file line-ending normalization with .gitattributes

Released under the MIT License.