Forward ash.codegen and ecto.migration through the Sender plugin wrapper and update agent guidance to prefer AshPostgres codegen for resource-driven migrations.
Use the current node_info node_pubkey field in the Docker e2e runner and refresh the Nix Mix dependency hash after the muontrap dependency update. Keep edge session reconciliation alive when it runs before the host repo is ready during startup.
Use Tribes.RequestInfo for HLS and player event attribution so trusted proxy traffic is served without feeding Sender's internal viewer metric.
Append a stable vsid query parameter to browser HLS playlist URLs, count playlist reloads as viewer sessions in standalone mode, keep IP fallback for plain HLS clients, and update docs plus e2e coverage.
Track active Sender viewers from browser heartbeats and HLS IP fallback, filtering localhost access and exporting a low-cardinality plugin metric for Tribes rollups.
Extend the Docker origin/edge E2E harness with VictoriaMetrics/vmagent scraping and assertions for live /metrics export plus compact rollup storage. Update docs for the host metrics path.
Add flake outputs for the sender assets, packaged plugin, bundled Tribes release, and single-image Docker E2E target.
Update the Docker E2E runner to build that image through Nix with the local Tribes checkout override before running the origin/edge compose scenario.
Add the edge-side pull-through startup path and make stream startup tolerant of sources that are not live yet. Keep ffmpeg managed through MuonTrap while adding the options needed by the multi-node flow.
Add a docker-oriented origin/edge E2E scenario that starts both nodes before RTMP ingest and verifies HLS playback from the edge node.
Add the shared plugin helper, host-backed test config, and runtime validation entrypoint. Update the example plugin route/docs and replace the old standalone test suite with the host-backed contract and page tests.