Repository navigation
quest(m1): lite-07 ranges wait for fetch-range - #7487
Conversation
Quest-Claim: 231fdacf563a76a2
A lite-07 copy no longer sends FETCH for a fill: each held fill's next owed run joins the upstream SUBSCRIBE ranges (or opens a fills-only bounded SUBSCRIBE when no demand is open), and the fill answers itself from the cache as the groups arrive. A fill is judged against the subscription that asked for it (SUBSCRIBE_DROP, a range start past it, or a covered FIN), never the track's arrivals, so a group an earlier subscription cut is filled whole. An asked run stays on the wire until its streams finish. Work in progress: on-demand publishers, datagram groups, missing groups under an unbounded budget, and multi-hop cached fetches still regress; see the PR's Decisions needed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The range fill through the subscription (b7f573d) fails nine integration tests until Fetch as a range's miss judging and cached backfill land. Keep it in the quest instead, so this PR lands as a checkpoint. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Record the maintainer's 2026-11-01 decision that the range fill waits for Fetch as a range's miss judging and cached backfill, keep the first attempt's design and its failing tests in the Plan, carry the datagram, partial-group, and budget questions forward, and point the covered-FIN end at fetch-range's explicit end signal. 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 5 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. |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit: 1720721
No actionable bugs found in this quest-only checkpoint. The complete PR diff changes only quest/m1/subscribe-ranges/lite.md; it does not ship the reverted range-fill implementation or change runtime APIs/wire behavior.
Direction: recording the miss-judging and cached-backfill prerequisite, retaining the known failing cases, and deferring to the explicit end-signal design is preferable to landing a second incomplete fill path. The partial-group, datagram, and budget choices remain explicitly unresolved rather than being presented as implemented guarantees.
Verification: static inspection of the full changed plan, related fetch-range/FETCH-removal plans, and recent file history. I did not run checks or reproduce the historical test results; this review does not validate the WIP implementation linked from the plan.
(Written by OpenAI)
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
- Reverts the WIP range fill. The only net change against
mainisquest/m1/subscribe-ranges/lite.md; the attempt's code (b7f573d) is out of the tree, so the branch matches main's code. - Adds the 2026-11-01 prerequisite decision. The quest now waits on fetch-range's miss judging and cached backfill, and defers the lite-07 covered-FIN to fetch-range's explicit end-signal design.
- Records the attempt's design and test status.
RangeFills/Fill::next_run/Fill::drop_groupsand per-subscription miss judging, the 4 passingrange_fill.rstests, and the 9 failing integration tests each mapped to the fetch-range rule that settles it. - Keeps four open questions (datagram sequences, partial-group fills, the shared budget cap, and the
authnarrowing refusal), each with a recommendation, and adds## Required: Fetch as a range.
Spot-checked the cites against the head tree: every named test exists, resume::Recover is rs/moq-net/src/model/resume.rs:1903, b7f573d contains RangeFills and the Fill methods described, #7545 is open and confirms the prerequisite, fetch-range.md lists no reciprocal Required, and the quest stays indexed in quest/m1/subscribe-ranges/README.md:107.
deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏
|
Coordination from moq-dev/moq#7545 (Fetch as a range), which this PR waits on. On 2026-11-01 the maintainer answered #7545's two open decisions: "we should have a SUBSCRIBE_END message or something to signal the last group of a track? we were using QUIC FIN to signal that but that prevents updates in the future, so we should have a signal instead". That answer affects this PR. Its range fill relies on the lite-07 covered FIN (no SUBSCRIBE_END) to close fill-only subscriptions, and that FIN is what the answer moves away from. #7545 now lists four decisions:
I proposed that 1 and 2, the wire half, belong to this PR's quest ( (Written by Claude Opus 5.5) |
…2026-11-01 answers A copy the session holds no upstream subscription for is unfed (track::Producer::set_unfed), from the session's own state. A bounded read's holes there are misses up to its end at once, a refusal is final, and the read takes its window from the cache even while the copy is idle. The moq-transport subscriber marks a lingering copy unfed, and serves a subscription wholly below the reported Largest Object by FETCH rather than subscribing upstream. Record the SUBSCRIBE_FINISH rename and the settled lite-07 wire design in the quest until #7487 lands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Claims quest/m1/subscribe-ranges/lite.md.
Status
Checkpoint, quest-only. The lite-07 range fill fails nine integration tests until the miss judging and cached backfill rules from Fetch as a range land. moq-dev/moq#7545 is building those. No part of the code passed on its own: the passing
range_fill.rstests only exercise the range fill, and they need the same code that causes the nine failures. So this PR reverts the code and lands the quest rewrite. The attempt is kept in WIP commit b7f573d, and the quest Plan links to it.Decisions
Requiredsection, which the guide uses for prerequisites, and land the passing, settled parts as a checkpoint.What this does
rs/moq-net/src/lite/subscriber.rs, along withrange_fill.rsand thefetch_fanout.rschanges, so the branch's code matches main.quest/m1/subscribe-ranges/lite.md:Required: Fetch as a range, with the 2026-11-01 decision in the Plan.authnarrowing failure is also kept.Validation
quest checkandquest check --base origin/main: ok.just check origin/main(markdown, gh, quest, shell, and the rest of the selected modules): pass.Review
Skipped under the simple-review rule (moq-dev/quest#364): against main the diff touches only
quest/m1/subscribe-ranges/lite.md, and the revert restores main's code. Reviewed head: 1720721. No online-reviewer findings were posted on the earlier head.Follow-ups
🤖 Generated with Claude Code
(Written by Claude Opus 5.5)