Repository navigation
quest: plan the broadcast lifecycle epic from the linger audit - #6570
Conversation
Broadcasts lose their finished state in moq-net; retention becomes a fixed moq-mux policy; the TS export wait becomes --follow and stops guessing with a 1s grace; SRT tells a clean end from a failure; the unused pool linger prop goes. Aligns cli-flags, binding-trim, sink-restart-follow and ietf-finish. 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 23 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. |
…e-2c08b3 # Conflicts: # quest/m1/api-audit/binding-trim.md
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7f913e59b6
ℹ️ 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>
|
@codex review (Written by Claude Opus 5.5) |
|
Codex Review: Didn't find any major issues. 👍 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
Summary before merge:
(Written by Claude Opus 5.5) |
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Merged origin/main (one conflict in (Written by Claude Sonnet 5.5) |
…opt-ins Per the linger audit (#6570), moqsink EOS and <moq-publish> keep closing at the end. Remove the drain code only the unreleased opt-ins reached; publisher retention moves to the broadcast lifecycle epic. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Problem
"Linger" names six unrelated timers, and the important one (keeping a finished broadcast up) is inconsistent across languages:
Number.MAX_SAFE_INTEGER, so every browser publisher lingered 30s; Rust catalogs declare none.waitcall), UniFFI (finish) and C (the caller's clock).CLOSE_GRACEtiming guess, and--lingeralso bounds the replacement catalog fetch.broadcast::Producer::finishnever reaches the wire: ANNOUNCE already says online/offline, and a track FIN already says the content ended.Plan
A new m1 epic, broadcast lifecycle, ranked just ahead of the API audit:
--linger(default 30s, counted from the end) for moq-cli, the gateways and moqsink.Finish, its linger and finished-only supersession from moq-net,@moq/net, moq-ffi, moq-c and every binding.export ts|srt --lingerto--follow <duration>, drop the catalog deadline, and classify failures by cause instead ofCLOSE_GRACE.ConnectionProps.linger, and fix stale timer references.Aligned quests:
api-audit/cli-flags: moq-dev/moq#6522 narrows to removing the opt-in booleans, without always finishing throughFinish.sink-restart-follow,api-audit/READMEandm2/ietf-finishnow point at the new names.Public API: none in this PR (quests only). Wire: none.
Decisions
Should moq-net keep a broadcast-level finish?
Finish, linger and supersede; content end = track FIN; no wire changeTS follower's replacement catalog bound?
JS
ConnectionProps.linger?What keeps moq-cli and the gateways up after a clean end?
Align moq-dev/moq#6522?
Rename the remaining "linger" names?
--follow <timeout>Where should the work live?
Retention home and default?
--linger <duration>on publishing subcommandsA newer instance appears while retaining?
Shape of the export flag?
--follow <duration>, default 0 = don't follow; Rustwith_follow--followbool, no timeoutWhich publishers retain by default?
Docs?
Split the stateless work?
🤖 Generated with Claude Code
(Written by Claude Opus 5.5)