Skip to content

quest: park the lag histogram on the QUIC ACK hook - #6884

Merged
kixelated merged 1 commit into
mainfrom
quest/park-lag-histogram
Oct 27, 2026
Merged

kixelated merged 1 commit into
mainfrom
quest/park-lag-histogram

Conversation

@kixelated

Copy link
Copy Markdown
Collaborator

Problem

moq-dev/moq#6791 landed the viewer lag histogram at group granularity, which the maintainer rejected: the frontier moves only on an acknowledged group FIN, so a healthy zero-RTT viewer on 2 s groups reads 0.5 s to 5 s behind, and churn charges each open group's whole content to dropped. The fix needs poll_acked, which is not on main yet, and a draft cannot show as blocked in the quest tree.

Approach

#6791 is closed unmerged; its branch (t0ms:quest/m2/qos/lag-histogram at 9ed8b831f93f39565333a92d5dd4a5f24d2c3fc5) is the starting point. The quests now record the maintainer's three decisions on it:

Decision Options
How to park #6791 ✅ (a) close it, keep the branch, rewrite lag-histogram.md to require the ACK hook and frame granularity (folding in starvation-frames' frontier half); (b) keep the draft open
Backends without the hook ✅ (a) lag and dropped absent there, never zero; (b) keep group granularity as a coarser resolution
Far-future timestamps ✅ (a) take the lag edge from the newest group, so a jump clears at the next group; (b) leave the lifetime fetch_max
  • quest/m2/qos/lag-histogram.md ([M] to [L]): requires quic-ack-hook.md; measures lag and dropped per acknowledged frame; records the three decisions, the branch's settled produced: Produced and dropped: Content (non-empty only, datagrams always zero), its write-path cost table, and the follow-up to store the raw track-scale value and rescale in the sampler instead of a u128 rescale per write.
  • quest/m2/starvation-frames.md moves to quest/m2/delivery-delay.md (quest mv) and keeps only the per-frame delivery-delay histogram, now requiring the lag histogram. Its group-granularity fallback is gone.
  • quest/m2/quic-ack-hook.md: qmux and the browser transport leave the fields absent instead of keeping group granularity; it names both consumers.
  • quest/m2/qos-lag-dashboard.md: dropped is {bytes, frames, groups, datagrams} rather than {duration, bytes, groups}, and an absent lag shows as no data.
  • quest/m2/qos/README.md and quest/m2/README.md: point at the new starting point and the renamed quest.

Impact

Quest-only. No wire, public API, or code change.

🤖 Generated with Claude Code

(Written by Claude Opus 5.5)

The viewer lag histogram now requires poll_acked and measures lag and
dropped per acknowledged frame, starting from the closed #6791 branch.
It folds in starvation-frames' frontier half; the remaining
delivery-delay histogram moves to quest/m2/delivery-delay.md. Backends
without the hook report neither field, and the lag edge comes from the
newest group so a far-future timestamp clears at the next group.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 26, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 3 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 1c122c80-ef49-4a84-b502-c0fbfaef249d
Commits

Reviewing files that changed from the base of the PR and between 020693b and c9aed77.

Files selected for processing: 7
  • quest/m2/README.md
  • quest/m2/delivery-delay.md
  • quest/m2/qos-lag-dashboard.md
  • quest/m2/qos/README.md
  • quest/m2/qos/lag-histogram.md
  • quest/m2/quic-ack-hook.md
  • quest/m2/starvation-frames.md
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-26T19:32:48.778912Z c9aed77 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@kixelated kixelated left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review by review (OpenAI)

Reviewed commit: c9aed77

No new actionable findings in this quest-only change. Making the ACK hook a prerequisite for both lag and dropped is preferable to shipping misleading group-FIN metrics or a backend-dependent fallback. Keeping delivery delay separate reuses the same per-frame tracking without duplicating it.

The known granularity and far-future-edge problems from #6791 remain implementation work, now recorded explicitly; this PR does not claim to fix the parked implementation. The dashboard contract agrees with the revised absence and Content semantics.

Verification: static review of all seven changed quest files against base 020693b, surrounding ACK/dependency plans, repository link targets, and #6791's recorded decisions. No builds, tests, benchmarks, or quest validator run; the parked fork's source was not revalidated.

(Written by OpenAI)

@kixelated

Copy link
Copy Markdown
Collaborator Author

Landing c9aed77 as is: Codex reviewed this head with no findings, CI passed (10/10), and quest check --base origin/main passes against main 6298cbc. No changes were made during merge. The three decisions recorded in the body (close #6791 and keep its branch, absent lag/dropped without the ACK hook, lag edge from the newest group) were the maintainer's picks.

(Written by Claude Opus 5.5)

@kixelated
kixelated added this pull request to the merge queue Oct 26, 2026
Merged via the queue into main with commit 7519cac Oct 27, 2026
10 checks passed
@kixelated
kixelated deleted the quest/park-lag-histogram branch October 27, 2026 00:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant