Repository navigation
fix(config): preserve configured runtime options - #11550
Conversation
📝 WalkthroughWalkthroughRuntime tool arguments now receive configured options through a shared helper. Registry defaults, configured options, and explicit inline options follow consistent precedence rules. Tests cover option layering and postinstall execution. ChangesRuntime option layering
Estimated code review effort: 3 (Moderate) | ~15–30 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
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 |
Greptile SummaryThis PR preserves configured backend options when explicit runtime versions are processed, while retaining registry, manifest, alias, config, and inline-option precedence.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Reviews (2): Last reviewed commit: "test(install): cover configured runtime ..." | Re-trigger Greptile |
What
Apply configured backend options to explicit runtime tool arguments in both argument ingestion paths, while preserving the normal option precedence:
registry / manifest / alias defaults < config < explicit inline optionsWhy
Runtime requests parsed from registry-backed tools can already contain default options. The existing merge treated a non-empty option map as proof that the user supplied inline options, so it skipped configured options entirely. The other runtime argument path did not perform this merge at all.
This is a pre-existing bug found while preparing #11481. It is split out so that feature can build on consistent option layering.
Example bug fixed
Given this project config:
Running
mise install solidity@0.8.2creates an explicit runtime request for Solidity 0.8.2. Solidity already carries the registry defaultbin = "solc", so before this change the non-empty registry option map caused mise to skip the configured options entirely. The installation completed without running the configuredpostinstall, leaving/tmp/solidity-postinstall-ranabsent.This was reproduced with the apt-installed mise 2026.8.1.
mise xis not a reproducer because it usesToolsetBuilder, which already preserves configured options; the affected explicit install path usesToolRequestSetBuilder.After this change, the configured
postinstallis layered on top of the registry default and runs for the explicitly requested version; explicit inline options still take precedence over both.Test
mise run lint-fixmise run test:e2e e2e/cli/test_install_postinstall_cli_versionAI-assisted — Tool: Codex; model: openai/gpt-5; version: unavailable.
Summary by CodeRabbit