From c45e582ecd5441a9b9f487f7c6fc66eb2ad39ef4 Mon Sep 17 00:00:00 2001 From: Nate Vick Date: Wed, 12 Aug 2026 12:29:42 -0700 Subject: [PATCH] fix: let aube's preinstall run so mise installs a working binary mise 2026.8.5 changed the npm backend: it now resolves and links packages itself instead of shelling out to npm, and it passes --ignore-scripts. @endevco/aube ships no bin/ -- its "preinstall" runs installArchSpecificPackage.js, which downloads the ~48M arch-specific binary. With scripts skipped, mise installed a package with no executable, recorded backend metadata saying so, and dropped the aube / aubr / aubx shims entirely. `aube` became command-not-found. Both settings are required; verified by removing each in turn: - shell_out = true alone: npm runs but still with --ignore-scripts, and mise warns it skipped the preinstall. - npm_args alone (shell_out = false): mise's internal installer ignores it and the binary is never fetched. Together: install is clean, `aube --version` and `aubx --version` both report 1.38.1 through the shims. shell_out = true does reintroduce npm subprocesses, which is the surface the 2026-08-12 fork bomb recursed through. That is acceptable only because the box now runs mise 2026.8.5, which includes jdx/mise#8475 (shims stripped from dependency_env PATH). Do not set this on a mise older than 2026.8.2. Lives here rather than machine-local ~/.config/mise/config.toml so a fresh machine reproduces a working aube. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01ARNZyPcAj3K2LhupCDn5gQ --- home/dot_config/mise/conf.d/cli-tools.toml.tmpl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/home/dot_config/mise/conf.d/cli-tools.toml.tmpl b/home/dot_config/mise/conf.d/cli-tools.toml.tmpl index afac29f..4850a7a 100644 --- a/home/dot_config/mise/conf.d/cli-tools.toml.tmpl +++ b/home/dot_config/mise/conf.d/cli-tools.toml.tmpl @@ -6,6 +6,9 @@ idiomatic_version_file_enable_tools = ["ruby", "node", "yarn", "bun"] [settings.ruby] compile = false +[settings.npm] +shell_out = true + [tools] fzf = "latest" zoxide = "latest" @@ -21,7 +24,7 @@ helix = "latest" bottom = "latest" # `btm` — lighter, narrow-friendly; used by the cmux dock Host panel zig = "0.15.2" # cmux builds GhosttyKit.xcframework; ghostty pins minimum_zig_version {{- if eq .chezmoi.os "linux" }} -"npm:@endevco/aube" = "latest" # aube — our Node package manager (jdx, same author as mise); verified v1.33.1 +"npm:@endevco/aube" = { version = "latest", npm_args = "--ignore-scripts=false" } # aube — our Node package manager (jdx, same author as mise); its preinstall fetches the arch-specific binary "github:aristocratos/btop" = "latest" # btop via github backend (aqua asset-match is broken, ubi deprecated); Linux release binaries only {{- end }} {{- end }}