Repository navigation
quest: record the time-addressing spike as implementation quests - #6872
Conversation
Seven parallel audits checked every quest against main and open PRs. Stale plans, broken references, and missing links are corrected, and the maintainer's answers to the open planning decisions are recorded. New quests: resume checked against a model, transport frame offsets, demand is wanted everywhere, and two Nightly fixes. The generated C line moves to m2; the hand-written moq-c ships at the cut with parity. rs/moq-net/AGENTS.md drops the partial-groups rule, as the maintainer asked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… transport Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…anning-700add # Conflicts: # quest/m1/README.md
Add an m1 epic for a spike that replaces group sequence numbers with group start timestamps in the moq-net API and the lite-07 wire, plus a guide. The spike gates the lite-07 cut. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Codex <noreply@openai.com>
…for merge) Publishes groups whose ID is the start PTS in ticks and reports delivery, simulated time, and upstream FETCH counts against today's contiguous IDs. Run with SPIKE_STRIDE=1 for the baseline. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The spike published sparse group IDs (start ticks) through moq-net and @moq/net. Live, ordered, history, and expiry work unchanged; hole fills cost one FETCH per ID and Relative(n) does ID arithmetic, so the cut waits on subscribe ranges and counts groups. Seven implementation quests replace the spike, plus two present-day bugs it found. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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. |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed 9da6964807d40695b19ca9c64d18371fb1307191 against base 5755e4022a5975a9a2c34d053cab92b69185f1dc.
No actionable bugs found in this planning-only diff. The split follows model, wire, consumer, binding, and encryption boundaries; requiring range-based fills before sparse IDs is justified, and retaining no prototype code keeps this PR focused. The B-frame-tail and relative-relay bugs are recorded as outstanding implementation work, not claimed fixed here.
Verification: static review of the quest changes, linked prototype, and relevant Rust/JS timestamp handling. I did not run the spike, tests, or draft/quest validation.
(Written by OpenAI)
A status object may not carry properties on draft-15 and later, so the group's end time needs a negotiated extension to cross moq-transport. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed e1d0c9f64132103ca993d5da8ec0017a2a465d74, the two-file delta since my previous review; base remains 5755e4022a5975a9a2c34d053cab92b69185f1dc.
No actionable bugs found. Keeping END_OF_GROUP property-free matches status_has_properties/check_status in rs/moq-net/src/ietf/object.rs: nonempty status properties after draft-14 would terminate the session. Making exact end-time transport conditional on a negotiated extension avoids that failure without adding an unnecessary compatibility mechanism now. The earlier review had no findings; the separately recorded implementation bugs remain outstanding.
Verification: static review of the changed plans and current status-property validation only. No tests or draft/quest validation run.
(Written by OpenAI)
|
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 3 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 |
main landed the stack beneath this PR, per-run fills (#6724), lite-07 ranges (#6715), and name reuse (#6780). Rerunning the prototype on main, sparse fills now cost a constant handful of FETCHes and Relative(n) through a relay is fixed, so the relative-relay quest is dropped and the model's evidence is updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed f4cb186424e51028de904f9817d99bbb93e96f2b against current base 6b290670931cc4e73deea3e417b33386a453baae, isolating the planning delta from merged upstream changes.
No actionable bugs found. Dropping the superseded fill/relative-relay quests is justified by merged #6724/#6715; the remaining sparse Relative(n) arithmetic is still visible in subscription/window.rs and stays assigned to the model quest. The draft-14-only TIMESTAMP exception matches current status-property validation. This narrows follow-up work rather than adding duplicate mechanisms. My earlier reviews had no findings; the B-frame-end work remains outstanding.
Verification: static review of the changed plans, merged PRs, and relevant current fill/range/status paths. I did not rerun the spike, tests, or draft/quest validation.
(Written by OpenAI)
|
Landing f4cb186. Since the last summary: merged (Written by Claude Opus 5.5) |
Problem
Claims the time-addressing spike, stacked on #6800: prototype group addressing by start timestamp, measure what breaks, and record the cut as implementation quests.
Approach
Instead of rewriting moq-net's group identity, the prototype publishes groups whose ID is the start PTS in ticks (2 s GOPs at 1 kHz: 0, 2000, 4000, 6000) through today's code. Each scenario runs over lite-03, lite-06, lite-07-wip, moq-transport-14, and moq-transport-18, direct and through a relay, against a contiguous baseline. That isolates every place that assumes
sequence + 1is the next group. The prototype tests are in moq-dev/moq@ebdfd55 and removed again by the next commit, so nothing but quests merges.Rerun on current
main(after the stack, moq-dev/moq#6724, and moq-dev/moq#6715 landed):recv_groupandordered(), all versions, Rust and JSRange::oldestand absolute rangesNotFoundRelative(1)..on lite-07, direct or relayed[2, 3][6000], then parksOn the spike's original base, before #6724 and #6715, a relay opened one FETCH per ID (540,000 for one 90 kHz hole), and
Relative(1)..through a lite-07 relay returned the oldest groups even with contiguous IDs. Released relays still fill per ID.Also confirmed in code:
group.rs) and JS (group.ts).Neighbors::admit).@moq/netdecodes group IDs withu53, so starts must stay under 2^53. Microsecond epoch time fits until 2255.So on
main, the only sparse-ID breakage isRelative(n)doing ID arithmetic; the cut makes it count groups. The model quest still follows Subscribe ranges, whoseAbsolute(group)ends and drops it reworks onto times.Decisions
@moq/netparity [L]; consumers [L]; bindings [M]; E2EE nonce [S]releaseRelative(n)through a lite-07 relay (dropped: feat(moq-net): carry ranges on lite-07 SUBSCRIBE #6715 fixed it onmain)main)Quests
quest/m1/time-addressing/spike.mddeleted; its design moves intomodel.md,lite07.md,ietf.md,js.md,consumers.md,bindings.md, ande2ee.md.model.mdrequires Subscribe ranges and lite-05/06 timestamp pass-through. Finalize lite-07 now requires the lite-07 wire and JS quests. The guide now requires the lite-07 wire quest and warns that mixed-version relays pay per-ID fills.quest/m1/group-end-pts.md.ietf.mdkeeps END_OF_GROUP property-free after draft-14 (only draft-14 status objects may carry TIMESTAMP), per the review on quest: plan addressing groups by timestamp #6800.Impact
Follow-ups
The seven implementation quests, plus the group-end bug quest, which can land now.
(Written by Claude Opus 5.5)
🤖 Generated with Claude Code