Repository navigation
Install Node lazily and leave the user's mise config alone - #15876
Merged
Merged
Conversation
Contributor
[Medium impact] This PR appears safe to merge. SummaryNode becomes a lazy mise default instead of being installed during setup.
The previous config-directory finding is fixed. No new actionable issues were found. Reviews (2) · Last reviewed commit: "Find the user's mise config where mise k..." · Reviewed by Greptile |
ryanrhughes
force-pushed
the
lazy-node
branch
from
October 20, 2026 03:35
a863b8a to
310fd8d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Node joins Omarchy's lazy mise defaults:
/etc/mise/conf.d/omarchy-tools.tomldeclares it likeghoruv, and setup no longer installs it. The firstnode,npmornpxcall installs it, as does the firstnpm:tool (cf,kimi) or Mason package that needs it. Node became a default in 3.1 so LazyVim's tree-sitter could runtree-sitter generate, but nvim-treesittermaingenerates fromgrammar.jsonwithTREE_SITTER_JS_RUNTIME=native, so no parser LazyVim installs needs Node anymore.Setup also stops writing
~/.config/mise/config.toml, so a fresh install has none.upgrade.auto_prune = falsemoves into the package-owned/etc/mise/conf.d/omarchy.toml, which stays loaded after Remove Preinstalls.omarchy install dev-env node(and Laravel) runsmise install nodewhile Omarchy declares Node, becausemise use -gon a declared tool copies its options,lazy = trueincluded, into the user's config.node = "latest"andauto_prune = false. A pinned Node or a differentauto_prunevalue is the user's and stays, Node stays installed for the declaration to reuse, and a user who removed the preinstalls keeps their Node entry. A config symlinked into dotfiles is edited in place. mise leaves an empty[settings.upgrade]table behind.The ISO still bundles the tarball, now unused. omacom/omarchy-iso#290 removes it, and has to wait until this is in every channel the ISO builds from: today's setup fails an install whose ISO has no tarball.
Tests, on a fresh install from a local ISO in a VM:
~/.config/mise; Node not installed;node/npm/npxshims present;upgrade.auto_prunereadsfalsefrom/etcomarchy-update-miselatex, which needstree-sitter generate; Node untouched,:checkhealthclean.jsonwith thelang.jsonextra,:MasonInstall prettiercf/kimiomarchy-migrate/etc,auto_prunestays false, other entries keptquattro: 218 ok, the 4 known failuresDeferred provisioning and a factory reset through its first boot, both from an ISO without the tarball, finish setup with no warnings. The new shell tests (
mise-node-migration,mise-auto-prune-migration,mise-node-dev-env) run real mise../test/clipasses; failures elsewhere in./test/shellare the same onquattrowithout this change.