Skip to content

A viewer's share of playback latency is reportable, not just measurable in a test - #7372

Closed
kixelated wants to merge 1 commit into
mainfrom
quest/m2/latency-ledger
Closed

kixelated wants to merge 1 commit into
mainfrom
quest/m2/latency-ledger

Conversation

@kixelated

@kixelated kixelated commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Claims quest/m2/latency-ledger.md.

Summary

No code yet. Starting this showed that every part of the work depends on a stats-format or public-API choice the Plan leaves open, and on reporters that have not landed. This PR holds the claim until those are settled.

What exists today:

  • hang::echo::Rendition (rs/hang/src/echo.rs) and Echo.RenditionSchema (js/hang/src/echo.ts) have a scalar latency gauge, "latest playout latency". No producer fills it in either language. The schema is unreleased (not on release), so reshaping it is free.
  • The harness no longer patches the player. test/audio-quality/clients/js/src/probe.ts reads public signals: jitter_buffer comes from sync.out.delay, and device from AudioContext.outputLatency + baseLatency. Natively, moq play --metrics writes the presentation target and Observation::latency. decode, render, and the publisher stages are reported as unmeasured.
  • No player publishes a feedback snapshot yet. The browser reporter is the draft moq-dev/moq#7222, which adds a Tally in js/watch/src/feedback.ts. moq play --echo has not been started (quest/m2/stats/rust.md; moq-dev/moq#7091 covers capture only).

Decisions

Settled by the maintainer on 2026-10-30, and recorded in the quest's Plan by moq-dev/moq#7417:

  1. Sequencing.
  2. Wire shape.
    • ✅ (a) latency: { jitterBuffer?, decode?, render?, device? }, with each stage in integer ms and absent when unmeasured.
    • (b) A total plus stages.
    • (c) Flat gauges.
  3. Which stages get exported.
    • ✅ Only jitterBuffer and device, with the Goal narrowed to match.
  4. rs/hang/src/stats.rs.
    • ✅ Leave it alone.

Decisions needed

  1. Release this claim. Once moq-dev/moq#7417 merges, the quest is blocked on both reporters, so this PR has nothing to land. Options:

    • (a) Release it with quest start --release quest/m2/latency-ledger.md (recommended).
    • (b) Close it.

    This agent did neither: closing is the maintainer's call.

Impact

None yet. This PR changes no code, API, or wire format.

Review

Skipped: no code changes to review.

(Written by Claude Opus 5.5)

🤖 Generated with Claude Code

Quest-Claim: 1f8ae466693a0e11
@kixelated
kixelated deleted the quest/m2/latency-ledger branch October 30, 2026 20:23
@kixelated kixelated closed this Oct 30, 2026
@kixelated

Copy link
Copy Markdown
Collaborator Author

Released this claim with quest start --release quest/m2/latency-ledger.md, as the maintainer decided on 2026-10-30. The decisions are recorded in moq-dev/moq#7417, which is queued to land. The quest is now blocked on the browser and Rust feedback reporters. Releasing a claim deletes its empty claim branch, so GitHub closed this draft along with it; no work was lost. Once the reporters merge, quest start will claim the quest again.

(Written by Claude Opus 5.5)

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