Skip to content

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

Merged
kixelated merged 1 commit into
devfrom
claude/bold-mcnulty-4cd61d
Jun 3, 2026
Merged

moq-lite-05: add Frame Start to FETCH#1595
kixelated merged 1 commit into
devfrom
claude/bold-mcnulty-4cd61d

Conversation

@kixelated
Copy link
Copy Markdown
Collaborator

What

Implements moq-dev/drafts#24. Adds a Frame Start field to the moq-lite FETCH message in both the Rust (rs/moq-net) and JS (js/net) implementations.

FETCH Message {
  ...
  Group Sequence (i)
  Frame Start (i)   <-- new (lite-05+)
}

Why

Today a FETCH always returns a group from frame 0. Frame Start is the 0-based index of the first frame to return; the publisher skips all earlier frames, letting a subscriber resume partway through a partially-received group. 0 returns the entire group.

Details

  • Rust (rs/moq-net/src/lite/fetch.rs): added frame_start: u64 to Fetch, encoded/decoded only on Lite05Wip+. Lite03/Lite04 omit it and default to 0, following the existing version-gating convention (older drafts listed explicitly, newest as the _ fallthrough).
  • JS (js/net/src/lite/fetch.ts): added frameStart (default 0) with matching version-gated encode/decode; threaded version into the private encode/decode helpers.
  • Tests added on both sides: round-trip on draft-05 and "absent before draft-05" (verifying the older encoding is strictly shorter).

Scope notes

  • The Start Group/End GroupGroup Start/Group End rename also in drafts#24 is, per its own changelog entry, wire format unchanged (spec prose only). The implementations already match the wire, so internal field names were left as-is to avoid a large, behavior-neutral churn across public moq-net APIs and downstream consumers.
  • FETCH is currently a wire definition only; it is not yet plumbed into a live serving flow, so there is no publisher-side skip/wait behavior to implement here. The field is in place for when that flow lands.

Test plan

  • cargo test -p moq-net lite::fetch
  • bun test js/net/src/lite/fetch.test.ts
  • cargo fmt --check + Biome clean

Targets dev per the branch-targeting guidance (wire-protocol change under rs/moq-net).

🤖 Generated with Claude Code

(Written by Claude)

Implements moq-dev/drafts#24. Adds a Frame Start field to the FETCH
message: the 0-based index of the first frame to return, letting a
subscriber resume partway through a group instead of always starting at
frame 0. A value of 0 returns the entire group.

Gated on moq-lite-05-wip; lite-03/lite-04 omit the field and default it
to 0. Wire-only addition, since FETCH is not yet plumbed into a live
serving flow.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kixelated kixelated enabled auto-merge (squash) June 3, 2026 00:17
@kixelated kixelated merged commit f99f565 into dev Jun 3, 2026
1 check passed
@kixelated kixelated deleted the claude/bold-mcnulty-4cd61d branch June 3, 2026 00:40
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