Repository navigation
Conversation
rind-rcgen 0.1.14 pulled rind 0.2.0 beside moq's rind 0.1.12, and the release profile's fat LTO cannot link two copies of rind's assembly (duplicate vpaes_* symbols). upgrade-moq.sh resolved the studio's lock without moq's, so a crate a moq bump added landed at its newest release. It now moves every crate both locks hold to moq's tested version. 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 47 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. |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed head: fcd6b3f995040e7c56c492e4a0d80fef34f65c6d
Base: bfc823b0347857ff3572a99a3a56bf3d67d6944d
No actionable findings.
The new alignment step in sh/upgrade-moq.sh:14–45 fits the recorded decision to use moq's tested dependency versions. It runs after Cargo resolves the updated submodule and before the existing JS-lock refresh, leaves different compatibility ranges alone, and lets Cargo reject an unsatisfiable precise version rather than silently accepting drift. The immediate no-progress check also prevents repeatedly issuing the same ineffective update.
Inspecting the lockfiles as inputs to this script confirms 30 shared-version differences in the base and none in the head under the script's grouping. The head contains only rind 0.1.12, with rind-rcgen 0.1.12 matching the pinned moq lock. Generated lockfile changes were not treated as separate findings.
Direction: keep the shared-version alignment in the existing upgrade path and retain the separate upstream-pin workflow.
Verification limits: GitHub-only static review of the full script, callers, manifests, lock inputs, base guidance and history. I did not run quest context, the shell/awk script, Cargo resolution, builds or tests, and did not reproduce the Apple Silicon release link. Check run 778 was still in progress when inspected; the reported local validation was not independently reproduced.

Problem
cargo build --release -p moq-studio, as the README's first command runs it, fails to link on Apple Silicon with 111 errors likesymbol 'Lvpaes_enc_2x_loop' is already defined. The lock holds two versions of therindcrypto crate: moq-auth and moq-crypto use rind 0.1.12, while rind-rcgen 0.1.14 (via moq-tokio) pulls rind 0.2.0. The release profile's fat LTO with one codegen unit merges both copies' hand-written assembly into one module, where the labels collide. No CI job builds release, so nothing caught it. Found while running capture on a Mac for moq-dev/studio#70.moq's own lock pins rind-rcgen 0.1.12 and links fine.
sh/upgrade-moq.shresolved the studio's lock on its own, so a crate a moq bump added landed at its newest compatible release rather than the one moq tested. 30 shared crates had drifted: 28 behind moq, and rind-rcgen and rind-jsonwebtoken ahead.Approach
upgrade-moq.shnow moves every registry crate both locks hold at semver-compatible versions to moq's version, onecargo update --preciseat a time, and fails if Cargo keeps one elsewhere because the studio needs it.Cargo.lockis that script's result at the current pin (079a6460f): rind 0.2.0 is gone, and the 30 shared crates match moq's lock.Impact
Release builds link again. No public API or wire change; dependency versions move to the ones moq's CI tests.
Alternatives
just upgrade-moqcan drift again unnoticed.Caused by
Decisions
Settled with the maintainer on 2026-11-08 (/quest-iterate on #70):
upgrade-moq.sh(rejected: pin only; a CI release build).Validation
cargo build --release -p moq-studio --features capture(fat LTO) on Apple Silicon: failed with the duplicate symbols before, links after; the binary runs.sh/upgrade-moq.sh 079a6460f: leaves no drift from moq's lock, andbun.lockunchanged. Its awk also runs under macOS's/usr/bin/awk.just ci: pass (278 tests).Models
Size: S
Implementer: Claude Code, claude-opus-5-5, high effort
(Written by Claude Opus 5.5 with high)
🤖 Generated with Claude Code
Review
Rewritten by
quest reviewafter each round.01a1bf18-b9aa-7fe1-9c16-a83a8889a0f8, round 1Source inspection found no actionable defects in the lock-alignment logic or its integration; builds, tests, and quest context were not run, as required by the review instructions.