Repository navigation
refactor: enforce workspace visibility - #12249
Conversation
|
Too many files changed for review (467 files, 100 file limit). Bypass the limit by tagging |
|
Important Review skippedToo many files! This PR contains 467 files, which is 167 over the limit of 300. To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch. Usage-priced reviews support at most 300 files. ⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited), Organization UI (inherited) Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (467)
You can disable this status message by setting the 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 |
48562c8 to
bcbf72e
Compare
6dd6cae to
10ee37b
Compare
Resolves conflicts with the workspace-visibility refactor (#12249): the lazy per-tool implementations keep their bodies and adopt pub(crate), including get_tool and the try_list_tools/list_tools error-propagating variants this branch introduced. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
AI agents often add
pub(crate), but existing code usespub. This enforces the use ofpub(crate).Why
mise is primarily a CLI, and its internal modules and workspace implementation crates do not need to expose APIs beyond their effective crate boundaries. Bare
pubon those items overstates their accessibility and makes it easy for unnecessarily broad visibility to accumulate unnoticed.What changed
pub(crate),pub(super), or private visibility as appropriateunreachable_pubfor every workspace crate targetdead_code_pub_in_binaryfor binary and build-script targets; Rust reports it as inapplicable to librariesbuiltoutput behind one documented lint boundaryThis is a visibility-only refactor with no intended behavior change. The lints prevent the same access creep from returning.
Compatibility
dead_code_pub_in_binaryis newer than the current MSRV. Binary crate roots allow unknown lint names before denying it, so older supported compilers ignore that lint while newer compilers enforce it. Libraries only configure the long-standingunreachable_publint.Validation
mise run lintmise run test:unit— 3,093 passed, 1 ignoredcargo test --workspace --all-features— all workspace package and doc tests passedAI-assisted — Tool: Codex; model: OpenAI/GPT-5; version: unavailable.