13 Commits

Author SHA1 Message Date
self cdbfef7cd3 fix: serve sender hls public path
Accept the current /sender/hls route in the Sender HLS plug while preserving the legacy plugin-slug path. Add direct plug coverage for both path shapes.
2026-06-18 02:16:57 +02:00
self 3e288a7e95 feat: prefix Sender plugin slug
Rename Sender plugin identity to tribe-one-sender across manifest, runtime API routes, metrics, e2e fixtures, and tests.
2026-06-17 22:33:33 +02:00
self f8e2bfaada refactor: use chat capability surfaces
Move Sender modules under TribeOne.TribesPlugin.Sender and replace the Aether-specific chat integration with the public chat@1 surface contract.
2026-05-26 01:13:38 +02:00
self e771ab3c35 refactor: embed chat as live component
Resolve the optional Aether chat component dynamically and forward chat PubSub messages into it, removing the iframe integration.
2026-05-25 12:51:59 +02:00
self 38ff2fa2b2 feat: embed optional stream chat
Declare chat@1 as an optional enhancement and show an Aether chat iframe beside the Sender player when a chat provider is installed.
2026-05-25 05:44:06 +02:00
self b4e806e90d feat: count sender viewers by request sessions
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.
2026-05-15 13:40:46 +02:00
self bdaa292278 feat: add sender viewer metrics
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.
2026-05-14 19:00:12 +02:00
self e933e5858d feat: add sender hls edge repeater
Expose standalone /sender/hls file serving for local spool playback and add the hls_edge media-session mode for tribes_edge endpoints.\n\nThe edge backend mirrors an upstream generation playlist and referenced segments into the local spool, while management lifecycle methods can start, stop, and report hls_edge sessions separately from origin ingest.\n\nVerified with scripts/plugin test, scripts/plugin validate, scripts/plugin precommit, and scripts/plugin smoke.
2026-05-10 20:04:39 +02:00
self 799800b66d refactor: simplify sender topology model
Collapse endpoint routing around endpoint types and source links, remove the StreamRoute resource and HLS fallback plug, and move generated HLS paths to /sender/hls for Vinyl-backed serving.\n\nUpdate the initial schema, management payloads, docs, and tests to match generation-level renditions and stream generation delivery modes.
2026-05-10 19:22:22 +02:00
self 0ee0afecc2 fix: render streaming page inside host chrome
Wrap the sender LiveView with the plugin-facing Tribes layout and mount optional host auth so the player appears inside the normal Tribes navigation chrome. Declare ui@1 because the host chrome is provided through the UI capability and assert that chrome in the page test.
2026-05-02 13:21:57 +02:00
self ca86a31b25 feat: add playback API and player shell
Expose plugin API routes for playback metadata, HLS file serving, and player events. Add a typed Video.js v10 HTML player bootstrap and host-backed API tests.
2026-05-01 22:31:29 +02:00
self d38b28c780 build: set up streaming plugin foundation
Enable the plugin supervision tree, update manifest metadata, switch the planned web player to Video.js v10 beta, and document the streaming architecture/progress plan.
2026-05-01 22:14:31 +02:00
self 6c853786c8 build: Rename 2026-05-01 19:40:30 +02:00