Skip to content

moq-lite-05: add Start Frame to FETCH#24

Merged
kixelated merged 3 commits into
mainfrom
claude/wizardly-mahavira-2fb383
Jun 3, 2026
Merged

moq-lite-05: add Start Frame to FETCH#24
kixelated merged 3 commits into
mainfrom
claude/wizardly-mahavira-2fb383

Conversation

@kixelated
Copy link
Copy Markdown
Collaborator

What

Adds a Start Frame field to the FETCH message in draft-lcurley-moq-lite.md, targeting moq-lite-05.

FETCH Message {
  Message Length (i)
  Broadcast Path (s)
  Track Name (s)
  Subscriber Priority (8)
  Group Sequence (i)
  Start Frame (i)   <-- new
}

Why

Today a FETCH always returns a group from frame 0. Start Frame lets a subscriber begin partway through a group — e.g. to resume a partially-received group without re-downloading frames it already has.

Details

  • Start Frame is the 0-based index of the first frame to return; the publisher skips all frames before it. 0 returns the entire group.
  • If Start Frame is >= the number of frames in the group, the publisher returns no FRAME messages and FINs the stream once the group completes (no-op rather than an error).
  • The returned FRAME messages are otherwise unchanged: the first returned frame's Timestamp Delta is still delta-encoded from 0 (its absolute timestamp), not from the skipped frame, so the existing FRAME encoding is unaffected.
  • Updated the Fetch stream prose and added a moq-lite-05 changelog entry.

Notes for reviewer

  • Named Start Frame to match the existing Start Group/End Group convention in SUBSCRIBE.
  • No End Frame bound was added — FETCH is single-group and runs to the end of the group. Happy to add a frame-count limit if wanted.

🤖 Generated with Claude Code

kixelated and others added 2 commits June 2, 2026 16:49
Allow a subscriber to begin a FETCH partway through a group instead of
always at frame 0, enabling resumption of a partially-received group.
A Start Frame past the end of the group returns no frames.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Use entity-first naming consistent with Group Sequence and the new
Frame Start field. Wire format is unchanged. The moq-lite-03 changelog
keeps the original names since those drafts shipped with them.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 2, 2026

Review Change Stack

Warning

Review limit reached

@kixelated, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 56 minutes and 44 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 89c8b007-8d70-483e-821d-f140175ec5bb

📥 Commits

Reviewing files that changed from the base of the PR and between a0a9586 and 7a904eb.

📒 Files selected for processing (1)
  • draft-lcurley-moq-lite.md

Walkthrough

This PR extends the MOQ-Lite FETCH protocol message to support partial group resumption. A new Start Frame (i) field enables subscribers to request frame delivery starting at a specific index within a group rather than always from frame 0. The change includes the wire format field definition, normative semantics describing publisher behavior when skipping frames and handling out-of-range indices, and a changelog entry documenting the feature addition.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically summarizes the main change: adding a Start Frame field to the FETCH message in moq-lite-05.
Description check ✅ Passed The description is well-related to the changeset, providing clear context on what the change does, why it's needed, implementation details, and notes for reviewers.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch claude/wizardly-mahavira-2fb383

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 and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@draft-lcurley-moq-lite.md`:
- Around line 797-798: Replace the ambiguous phrase "currently in the group"
with an explicit timing rule: state that the comparison "Start Frame >= number
of frames in the group" is evaluated against the group's final frame count when
the group is closed (i.e., the publisher must defer the decision for open groups
until group close); update the sentence about returning no FRAME messages/FINing
the stream to say this happens only if Start Frame is greater than or equal to
the final frame count at group close, and ensure "Start Frame", "group", and
"FRAME messages" are referenced to locate the change.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a9474d12-be2f-4d94-bfba-9c8efca82f14

📥 Commits

Reviewing files that changed from the base of the PR and between 5510ab2 and a0a9586.

📒 Files selected for processing (1)
  • draft-lcurley-moq-lite.md

Comment thread draft-lcurley-moq-lite.md Outdated
Define when the out-of-range case is evaluated: for an open group the
publisher waits and delivers frame Frame Start (and later) as they
arrive, like a live subscription; the empty/out-of-range result is only
resolved against the final frame count once the group closes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kixelated kixelated merged commit 746f3ce into main Jun 3, 2026
2 checks passed
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