Repository navigation
fix(size): the failing report ends with its regressions, and the sdist drops vendored RTP captures - #8654
Merged
Conversation
…t drops vendored RTP captures Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
kixelated
marked this pull request as ready for review
November 14, 2026 03:21
Contributor
|
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 9 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. |
Contributor
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
Reviewed the full diff of the 4 changed files.
- Regression summary on stderr —
sh/size/report.pynow exits withSystemExit("size regression:\n" + ...), so the failing step's log ends with the regressions. The exit code stays 1. - sdist exclude —
pyproject.tomladds**/tests/data/**for the sdist, matching whatmoq-webrtcalready excludes from its crate. - Tests —
sh/size/report.test.pyasserts the stderr ending. It also runs the report through one pipe and asserts the log ends with the regression. - Audit quest —
quest/m1/js-bundle-audit.mdrecords the accepted JS growth and the follow-up audit.
claude-sonnet-5-5 | 𝕏
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.

Problem
Nightly's Shipping sizes job (run) fails with exit 1, and its log ends with the release build-time table, so the reason is easy to miss. The reason is a real size regression against the 2026-11-07 report (the job was skipped 11-08 through 11-12 because a release job it needs failed, so six days of growth landed in one comparison):
js/netbrotli 136,880 to 157,282 bytes). The growth is spread across about 96 js/net, js/qmux, and js/clock commits (track, lite subscriber, the byte-pool cache, frame, drops, floors), not one change.release/python-sdist/moq_ffi.tar.gzgrew 35% (8,840,141 to 11,939,943 bytes). The sdist includes all ofrs/**, so it picked up the vendored WebRTC stack, including str0m's RTP captures, whichmoq-webrtc's own Cargoexcludealready drops because only its tests read them.moq-candmoq-relayaarch64 archives and the Windows Go import library grew 5 to 6%.The mbx
remote cache download budget exceededwarnings in the same step are cache misses, not the failure.Approach
sh/size/report.pyrepeats the regressions on stderr as it exits, so the failing step's log ends with them. The summary is unchanged.**/tests/data/**, as the crate does. This removes 1.38 MB (11.5%) of the sdist. The JS growth is accepted under Decisions, with an audit quest; the binary growth is left alone.Impact
Validation
sh/size/report.pyon tonight'ssizes.jsonwith the 11-07 history exits 1, and stderr ends with the 21 regression lines;report.test.pyasserts the stderr ending.mainis 11,939,914 bytes (CI measured 11,939,943), and this branch's is 10,562,377 bytes, with only the 11str0m/tests/datafiles gone.pip wheelfrom the trimmed sdist builds, installs, andimport moq_ffisucceeds.report.test.pyalso runs the report through one pipe (2>&1) and asserts the log ends with the regression, so the ordering holds in a job log.mainata026b71b1as Nightly does (just js build,bun sh/size/bundles.ts):js/netbrotli is 153,149 bytes (11-13 report 157,282; 11-07 report 136,880), the figures the audit quest records.just checkpasses.Caused by
Decisions
sorted-btreeand the test-onlyManualclock from every bundle; onmainata026b71b1, brotli is 2% to 3% below the 11-13 report and still 9% to 12% above the 11-07 one. The 30-day comparison fails from 11-21 until a post-growth report is the anchor (12-13 for the 11-13 report), as the audit quest details.Alternatives
exclude, from the sdist: the RTP captures are 1.37 of the 1.38 MB, so the narrow pattern earns nearly all of it.Follow-ups
quest/m1/js-bundle-audit.md, M, m1): what each bundle carries, what can be split or lazy-loaded, and the 30-day anchor. No open decisions.moq-cliarmv7 and macOS builds,Release FFIGo bindings, aarch64 FFI builds), so several nights of growth arrive as one jump.Models
Size: S
Implementer: Claude Code, claude-opus-5-5
Implementer: Claude Code, claude-sonnet-5-5, unknown effort (iterate, S)
🤖 Generated with Claude Code
(Written by Claude Opus 5.5)
(Written by Claude Sonnet 5.5)
Review
Rewritten by
quest reviewafter each round.Head: 80d805b
Base: origin/main at a026b71
Reviewer: Codex, gpt-6.1-sol, medium effort
Session:
01a1d80f-22ee-7ab0-adc0-483c08aafd42, round 2Score: 10/10,
The incremental change verifies combined-stream log ordering, and the author's evidence refutes the earlier buffering concern.Rounds: 2; findings 1 (medium 1): fixed 0, refuted 1, open 0
Findings: none
The last round's findings, at f4a319b:
sh/size/report.py:100:Flush the summary before emitting the final regression;The reported command output demonstrates CPython's ordering, and sh/size/report.test.py:140–146 now captures stdout and stderr through one pipe and asserts that the regression appears last.