Skip to content

fix(studio): build moq-studio on its own - #88

Merged
kixelated merged 5 commits into
mainfrom
quest/m0/studio-builds-alone
Nov 7, 2026
Merged

kixelated merged 5 commits into
mainfrom
quest/m0/studio-builds-alone

Conversation

@kixelated

@kixelated kixelated commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

Finishes quest/m0/studio-builds-alone.md and deletes it.

Problem

cargo build -p moq-studio, and so the README's cargo run -p moq-studio, failed on main:

error[E0599]: no method named `next` found for struct `moq_stats::aggregate::PrefixConsumer`

rs/moq-studio/src/health.rs awaits moq-stats' async wrappers, but only the moq-relay dev-dependency turned on moq-stats' async. just check lints with --all-targets and just test builds tests, so cargo unified the dev-dependency features into every build CI made and none noticed.

Approach

  • The studio's own moq-stats dependency enables async.
  • Checked every other moq crate the studio and moq-scene use the same way, by building each package alone on Linux (cargo check --locked -p <pkg>) with default features and with the opt-in ones: -p moq-studio, -p moq-studio --features capture,openh264,pipewire,cef, -p moq-scene, -p moq-scene --features capture,pipewire, -p moq-scene --features cef. All pass with this fix; moq-stats was the only gap. The rest already name what they await (kio async, moq-json async, moq-room async, moq-tokio net for moq-net's).
  • just check now ends with cargo check --locked -p moq-studio --features <the same feature list>, which fails without the fix with the error above.

Impact

  • cargo build -p moq-studio and cargo run -p moq-studio build again.
  • No public API or wire change.

Choices made without asking

  • just check builds the studio alone (the quest's recommendation, left open). Cost, measured from a cold target directory: after the two clippies (721 units), the lone check rebuilds 196 more, since without the dev-dependencies shared crates such as syn, serde, and tokio unify to other feature sets and everything above them recompiles. A default-feature lone check after the default clippy (192 units) took 35 s uncached on four cores, about 4% of Check's ~15 min. Worth it: it guards the README's own build command, and the studio's dev-dependencies (moq-relay, moq-auth serve, kio manual, tokio test-util) turn on enough moq features that the next gap is likely.
  • With the opt-in features, not the defaults: it compiles every feature-gated path, and a default-feature lone check after it would add 34 more units for only the cfg(not(feature)) stubs.
  • moq-scene alone is not added: it builds today, but checking it alone costs another 162 units and it has no standalone consumer yet; AGENTS.md's headless compositor and wasm build are plans.

Alternatives

  • Lint without --all-targets in the default-feature clippy so it builds the studio without dev-dependencies: cheaper, but stops linting the default-feature tests.
  • The nightly workflow instead of the PR gate: off the merge path, but a gap lands and breaks the README command until the next nightly reads it.

Validation

On Linux (ssh nixos, Nix dev shell):

  • just ci: passes (279 tests run, 279 passed, 72 skipped).
  • The new check with the moq-stats line reverted: fails with the E0599 above.
  • The per-package checks listed under Approach: all pass.

Follow-ups

None.

Review

Codex, gpt-6.1-sol, medium effort (quest review, round 1) on head 90c818d: no findings.

(Written by Claude Opus 5.5)

🤖 Generated with Claude Code

@pullfrog

pullfrog Bot commented Nov 7, 2026

Copy link
Copy Markdown

Pullfrog  | Review this ➔

kixelated and others added 3 commits November 7, 2026 06:04
@kixelated kixelated changed the title moq-studio builds on its own fix(studio): build moq-studio on its own Nov 7, 2026
@kixelated
kixelated marked this pull request as ready for review November 7, 2026 14:14
@coderabbitai

coderabbitai Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You'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 10 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: fe941419-67ad-44b0-8034-35e04a8264f2
Commits

Reviewing files that changed from the base of the PR and between b87cc76 and a0b49fb.

Files selected for processing: 3

  • justfile
  • quest/m0/README.md
  • quest/m0/studio-builds-alone.md
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Share

@kixelated kixelated left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review by review (OpenAI)

Reviewed head 90c818d710edb970b5e6d731ccd2ccd7f592eef8 against base f760ee7227519ff79983bb5c5c95b3c1e7db529c.

No actionable findings. The studio directly awaits PrefixConsumer::next, whose wrapper is gated by moq-stats/async; enabling it on the normal dependency fixes the missing feature at its source. With resolver 2, the new package-only cargo check excludes the test dependencies that previously masked this, and CI reaches it through just ci.

Direction: keep the explicit dependency feature and standalone check. No code changes requested.

Verification limits: GitHub-only static review of the changed files, CI wiring and pinned dependency sources. I read the pinned quest context as source but did not execute quest context, builds or tests, or reproduce the reported build costs and per-package checks. COMMENT only, not approval.

(Written by review (OpenAI))

@kixelated

Copy link
Copy Markdown
Contributor Author

Pick (/quest-complete, maintainer away under /afk, recommended option): ✅ Merge, keeping the standalone cargo check -p moq-studio in just check (about 4% of Check's time, and it guards the README's cargo run -p moq-studio). The OpenAI review found nothing, and CodeRabbit skipped on its rate limit. Merged main (#85, #89), with no conflicts.

(Written by Claude Opus 5.5)

@kixelated
kixelated merged commit 79c60b9 into main Nov 7, 2026
3 checks passed
@kixelated
kixelated deleted the quest/m0/studio-builds-alone branch November 7, 2026 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant