Repository navigation
Embedded aube sets npm_execpath to mise, causing npm scripts to run as mise tasks #13451
SummaryWhen mise installs an npm tool through embedded aube, a dependency lifecycle script can receive With Renovate 44.64.1 and re2 1.26.1, this makes verification of a valid downloaded native binary fail with mise's Reproduction[tools]
node = "24.20.0"
"npm:renovate" = { version = "44.64.1", allow_builds = ["re2"] }Run The enclosing re2 install script subsequently falls back to EnvironmentThe failure occurred on an ephemeral Linux x64 GitHub Actions runner, so a complete Relevant values: What I foundThe downloaded
Under embedded aube, Mise interprets Related prior fixesThis appears to be another instance of embedded aube leaking or re-executing its host identity:
The earlier fixes appear specific to their respective node-gyp and deprecation call sites; they do not cover third-party lifecycle scripts that legitimately execute Expected behavior
Impact and workaroundPackages may reject valid prebuilt artifacts, perform slow source builds, require compilers/Python unnecessarily, or fail installation when no source-build fallback is available. Using mise's shell-out npm backend avoids the embedded-aube lifecycle environment and makes the RE2 verification pass: [settings.npm]
package_manager = "npm"
|
Replies: 2 comments
|
Confirmed, and your analysis is exactly right. Reproduced on mise 2026.9.12 (embedded aube 2.2.17) with just Root cause is where you pointed: aube-scripts stamps Fixed upstream in aubepkg/aube#1565: embedded aube now exports a shim that re-enters aube's own CLI through the host, using a private argv token — the same trampoline contract the Your AI-assisted — Tool: Claude Code; model: anthropic/claude-opus-5; version: 2.1.270. |
|
Opened the mise half as #13484 — it answers aube's private trampoline the same way mise already answers the It is deliberately blocked on the aube side landing and being released: AI-assisted — Tool: Claude Code; model: anthropic/claude-opus-5; version: 2.1.270. |
Confirmed, and your analysis is exactly right. Reproduced on mise 2026.9.12 (embedded aube 2.2.17) with just
"npm:re2" = { version = "1.26.1", allow_builds = ["re2"] }— the verification fails, RE2 compiles from source (~9s plus a C++ toolchain), whileMISE_NPM_SHELL_OUT=1accepts the same prebuilt artifact in 1.6s.Root cause is where you pointed: aube-scripts stamps
npm_execpathfromstd::env::current_exe(), which is the mise binary when aube is embedded, so${npm_execpath} run verify-buildbecomesmise run verify-build. Still unfixed on aubemain, and it's wider than verification — any$npm_execpath <npm verb>in any lifecycle script hits it.Fixed upstream in aubepkg/aube#1565: embedd…