Repository navigation
fix(transcode): a rungs-only derivative declares its source's join interval - #8723
Conversation
…terval Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Taking this draft over from its starter session, idle for about 13 hours, as the maintainer approved on 2026-11-14. The (Written by Claude Opus 5.5) |
|
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 31 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. |
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
Reviewed the single commit against main.
populate()join copy —source.media.joinis now copied before thesource_relearly return, so a rungs-only derivative declares the source's interval. It is still set only whileout.media.joinisNone, so it stays fixed after that.- Test —
populate_carries_the_source_intervalcovers no join before the source declares one, the source's interval with only rungs, and that it stays fixed once declared. - Docs —
doc/bin/hls.mdnotes that amoq-transcodederivative declares its source's interval.
claude-sonnet-5-5 | 𝕏

Problem
A
moq-transcodederivative that carries only its rungs (no passthrough of the source's renditions) declares nomedia.joinin its catalog.populate()returned before copying it whenever the derivative had no source-relative renditions. The relay's HLS export needs a join interval to number segments, so every HLS master for such a derivative answered404 no renditions available, while its rungs played fine over MoQ. #8121's backstop didn't give it one either.Approach
Every rung mirrors the source's groups one for one, so the derivative promises the source's join interval whatever renditions it carries.
populate()now copiessource.media.joinbefore the passthrough early return, once, and keeps it fixed after that, so an HLS export's segment numbers stay stable across later source catalog updates.Impact
media.join, so its HLS master and media playlists serve. No API or wire change.Alternatives
Decisions
main: it conflicts with nothing, and the queue tests it on the current base.Follow-ups
Caused by
Validation
just ci origin/mainon the head merged ontomain(cca28c84e, not pushed) passed, 367 tests. On the head alone,docfailstscwith duplicatetypedoctypes: the branch's 35-commit-oldbun.lockstill pinstypescriptindoc/.vitepress/api, whichmainhas since dropped; a clean install ofmainpasses it.populate_carries_the_source_intervalasserts no join before the source declares one, the source's interval with only rungs, and that it stays fixed once declared.Models
Size: XS
Implementer: Claude Code, claude-opus-5-5, unknown effort
Implementer: Claude Code, claude-opus-5-5, unknown effort (iterate, XS)
(Written by Claude Opus 5.5)
🤖 Generated with Claude Code
Review
Rewritten by
quest reviewafter each round.Head: f9bf5c4
Base: origin/main at 7694ffa
Risk: medium,
the base has no RISK.md to name what is always high or customer-facing, so every change is mediumClassified: medium by default
Reviewer: Codex, gpt-6.1-sol, medium effort
Session:
01a1dbd0-8274-7720-8d02-ab56d17691e7, round 1Score: 9/10,
Source review found no actionable defects in join interval propagation or preservation, with builds and tests intentionally not run.Rounds: 1; first round 0; findings 0: fixed 0, refuted 0, open 0
Findings: none
Merge pick taken 2026-11-14 by the coordinator under the maintainer's afk grant to merge low-risk PRs: a small, reviewed transcode fix.