Skip to content

feat(client): add filtered playback metrics and synthetic moderation gating#8

Open
tanvir-redoy wants to merge 4 commits into
mainfrom
tanvir/filtered-playback-gating
Open

feat(client): add filtered playback metrics and synthetic moderation gating#8
tanvir-redoy wants to merge 4 commits into
mainfrom
tanvir/filtered-playback-gating

Conversation

@tanvir-redoy

Copy link
Copy Markdown
Collaborator

Summary:
The first two building blocks for filter-aware playback experiments in the browser client:

  1. filtered playback observability
  2. synthetic moderation gating with configurable delay

The goal is to make behind-live filtered playback measurable before implementing time-aligned switching.

What changed:
feat(client): expose filtered playback state metrics
Adds explicit playback-state observability for filtered playback experiments.
Included:

  • live edge position
  • playback position
  • live offset from live
  • current video group
  • pending switch target
  • metadata readiness state
  • metadata delay

These fields are now propagated through:

  • player metrics
  • ABR metrics
  • metrics snapshots
  • CSV logging
  • metrics panel UI
  • client tests

feat(client): add synthetic moderation playback gating
Adds a synthetic moderation test mode so playback-control behavior can be evaluated before real AI metadata is introduced.
Included:

  • filtered playback toggle in the client sidebar
  • fixed-delay moderation mode
  • variable-delay moderation mode
  • per-group synthetic moderation timing
  • playout pause while metadata is not ready
  • automatic resume when metadata becomes ready

This PR is intended to support the next stage of filtered playback work:

  • reproduce playback behavior while intentionally behind live
  • evaluate metadata gating delay
  • establish a measurable baseline before implementing time-aligned switching across qualities

Notes:
This PR does not yet implement:

  • real moderation metadata ingestion
  • switch alignment at the same media point across tracks
  • switch outcome instrumentation / alignment error reporting
    Those are planned follow-up steps.

Add live edge, playback position, live offset, current group, pending switch target, and metadata state to player metrics.
Propagate the new fields through ABR metrics, CSV logging, the metrics panel, and client tests.
Add a filtered playback mode that simulates moderation latency per video group.
Provide fixed and variable delay controls in the client sidebar.
Pause playout until the synthetic metadata decision is ready, then resume playback.
@tanvir-redoy tanvir-redoy self-assigned this Apr 8, 2026
@tanvir-redoy tanvir-redoy requested a review from AKOrojo April 8, 2026 19:21
Remove deprecated baseUrl usage and migrate moqtail-ts moduleResolution off node10 behavior.
This resolves TS deprecation diagnostics without relying on ignoreDeprecations settings that break current TS builds.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant