Skip to content

v0.2.65

Choose a tag to compare

@github-actions github-actions released this 25 May 21:26
· 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, and processing_5m.stream_id.
  • The ClickHouse contract phase recreates processing_5m_v so processing usage exposes stream_id.
  • Native Helmsman provisioning now creates and exports a stable trigger WAL directory. Run cluster provision separately 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 NodeAliveness payloads with health, cluster, external IP, and edge capabilities to Quartermaster on DNS-relevant deltas, plus a periodic repair sync.
  • Cluster-scoped Navigator DNS sync. SyncDNSRequest now accepts cluster_id so 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 animatePreroll setting across core, React, Svelte, and Web Component packages.

Changed

  • Network cluster status now reports egressMbps, egressCapacityMbps, and ingressMbps.
  • 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.css rather 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 .dtsh generation 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_current row 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.css into dist during 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.SyncDNSRequest added optional cluster_id.
  • quartermaster.ReportAliveNodesRequest now carries repeated NodeAliveness records instead of the old node ID list.
  • Added EdgeCapabilities to Quartermaster proto.
  • periscope.NetworkClusterLiveStats added egress_capacity_bps.
  • GraphQL NetworkClusterStatus replaced old max/current bandwidth fields with egressMbps, egressCapacityMbps, and ingressMbps.
  • 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 0700 permissions.
  • 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.