Skip to content

Releases

v0.6.10

Choose a tag to compare

@abc3 abc3 released this 15 Sep 18:39

What's Changed

  • chore(deps-dev): bump js-yaml from 4.3.1 to 4.3.2 in /web_app in the npm_and_yarn group across 1 directory by @dependabot[bot] in #145
  • fix(web): keep settings tab dom mounted so backup import works by @abc3 in #148

Full Changelog: v0.6.9...v0.6.10

v0.6.9

Choose a tag to compare

@abc3 abc3 released this 13 Sep 15:59

What's Changed

  • fix(web): stop requiring a youtube quality policy the backend already defaults by @abc3 in #137
  • fix(auth): report login failures in the ui and harden credential checks by @abc3 in #138
  • fix(web): read youtube source values from the form root by @abc3 in #140
  • feat(web): add a clone action to the routes table by @abc3 in #139
  • chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #143
  • fix(srt): bind caller sockets to the selected interface by @abc3 in #146

Full Changelog: v0.6.8...v0.6.9

v0.6.8

Choose a tag to compare

@abc3 abc3 released this 01 Sep 15:23

What's Changed

  • feat(sources): youtube source by @abc3 in #132

Full Changelog: v0.6.7...v0.6.8

v0.6.7

Choose a tag to compare

@abc3 abc3 released this 01 Sep 08:09

What's Changed

  • test: detect flaky tests with temper by @abc3 in #129
  • fix(endpoints): key bind targets on the socket an endpoint owns by @abc3 in #130
  • feat(sources): select one MPEG-TS program from a multi-program input by @abc3 in #131

Full Changelog: v0.6.6...v0.6.7

v0.6.6

Choose a tag to compare

@abc3 abc3 released this 25 Aug 17:23

What's Changed

  • fix(routes): recover srt routes after the sender disconnects by @abc3 in #125
  • feat(ci): build and publish multi-arch release images by @abc3 in #126
  • fix(sources): report why a source connection test failed by @abc3 in #127
  • test(sources): cover the probe process lifecycle without ffprobe by @abc3 in #128

Full Changelog: v0.6.5...v0.6.6

v0.6.5

Choose a tag to compare

@abc3 abc3 released this 25 Aug 12:27

What's Changed

  • fix(srt): surface failure reasons and keep routes reconnecting by @abc3 in #119
  • fix(routes): keep retrying routes resting on reconnecting status by @abc3 in #120
  • Add lints by @abc3 in #122
  • fix(ci): wait for CI to finish before publishing a release by @abc3 in #123
  • fix(rtmp): send player-bound metadata as onMetaData by @abc3 in #124

Full Changelog: v0.6.2...v0.6.5

v0.6.2

Choose a tag to compare

@abc3 abc3 released this 24 Aug 13:43
Immutable release. Only release title and notes can be modified.

What's Changed

  • chore: remove and ignore compiled assets by @hauleth in #62
  • chore: rework Rust compiler task in mix.exs by @hauleth in #63
  • feat: add MCP server by @abc3 in #64
  • feat(mcp): add more calls by @abc3 in #65
  • chore(security): add sobelow by @abc3 in #66
  • test(mcp): add e2e_mcp HTTP protocol test layer by @abc3 in #67
  • feat(source): add rtp source and signal generation transport tabs by @abc3 in #68
  • refactor(frontend): migrate to typescript by @abc3 in #70
  • feat(pipeline): implement IP access control for SRT listeners by @abc3 in #69
  • feat: add multicast support for UDP sources by @abc3 in #72
  • chore(deps): bump react-router from 7.14.2 to 7.16.0 in /web_app in the npm_and_yarn group across 1 directory by @dependabot[bot] in #71
  • feat(rtmp): add ingest server and route source by @abc3 in #75
  • chore(deps): bump esbuild from 0.28.0 to 0.28.1 in /web_app in the npm_and_yarn group across 1 directory by @dependabot[bot] in #76
  • feat(rtmp): implement RTMP client by @abc3 in #77
  • feat(monitoring): add storage and database metrics by @abc3 in #78
  • fix(tests): stabilize SignalGenerator restart assertions on CI by @abc3 in #79
  • feat(ui): implement the dashboard page by @abc3 in #80
  • feat(rtmp): enhance publishing with codec checks and inactivity handling by @abc3 in #98
  • fix(rtmp): update primary route attribution logic by @abc3 in #99
  • chore(deps-dev): bump js-yaml from 4.1.1 to 4.3.0 in /web_app in the npm_and_yarn group across 1 directory by @dependabot[bot] in #100
  • feat(srt): add more metrics by @abc3 in #101
  • refactor: replace duckdb to VictoriaMetrics/VictoriaLogs by @abc3 in #103
  • chore(deps): bump ws from 8.19.0 to 8.21.1 in /web_app in the npm_and_yarn group across 1 directory by @dependabot[bot] in #105
  • chore(deps): bump react-router from 7.16.0 to 8.3.0 in /web_app in the npm_and_yarn group across 1 directory by @dependabot[bot] in #106
  • chore(deps): bump postcss from 8.5.15 to 8.5.23 in /web_app in the npm_and_yarn group across 1 directory by @dependabot[bot] in #107
  • add ndi support by @abc3 in #104
  • fix(ui): persist sources and destinations when editing a route by @abc3 in #110
  • fix: derive bind address from the interface, pre-select a lone one, show link estimate in Gbps by @abc3 in #111
  • fix(ui): pre-select a lone interface when creating an endpoint by @abc3 in #114
  • chore(deps-dev): bump brace-expansion from 1.1.11 to 1.1.18 in /web_app in the npm_and_yarn group across 1 directory by @dependabot[bot] in #115
  • chore(deps-dev): bump js-yaml from 4.3.0 to 4.3.1 in /web_app in the npm_and_yarn group across 1 directory by @dependabot[bot] in #116
  • fix(route_handler): add SRT query encoding by @abc3 in #117
  • feat(ci): auto-bump VERSION on pull requests by @abc3 in #118

Full Changelog: v0.6.1...v0.6.2

v0.6.1

Choose a tag to compare

@abc3 abc3 released this 18 May 18:55
Immutable release. Only release title and notes can be modified.

Full Changelog: v0.6.0...v0.6.1

v0.6.0

Choose a tag to compare

@abc3 abc3 released this 17 May 15:27
Immutable release. Only release title and notes can be modified.

HydraSRT v0.6.0

Full changelog: v0.5.2...v0.6.0

Highlights

  • Telegram notifications for route status changes, with Settings UI and REST API
  • Pipeline logging — GStreamer debug output captured in DuckDB, browsable per route in the UI
  • Route status history & analytics — cluster-wide timeline, charts, and new API endpoints

New features

Telegram notifications

  • Configure Telegram bot token and chat ID under Settings → Notifications
  • Route status change events are sent via a dedicated HydraSrt.Notifications.Telegram process (rate-limited per route)

Pipeline logging

  • Native pipeline GST_DEBUG output is parsed, buffered, and stored in DuckDB (pipeline_logs table)
  • Telemetry hooks for pipeline log metrics
  • Per-route Pipeline logs tab in the routes UI with filtering
  • Automatic retention cleanup (default 24 hours) via stats cleaner

Route status history & analytics

  • Route status transitions recorded in DuckDB for historical views
  • Cluster-wide status timeline on the Routes page (live + history modes)
  • Improved analytics charts (custom tooltips, grid styling)

Routes management UI

  • Pagination for route list (page, limit query params; default limit 50, max 500)
  • Bulk actions: start, stop, or delete multiple selected routes
  • Tag filtering and improved route table UX
  • Optimistic UI updates for interface name changes

Improvements

  • Backup/failover config — nested backup_config JSON on routes replaced with top-level columns (backup_mode, backup_switch_after_ms, etc.); migration migrates existing data
  • PHX_CHECK_ORIGIN — configurable comma-separated allowed origins for Phoenix WebSocket checks (docs/envs.md)
  • Dev auth — API_AUTH_USERNAME and API_AUTH_PASSWORD env vars for development login
  • Demo mode UI — signal generation settings shown only when demo mode is active
  • Default gst_debug — migration sets gst_debug to 4 where unset (enables pipeline log capture)
  • Developer tooling — mix credence task for Credence semantic analysis; agent skills under .agents/skills/

Bug fixes

  • Prevent assigning duplicate address/port on endpoints
  • Correct route status updates in handler/UI
  • Remove expensive unused code paths
  • E2E/tests: dynamic ports instead of hardcoded values; interface alias wait helper
  • Drop runtime status / schema_status from route update payloads (avoids persisting transient state)

Database migrations

Run migrations on upgrade (included in mix setup / release boot):

  1. 20260514180000_flatten_route_backup_config — flattens backup_config → columns
  2. 20260516220000_set_gst_debug_default — sets default gst_debug
  3. 20260517120000_create_notifications — notifications table

DuckDB analytics schema is extended automatically for pipeline_logs and status history tables.


Upgrade from v0.5.2

git pull
mix deps.get
mix ecto.migrate
mix compile
# or rebuild release:
MIX_ENV=prod mix release

For Docker deployments, rebuild and redeploy the image tagged for this release.

Optional: Configure Telegram in Settings after upgrade. Set PHX_CHECK_ORIGIN if WebSocket connections fail behind a reverse proxy on a non-default origin.

v0.5.2

Choose a tag to compare

@abc3 abc3 released this 10 May 18:15
Immutable release. Only release title and notes can be modified.

Added

  • Signal generation — backend support (SignalGenerator), HTTP API under /system/signal-generation (status, configure, start, stop), and Settings UI integration.
  • Route tags — full CRUD API: GET/POST /tags, PUT/DELETE /tags/:id, plus UI and client wiring.
  • Demo mode — demo streaming workflow (HydraSrt.Demo), FFmpeg-based demo stream, and automatic creation of a demo route when demo is enabled.
  • App initialization API — GET /init (InitController) and frontend InitContext so the SPA can load startup/configuration data in one place.
  • Route failure handling — mark_route_failed in the route pipeline for clearer failure status when a route breaks.
  • Route enable/disable in UI — visible enabled state and filtering for routes and route items on the dashboard.
  • Documentation — expanded README.md, small docs/ENVS.md update, and related runtime config notes.
  • Database migration — add_bind_target_columns_to_endpoints (endpoint bind/target fields split out from schema options).

Changed

  • Endpoint model & API — SRT (and related) endpoint options refactored from nested “schema options” blobs into explicit fields (sources/destinations); API and forms updated accordingly (Endpoint, controllers, api.js, route editor components, shared endpointOptions / endpointFormErrors helpers).
  • OS monitoring — improved memory and swap calculations and reporting in OsMon (with test coverage updates).
  • Route handler — updates to support failure marking and related behavior.
  • Web app — Settings.jsx significantly extended; api.js, auth.js, Vite config, and route UI tests updated; yarn.lock refreshed.
  • Makefile — minor adjustments tied to the new workflows.

Fixed

  • E2E tests — removed reliance on problematic schema-option shapes in Playwright/E2E helpers and specs (fix: remove schema options in E2E tests).

Upgrade notes

  • Run migrations after pulling this range; the new endpoint migration is required for the bind/target column layout.
  • If you rely on the old endpoint JSON shape, review clients against the new flat endpoint fields API.

Full Changelog: v0.5.1...v0.5.2