Repository navigation
fix(install): install a lazy tool's missing dependencies on first use - #12997
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited), Organization UI (inherited) Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughLazy tool installation now resolves missing transitive dependencies before execution. Each tool uses the install directory for its declaring configuration scope. Tests cover direct use, ChangesLazy tool dependency installation
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~25 minutes Merge Risk: ⚪ Minimal · up to Lazy tool first use now installs configured missing dependencies in their declaring scopes, with end-to-end coverage for the affected invocation and scope scenarios. No concrete current-head merge-blocking risk remains. Suggested reviewers: Sequence Diagram(s)sequenceDiagram
participant User
participant LazyShim
participant ToolsetInstaller
participant ConfigDeclarations
User->>LazyShim: Run lazy tool
LazyShim->>ToolsetInstaller: Install missing lazy tool requests
ToolsetInstaller->>ConfigDeclarations: Resolve dependency declarations
ConfigDeclarations-->>ToolsetInstaller: Return dependency requests
ToolsetInstaller->>ToolsetInstaller: Resolve each tool's scoped install directory
ToolsetInstaller-->>LazyShim: Install provider and dependencies
LazyShim-->>User: Execute tool
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 37.50% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 2 files. (2 skipped: 2 unsupported.)
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 |
|
Regarding @coderabbitai's Docstring Coverage requirement:
|
|
Tip For best results, initiate chat on the files or code changes.
You are interacting with an AI system. |
Issue
A lazy tool's
dependstarget is commonly lazy itself, and in that case nothing ever installs it.mise installskips lazy tools by design, and first-use dispatch installs only the provider, so the dependency preflight fails. The hint it prints suggestsmise install, which skips lazy tools, so there is no way out except to stop marking the dependency lazy.Fix
With this change, upon the first-use dispatch through a shim,
mise x, or a task, mise now installs the provider together with its still-missing configured dependencies.Reproduction
AI-assisted — Tool: Claude Code; model: anthropic/claude-opus-5[1m]; version: 2.1.220.
Summary by CodeRabbit
New Features
mise x.Documentation
Tests