Conversation
Cover every Bun workspace with the scope regression check. Fixes #48. Co-Authored-By: Codex <noreply@openai.com>
Exercise real replay output paths and probe sampling, and test large recording floors. Each regression fails when its corresponding safeguard is reverted. Covers the harness portion of #50. Co-Authored-By: Codex <noreply@openai.com>
Reject zero report intervals at argument parsing. Count datagrams by active profile without adding a lock or an extra atomic update to forwarding. Cover stepped impairments and benchmark clients against step counts in nightly CI. Fixes #47. Co-Authored-By: Codex <noreply@openai.com>
Refs #31. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com>
Preserve decoded audio across bounded timeline holes. Commit short fragments before the splice instead of discarding them, and drain finite tracks without waiting for an impossible refill. Refs #32 and #33. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com>
Refs #39. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com>
Refs #45. Verified raw QUIC and WebTransport admission against Linux io_uring workers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com>
Fixes #31 for the JavaScript playout engine. Co-Authored-By: Codex <noreply@openai.com>
Fixes #43. Co-Authored-By: Codex <noreply@openai.com>
Fixes #40. Co-Authored-By: Codex <noreply@openai.com>
Bound worker startup including lazy imports, terminate late workers, and preserve the refusal for later players. Fixes #42. Co-Authored-By: Codex <noreply@openai.com>
Fixes #39E. Co-Authored-By: Codex <noreply@openai.com>
Keep the first playback report and errors on the page while the worker receives ongoing ring state. Fixes #39D. Co-Authored-By: Codex <noreply@openai.com>
Fixes #39A. Co-Authored-By: Codex <noreply@openai.com>
Distinguish codec recovery from the stall watchdog and remove load-sensitive deadlines. Fixes the watch portion of #53. Co-Authored-By: Codex <noreply@openai.com>
Keep preview timestamps out of promotion and preserve healthy sparse subscriptions. Reset learned cadence when the source changes. Fixes #36 and #38A. Co-Authored-By: Codex <noreply@openai.com>
Fixes #38B. Co-Authored-By: Codex <noreply@openai.com>
Fail an interrupted UDP benchmark batch instead of waiting until the nightly job timeout. Co-Authored-By: Codex <noreply@openai.com>
Start guarded writes only while the group is live. Release partial subscriptions when setup fails, and keep rejected signal listeners out of the subscriber set. Preserve lite priority updates through FIN acknowledgment without expiry listeners. Map local expiry and remote OLD resets to Expired, matching Rust and allowing JSON window consumers to resume at checkpoints. DELIVERY_TIMEOUT remains a distinct stream error. Co-Authored-By: Codex <noreply@openai.com>
Apply positive age budgets to completed groups when the reader stops pulling. Preserve zero-budget burst behavior. Report covered marker groups as discontinuities and avoid mistaking sparse arrivals for event-loop stalls under timer throttling. Pin arrival measurement before parsing and preserve a long GOP after a shorter completed group. Co-Authored-By: Codex <noreply@openai.com>
Keep new frames readable when a returning frame callback predates the last worker tick by no more than one frame period. Preserve rejection of larger clock reversals and make the suspended-callback grace test use a controlled clock. Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
Extend #40 coverage to detach and reattach with a different codec configuration. Co-Authored-By: Codex <noreply@openai.com>
…s it (moq-dev#4104) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…dev#4103) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Grok 4.7 <noreply@x.ai>
An IETF live join delivers nothing below the group its SUBSCRIBE_OK names as Largest, so declare that as the copy's start. A parked track's warm cache waiting on the copy then sees the upstream moved past it and live readers skip it, as they already do on lite-06+. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Use the shared shutdown signal in the player and send the QUIC close after the window exits. Exercise both process signals with real signals in isolated nextest processes. Refs #51. Co-Authored-By: Codex <noreply@openai.com>
A lite-05+ subscriber asks for TRACK_INFO before it subscribes, and the relay parks the copy that answered it, so a steady subscription reads a warm segment behind the live one. Any handed-out group, the live segment's own open group included, kept the logical anchor in use, so nearly every poll re-derived the edge across both segments and rewrote each cursor's anchor. Retire the anchor channel when a newer segment arrives instead, and let only groups holding a retired channel keep the refresh running: a copy in a capped segment measures the logical edge itself, and one in the newest segment measures an edge that stays the logical one until a newer segment arrives. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every relay subscription runs its own front and resume subscriber, so their fixed parts are paid once per viewer. The front's track table reserves several inline TrackIo slots, and each subscriber's segment list reserves four SegmentSubs, each carrying an inline terminal cursor and warm state. Box the table entries, keep a completed segment's cursor in the box its active cursor already had, and box the warm state only one segment of a track ever has. SegmentSub shrinks from 816 to 368 bytes and each table slot from 824 to 24. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every plain cursor poll cloned its shared drift anchor under the channel's lock, although only a wrapping splice ever pushes an edge or successor into it. Without one the anchor is just the cursor's own caps, so rebuild it locally, and rule out a live edge that cannot convict a candidate before revalidating it on the track. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A poll that finds nothing to deliver no longer takes the subscription and track locks for a drift it never uses, and the drift is assembled outside the track lock. Every fanout delivery ends with such a poll. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Segment ranges ascend (a switch caps its predecessor at its own start), so the newest segment with a servable edge in range holds the logical edge. Stop there instead of locking every segment's track on each poll. The new tests pin the range, shared-group and fallback cases this relies on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A splice re-derives every segment's anchor on each poll, and pushing it costs the cursor a channel lock to find out nothing changed. The splice's own copy of what it last pushed answers that without the lock. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Held-group expiry already had this test; delivery did not, so dropping the revalidation in `PlainSubscriber::poll_stale` failed nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every judged delivery chooses between at most two edges; the chain, filter and max_by_key around them cost about 0.7% of a replayed delivery's instructions. Ties still go to the pushed edge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A group sequence that restarts lower behind a declared break (a new upstream behind a relay) was skipped until the recovery rebuild. Only a break ahead of everything decoded resets the guard; lost content and a break behind live media still keep older GOPs out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…roup Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Sample query gaps once per tick so frames delivered together cannot replace the gap between source bursts. Keep the timer-only fallback and real task overrun detection, with fake-clock coverage for both probe modes. Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
State the ambiguity of a quiet source interval and the possible false flag from a wider batch, alongside direct queued-task timing. Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Keep adaptive AAC rows on the original PES-packed source. Publish a separate single-frame AAC PES source for the fixed 250 ms control without changing its encoded audio or silence reference. Cover publisher routing and the wide-burst underrun with deterministic tests. Co-Authored-By: GPT-6 <noreply@openai.com>
Confirm a finished warm group from frame zero so the shared upstream cache retains its head for a front that has no warm copy. Preserve the splice boundary and next-frame continuation for open groups. Reproduce a second front reading the resumed catalog through the real Origin APIs. Co-Authored-By: GPT-6 <noreply@openai.com>
Use yoke-derive 0.8.4 while preserving the existing dependency edges and workspace package versions. Co-Authored-By: GPT-6 <noreply@openai.com>
Track weak references to the catch-result promises held by the effect instead of counting every Promise in the process. Preserve the 10,000-task workload and retention bound, and close the effect even if the assertion fails. Co-Authored-By: GPT-6 <noreply@openai.com>
Paused Tokio time can exhaust real loopback network timeouts before I/O completes. Keep setup, recheck, close, and end-report waits on a running clock, and explicitly advance the existing lease intervals between them. Use request notifications to await the recheck and end reports. Co-Authored-By: GPT-6 <noreply@openai.com>
Advance the existing lease cadence in 10-second steps and prove a literal frame crosses both sessions between steps. This lets real transport activity catch up before its idle deadline, while retaining the 120-second expiry and both literal Expired end reasons. Keep the media handles only for the outage test; other callers still drop them after their first round trip. Co-Authored-By: GPT-6 <noreply@openai.com>
Own the Chromium context until post-measurement trace serialization so external grade failures retain their page evidence. Verify actual pagehide delivery and successful page closure inside a saved Playwright trace through the Interop JS setup lane. Co-Authored-By: GPT-6 <noreply@openai.com>
Keep the stage-catalog assertions independent of real socket scheduling within the production completion deadline. Serve the same snapshots over local TCP with a stationary mocked clock and close both real sessions before teardown. Co-Authored-By: GPT-6 <noreply@openai.com>
Observe process-owned socket identities instead of the namespace-wide UDP table. Isolate the fixture from parallel libtest cases and require a child completion receipt, both socket identities through handle drops, and port release after shutdown. Co-Authored-By: GPT-6 <noreply@openai.com>
Attempt every browser close and fail the media verdict on unexpected teardown errors. Cover swallowed and multiple failures without changing playback timing or thresholds. Co-Authored-By: GPT-6 <noreply@openai.com>
Merge the verified fork fixes into debug-findings-solution. Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Observe the HTTP end event instead of sampling the request log after a fixed delay. Keep the existing assertions and bound a missing event with a test failure. Co-Authored-By: GPT-6 <noreply@openai.com>
Owner
Author
|
Verification completed for D593 against the frozen 1217 base. All eight required checks, the native bundle and the whole Nightly run passed on attempt one. VPS installation and live playback observations are recorded in the PR3 results comment, including adverse site audio and unresolved Safari50 results. The authorized issue comments and closures are complete. PR3 remains open and draft; this temporary verification PR is closed without merging. (Written by GPT-6) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This temporary draft checks PR #3's final head
d5937f527e382fbeeb5be82973de77ec03cd77bcagainst the fixed base1217ea74b3b2a5bbe3ae7beba4bf932ecfacc9c5. PR #3 retains its existing main-branch conflict; no upstream sync or merge into main is included. Do not merge this verification PR.PR #57 merged as
9b2d051bc5661f024e59684a730d9ff4014abf99, with the same product tree as its tested source09a783a788b4354a59d1a517b6a24dd9784e9c60. The merged-head Interop failure happened before any protocol or playback case: a restored Rust target crossed incompatible Nix flake identities.c11d5cb0dfa1fa36d6eb4620b4abcf260dddeff8fixes the cache boundary in four CI files and adds a structural regression test.C11 Interop subsequently passed all 32 language pairs and its worker/main playback checks. Its Test job failed because the inherited auth bare-drop test sampled the request log after a fixed 50 ms, before End arrived. D593 replaces that readiness delay with observation of the actual HTTP End event in the two end-notification tests. A 3-second test failure bound reports a missing event. Final local
just checkpassed 525 selected tests with two skips, plus formatting, lint, docs, workflow, Nix and media checks.Both corrections leave production runtime, public API, wire format, dependencies, package versions and media quality budgets unchanged. The auth change is entirely inside its test module. Earlier failures and the severe Safari 50-player observations remain separate evidence. Fresh attempt-one hosted checks are in progress for this exact final head.
This PR stays open until those checks and their synthetic checkout proof are frozen and the authorized PR #3 results, description and issue comments are published. It will then be closed without merging.
(Written by GPT-6)