Repository navigation
test(net): settle refresh as a soft trigger - #6437
Conversation
Quest-Claim: cf41f64c56e31f1e
Co-Authored-By: GPT-6 <codex@openai.com>
A live join over the refresh ratio keeps receiving the cached group while the fresh one is requested. Pin that in the Rust and JS unit tests and the two-relay JSON integration test, drop the byte-bound claims from the API docs and bindings, state it in the lite draft, and finish the refresh quest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reachedYou'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 2 minutes. View limit details
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. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4c6450a921
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: db50567698
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Problem
Refresh demand and moq-json's answer already worked, but their integration through relays was not covered, and the refresh quest promised that a late joiner downloads about
R + 1snapshots' worth. Delivery never kept that promise: a join over the ratio receives the cached group while the fresh one is requested upstream. WithR = 1, a 14-byte snapshot and 64 deltas, a reader beyond two relays can read all 517 cached bytes before the JSON owner answers.Approach
Settle refresh as a soft trigger, which Rust and JS already implement: a live join over the ratio keeps receiving the cached group and asks for a fresh one. No serving behavior changes.
track::Info::refresh, JSInfo.refresh,moq_json::snapshot, moq-c, Python) drop the claim that a joiner never downloads much more than a snapshot. The lite draft states that the request does not hold back delivery.doc/concept/moq-lite.mdgains a Refresh section.Impact
Decisions
The maintainer chose a soft trigger over withholding an oversized cached prefix. The ratio limits how often groups roll, not what a joiner downloads; the
R + 1download claim is dropped.Alternatives
Withholding the cached prefix for an oversized join would keep the byte bound, but needs terminal behavior when the source finishes, aborts, or cannot answer, and per-reader handling of cold caches, late track info, and route-copy replacement in both Rust and JS. Rejected for that cost.
Follow-ups
None.
(Written by Claude Opus 5.5)
🤖 Generated with Claude Code