Repository navigation
v0.2.65
·
1509 commits
to master
since this release
Release v0.2.65
This release tightens the v0.2.64 durability and analytics work: edge DNS membership is now event-driven, current viewer/geographic analytics use live session state correctly, DVR finalization recovers after Helmsman restarts, packaged player embeds ship their CSS reliably, and Periscope gains the small ClickHouse schema fixes needed for raw trigger journals and stream-scoped processing facts.
Upgrade
Cluster operators
This release includes Periscope/ClickHouse migrations only:
- Periscope/ClickHouse: 3 expand migrations and 1 contract migration.
- No Postgres migrations.
- No postdeploy migrations.
Recommended sequence:
frameworks cluster migrate validate
frameworks cluster migrate --manifest <path> --phase expand --to-version v0.2.65 --dry-run
frameworks cluster migrate --manifest <path> --phase expand --to-version v0.2.65
frameworks cluster upgrade plan --manifest <path> --version v0.2.65
frameworks cluster upgrade --manifest <path> --version v0.2.65 --all --yes
frameworks cluster status --manifest <path>
frameworks cluster migrate --manifest <path> --phase contract --to-version v0.2.65 --yes
frameworks cluster status --manifest <path>Operational notes:
- The ClickHouse expand phase adds
node_state_current.bw_limit,raw_mist_triggers, andprocessing_5m.stream_id. - The ClickHouse contract phase recreates
processing_5m_vso processing usage exposesstream_id. - Native Helmsman provisioning now creates and exports a stable trigger WAL directory. Run
cluster provisionseparately when you want to reconcile that host config; it is not part of the normal binary rollout sequence. - Edge DNS updates now depend on Foghorn reporting per-node health/capability/IP deltas to Quartermaster. After upgrade, DNS membership should converge faster and also clear unhealthy nodes correctly.
Tenants on a managed FrameWorks cluster
No manual action is required.
Visible changes:
- Geographic distribution and current viewer analytics are more accurate for active sessions.
- Network routing dashboards now show live ingress/egress and egress capacity data instead of older max-bandwidth fields.
- DVR chapter finalization is more resilient across Helmsman restarts.
- Packaged React/Svelte/Web Component player embeds now include the built CSS export correctly.
Self-hosters
No manual action is required for the binary upgrade. If you run native Helmsman through the provided Ansible roles, reconcile provisioning when convenient so the trigger WAL directory is explicitly managed.
New
- Event-driven edge DNS membership. Foghorn now sends
NodeAlivenesspayloads with health, cluster, external IP, and edge capabilities to Quartermaster on DNS-relevant deltas, plus a periodic repair sync. - Cluster-scoped Navigator DNS sync.
SyncDNSRequestnow acceptscluster_idso Navigator can reconcile one cluster’s service records and clear records when a cluster has no healthy nodes. - Raw Mist trigger ClickHouse journal table.
- Stream-scoped processing facts via
processing_5m.stream_id. - Node bandwidth limit projection into
node_state_current. - DVR job recovery after Helmsman restart by matching local DVR directories against active Mist pushes.
- Optional player
animatePrerollsetting across core, React, Svelte, and Web Component packages.
Changed
- Network cluster status now reports
egressMbps,egressCapacityMbps, andingressMbps. - Network overview queries and routing dashboards now use live egress capacity.
- Geographic distribution reads current viewer sessions directly, including active sessions, instead of stale aggregate paths.
- Viewer count time series now reads finalized stream runtime windows.
- Billing flow no longer falls back to a tenant primary cluster for missing cluster attribution in canonical processing/storage facts; missing cluster attribution is treated as an error where it would create ambiguous billing adjustments.
- GeoIP uploads publish atomically through a temp file before replacing the active MMDB.
- CLI migration validation now enforces the stricter phase-safety rules from v0.2.65 onward while preserving compatibility with older migration directories.
- Packaged React and Svelte player packages now export built
dist/player.cssrather than pointing package consumers at source CSS. - Caddy bootstrap runs before Helmsman native install in edge provisioning so Helmsman configuration has the expected local Caddy surface.
Hardened
- DVR finalization job recovery after restart.
- Finalized
.dtshgeneration for DVR chapters and clips now writes to the intended local sidecar path and retries chapter sidecar generation with that path. - Current stream closure writes an offline
stream_state_currentrow on stream end, closing current-viewer analytics gaps. - Periscope ingest aligns raw trigger Kafka header fallbacks with the protobuf envelope before projection.
- Commodore retries more playback/artifact resolution queries through the Postgres/Yugabyte retry helper and recycles idle connections on retry.
- Email verification/login flow gained regression coverage.
- StreamCrafter live notifications are deduplicated.
- Packaged player controls and loading poster behavior are covered by additional tests.
- Database retry handling recognizes additional transient transaction restart messages.
- CLI migration and lint checks were tightened.
Player / SDK
- React and Svelte packages now copy
player.cssintodistduring build and expose it through package exports. - Web Component docs and package behavior were updated for the same packaged CSS flow.
- Forced player/protocol/source selection now falls back cleanly when a requested source index is unavailable.
- Loading poster handling gained
animatePreroll; default behavior keeps showing the latest poster frame. - Dash.js and Mist player controls packaging gained regression coverage.
API / GraphQL / Proto
dns.SyncDNSRequestadded optionalcluster_id.quartermaster.ReportAliveNodesRequestnow carries repeatedNodeAlivenessrecords instead of the old node ID list.- Added
EdgeCapabilitiesto Quartermaster proto. periscope.NetworkClusterLiveStatsaddedegress_capacity_bps.- GraphQL
NetworkClusterStatusreplaced old max/current bandwidth fields withegressMbps,egressCapacityMbps, andingressMbps. - GraphQL and Periscope comments now point analytics fields at canonical/current fact sources.
Build / Infra
- Native Helmsman roles now manage
FRAMEWORKS_TRIGGER_WAL_DIR. - Helmsman Linux role creates the trigger WAL directory with
0700permissions. - Edge native install order now bootstraps Caddy before the Helmsman role.
- CLI migration validation has a v0.2.65 safety floor for stricter ClickHouse/Postgres phase checks.
- GeoIP distribution now uses atomic remote publish.
Docs
- Updated analytics ingest/query README notes for canonical billing flow.
- Updated analytics pipeline docs.
- Updated trigger durability docs for the Helmsman WAL provisioning path.
- Updated playback docs for React, Svelte, Vanilla, and Web Component packaged CSS usage.
- Updated thumbnail/preview docs.
- Updated metrics standards and referral/network usage RFC references.