fix(llm-router): gate the console UI behind a default-on feature; sync stale worker locks - #697
Conversation
The llm-router 1.4.1 bump (531b140) updated only the router's own manifest, leaving every provider worker's Cargo.lock pinning a stale llm-router path-dependency version (1.4.0, and 1.3.2 for llamacpp/xai). The Harness E2E build compiles providers with --locked, so the first E2E run on main after the bump failed before any scenario started: 'cannot update the lock file provider-deepseek/Cargo.lock'. Sync all nine provider locks; each resolves cleanly under --locked.
llm-router 1.4.1's build.rs shells out to pnpm to bundle the injectable console UI, so every worker that path-depends on the router library (all nine providers) started requiring a Node toolchain just to compile llm_router::types — which broke their CI lint/test and boot-smoke jobs, whose runners only carry Rust. Introduce a default-on 'console-ui' feature carrying ui.rs, the iii-console-ui dependency, and the build.rs bundle step. Providers depend on the router with default-features = false, dropping pnpm from their build graphs entirely. The router's own binary is unaffected. Also sync the lock files left stale by today's version bumps: the nine provider locks (llm-router 1.4.1) and approval-gate (harness 1.7.0).
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
skill-check — worker0 verified, 54 skipped (no docs/).
Four for four. Nicely done. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (10)
📒 Files selected for processing (13)
📝 WalkthroughWalkthrough
ChangesOptional console UI
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
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. Comment |
Supersedes #696 (the lock regeneration alone exposed a deeper break).
Problem
llm-router 1.4.1's
build.rsshells out to pnpm to bundle the injectable console UI. Every provider worker path-depends on the router forllm_router::types, so compiling any provider now demands a Node toolchain — breaking all nine providers'rust lint + testandinterface boot smokejobs (their runners only carry Rust, by design):SKIP_UI_BUILD=1is no escape: it requires a prebuiltui/dist/, which is not committed.Fix
Default-on
console-uifeature on llm-router carryingui.rs, theiii-console-uidependency, and the build.rs bundle step; the nine providers depend on the router withdefault-features = false. Their builds no longer touch Node anywhere — CI, local, or user machines. The router's own binary keeps the UI (default features).Validated locally:
provider-deepseekcompiles with no pnpm on PATH and no ui/dist; llm-router compiles both with default features (UI bundled) and with--no-default-features.Lock sync (versions deployed today)
Cargo.locks → llm-router 1.4.1 (were 1.4.0; llamacpp/xai at 1.3.2)approval-gate/Cargo.lock→ harness 1.7.0Known pre-existing break (out of scope)
evalcannot resolve at all on main since the harness 1.7.0 bump: harness pinsiii-sdk =0.21.8whilecrates/console-ui(also in eval's graph) pins=0.21.6— and the rest of the repo is on 0.21.6. Aligning it means propagating the 0.21.8 migration beyond harness; left untouched here so this PR stays green and scoped. Its CI job only fires wheneval/changes.Follow-up worth considering
Bump tooling never regenerates dependents' lock files (llamacpp/xai were stale across two bumps). A bump-time
cargo update -p <worker>across path dependents would prevent recurrence.Summary by CodeRabbit
New Features
Improvements