Repository navigation
chore(deps): update dependency aube to latest - #49
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/aube-2.x-lockfile
branch
from
October 21, 2026 04:01
f60cf93 to
4bcdb45
Compare
renovate
Bot
force-pushed
the
renovate/aube-2.x-lockfile
branch
from
October 24, 2026 13:18
4bcdb45 to
31e166c
Compare
Author
|
This branch has not been deployed
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.
This PR contains the following updates:
2.2.15→v2.8.5Release Notes
aubepkg/aube (aube)
v2.8.5: : Maintenance releaseCompare Source
This release has no user-facing changes. It only updates dependencies and CI tooling.
Full Changelog: aubepkg/aube@v2.8.4...v2.8.5
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.8.4: : npm, pnpm, Bun and Yarn lockfile rewrites match each tool's own outputCompare Source
Lockfiles that aube rewrites now pass
npm ci,pnpm install --frozen-lockfile, Bun frozen installs andyarn install --immutablein many more cases. This release also fixes--lockfile-dirwith workspaces, fixes how bins oflink:and workspace dependencies are linked, and puts workspace root bins onPATHfor member scripts.Fixed
npm
package-lock.jsonnpm cino longer fails after an unrelatedaube add(#1851, #1863): aube no longer drops or changes entries npm already wrote. It keeps auto-installed peer entries ("peer": true), hoisted required peers such as@emnapi/*,bundleDependenciesand their nested placements,workspacesandengineson existing entries, and leftover nested optional entries. Before this fix,npm cicould fail with errors likeMissing: @emnapi/core@1.11.3 from lock file.hasInstallScriptis now recorded, sonpm ciruns the package's install scripts (#1846).deprecatedis written and kept on rewrite, and a scoped package's stringbinuses the unscoped command name (#1858).libcis written only if the lockfile already uses it orpackageManagerisnpm@11.11.0or later, which stops churn for teams on older npm (#1874).npm cifailed withMissing: <member> from lock file. Member entries also now copyos/cpufrom the member'spackage.jsonand omitnamewhen it matches the folder name, as npm does.file:dependencies, aube now writes the declared spec instead of an internalfile+<hash>key, so the next clean--frozen-lockfileinstall no longer fails (#1855). Absolutefile:directory targets are written as root-relative keys with"link": true, which fixes anEUSAGEerror fromnpm ci(#1853).node_modulescan be read again (#1878): this covers a symlinked member's real path or an extraneous deleted member. Before this fix, aube failed withERR_AUBE_LOCKFILE_PARSE ... could not determine package name. aube still drops these entries when it rewrites the lockfile.pnpm
pnpm-lock.yamlpackageManagerDependencies/configDependenciesdocument that pnpm 12 writes (#1842). It also keepssettingsentries it doesn't model, such aspeersSuffixMaxLength, and local tarballversion,integrityandbundledDependencies(#1857). Bundled children of a local tarball are no longer resolved from the registry. Together these fixERR_PNPM_FROZEN_LOCKFILE_WITH_OUTDATED_LOCKFILEandERR_PNPM_LOCKFILE_CONFIG_MISMATCHerrors afteraube add.transitivePeerDependencies(#1860).Bun
bun.lock--frozen-lockfileinstall. For example, a member on React 19 no longer loads the root's React 18 (#1847).file:directories inside the project are written relative to the lockfile (child@file:assets/child), which Bun's frozen install accepts (#1854).Yarn Berry
yarn.lockyarn install --immutable(no more YN0028 error) (#1862). Block headers list only the descriptors that are actually requested,peerDependenciesranges are quoted only when YAML requires it, and optional dependencies keep theirdependenciesMeta: optional: trueflags.Install, linking and scripts
--lockfile-dirworks with workspaces (#1856): before this fix, a clean--frozen-lockfileinstall failed withlockfile already records importers from other projects, and a relocatedpackage-lock.jsonorbun.lockwas rejected. aube and pnpm lockfiles now record every importer relative to the lockfile directory, as pnpm does.--frozen-lockfileinstall that would need this migration fails and asks you to runaube install --no-frozen-lockfileonce.PATHin member scripts (#1845):<root>/node_modules/.binis now added after the member's own.bin, as pnpm does. This applies toaube run(including-r,--filterand--parallel), thetest/startshortcuts andaube exec.link:and workspace dependencies are picked up (#1839, @JamBalaya56562): before this fix, aube reported "Already up to date" and kept old commands innode_modules/.binuntil--force. aube now checksbinanddirectoriesfor changes, and alink:target that gains apackage.jsonis linked on the next install.link:deps get their bins linked into its.bin(#1873, @JamBalaya56562): the dependency's lifecycle scripts can now call those commands.file:dependencies:file:dependency now links to the directory aube actually creates, instead of a link that points nowhere. With the global virtual store, dependents offile:packages now stay in the project's virtual store instead of the shared one (#1850).file:-linked directory in apackage-lock.jsonproject can nowrequireits own dependencies (#1848).file:/link:children of local tarballs now resolve whenblock-exotic-subdeps=false(#1852).Registry
aube addflagged legitimate new packages as suspicious during npm's stats outage.Full Changelog: aubepkg/aube@v2.8.3...v2.8.4
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.8.3: : Honor NPM_CONFIG_GLOBALCONFIG for registry settingsCompare Source
aube now reads the npm global config file set by
NPM_CONFIG_GLOBALCONFIG, so a registry and auth configured only there are used for installs, as npm does.Fixed
NPM_CONFIG_GLOBALCONFIGis now read (#1818, @jdx): before this fix, if the internal registry was set only throughNPM_CONFIG_GLOBALCONFIG, with no~/.npmrcorNPM_CONFIG_USERCONFIG, aube ignored it and fetched packages fromregistry.npmjs.org. aube now reads the file thatNPM_CONFIG_GLOBALCONFIGornpm_config_globalconfigpoints to, including registry, scoped registry and auth token settings..npmrcoverrides user config, and user config overrides the global file.npm_config_*environment variables override all of them.~in the path is expanded.$PREFIX/etc/npmrclocation.Full Changelog: aubepkg/aube@v2.8.2...v2.8.3
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.8.2: : Smaller lockfile diffs for yarn.lock v1 and package-lock.json, plus no more 5-minute cap on slow tarball downloadsCompare Source
v2.8.2 brings aube's rewrites of Yarn Classic, npm and pnpm lockfiles closer to each tool's own output. It also stops large tarball downloads from failing after 5 minutes while data is still arriving, and fixes several install and resolution differences from pnpm.
Fixed
Lockfiles
yarn.lock(#1802): re-resolving no longer rewrites every entry. aube now keepsresolvedURLs, including the#sha1fragment, and quotes keys only where Yarn does. Block headers list only the ranges that consumers declare, and blocks are sorted the way Yarn sorts them. As a result, bumping one dependency changes only that package's entries:package-lock.json(#1814):aube addand other rewrites leave unchanged entries byte-identical to npm's output."dev": trueno longer moves.fundingvalues are kept exactly as written, includingtypeand arrays with more than one URL.{"url": …}.@ai-sdk/react@4.0.138(react@19.3.1)(zod@4.6.7). The peer is also listed undertransitivePeerDependencies:. Snapshot keys for affected packages change once on the next resolve; frozen installs read existing lockfiles unchanged.catalog:dependencies with ranged overrides (#1816): an override with a version range, such as"is-odd@^3": "catalog:", no longer applies to a dependency declared ascatalog:. This matches pnpm. The importer keepsspecifier: 'catalog:', sopnpm install --frozen-lockfileno longer fails withERR_PNPM_OUTDATED_LOCKFILE. Catalog entries that are referenced only by an override value are no longer written tocatalogs:. Lockfiles that older aube versions wrote for this setup are reported as outdated until the nextaube installrewrites them.Install and resolution
operation timed outafterfetchTimeout(default 5 minutes) while data is still arriving. For tarballs,fetchTimeoutis now the longest time a download can go without receiving data; a stalled download still fails and is retried. Registry metadata requests still usefetchTimeoutas a limit on the whole response.aube install --frozen-lockfilecould install the wrong package when an npm alias shared a name and version with an ordinary package or another alias. For example,compiler: npm:@test/compiler@1.0.0in one workspace member andcompiler: 1.0.0in another. Each member now gets the correct package and its binaries.node_modules/.aube/node_modulesnow gets the version closest to an importer, as with pnpm. Ties are broken by dependency path. In the default layout, the root project's direct dependencies are no longer hidden-hoisted because Node already finds them in the rootnode_modules/. Previously, an undeclared import from a package could resolve to a different version than under pnpm. In one reported case, Vite+ bundled the wrongrolldownversion.supportedArchitecturesplatform lists (#1813):pnpm-workspace.yamlcan now use pnpm 12.5's list form, which previously failed withinvalid type: sequence:<os>-<cpu>[-<libc>], Rust target triples orcurrent. aube merges the OS, CPU and libc values from all entries, so it can allow a few more combinations than pnpm. For example,darwin-arm64pluslinux-x64also allowsdarwin-x64.aube outdated/aube updatewarnings (#1807): aube no longer warns "updates hidden by minimumReleaseAge" when the hidden version is a prereleaselatestoutside the manifest range that is older than the cutoff (for exampleelm-test@0.19.3-0).Full Changelog: aubepkg/aube@v2.8.1...v2.8.2
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.8.1: : pnpm 11 lockfile parity, Yarn Berry and npm lockfile fixesCompare Source
v2.8.1 brings aube-written
pnpm-lock.yamlfiles closer to pnpm 11's output and fixes lockfile round-trips for npm and Yarn Berry. It also fixesminimumReleaseAgeinupdate/dedupe,install --force, workspace detection for nested projects, and handling of an emptyCIvariable.Fixed
Lockfiles
name@versionstring, e.g.(react-dom@18.2.0(react@18.2.0))(react@18.2.0).dedupePeerDependentson (the default), aube resolves an optional peer from any matching version in the graph and lists it underoptionalDependencies:. Compatible variants of a package are merged across importers.catalogs:no longer lists entries that an override replaces.package-lock.json:aube addnow keeps"optional": true(for example on@esbuild/*platform packages) and"hasInstallScript": true. Previously, dropping these made npm fail withUnsupported platform(#1775).file:directory dependencies now keep their link and target entries, sonpm cino longer reportsMissing: … from lock file(#1799).file:peers on re-resolve (#1775):aube addno longer fails withERR_AUBE_BLOCKED_EXOTIC_SUBDEPwhen a directfile:dependency satisfies another package's peer.yarn.lock(#1798):package.jsonare now detected even when some dependencies are unchanged. Previously aube could print "Lockfile is up to date" and leaveyarn.lockstale. This also applies to Yarn Classic.__metadataversion andcacheKey, the root workspace entry,bin:maps andbuiltin<compat/…>patch blocks, and use Yarn's formatting. As a result,yarn install --immutableaccepts them.conditions:,dependenciesMeta:and non-root workspace blocks.Install and resolution
minimumReleaseAgeon npmjs.org (#1791):aube updateandaube dedupecould install versions thatminimumReleaseAgeshould have blocked, including withminimumReleaseAgeStrict: true. Both commands now fetch the publish times they need to apply the cutoff.--min-release-age(#1770): when aube receives npm-style install arguments, it now converts--min-release-age <days>and--min-release-age=<days>to aube'sminimumReleaseAge, which is set in minutes. Arguments after--are left as they are.aube install --force(#1789): now rebuilds every linked package. Files deleted fromnode_modulesare restored instead of the command printing "Already up to date". With the global virtual store, each shared entry is rebuilt in a staging directory and swapped into place.aube installin a subdirectory that is not a workspace member now installs that subdirectory alone. This applies, for example, below anaube-workspace.yamlorpnpm-workspace.yamlthat contains only settings. Previously aube installed the ancestor root.--ignore-workspacenow works too and is listed in the CLI help.CIvariable (#1786):CI=no longer turns on CI mode (frozen lockfile by default, global virtual store disabled).CI=0andCI=falsestill count as CI.rustls-webpkiandwebpki-root-certsto versions that drop the compromised eMudhra intermediate CA certificates.Changed
brew install aubepkg/tap/aube.brew install aubeinstalls the Homebrew core formula. The legacyjdx/tap/aubeformula remains available during the transition.Lockfile changes on upgrade
After upgrading, the next resolve rewrites some lines in existing aube-written
pnpm-lock.yamlfiles: peer suffixes are reordered and newly resolved optional peers are added. Lockfiles are read as they are, so--frozen-lockfileinstalls of older lockfiles keep working.Full Changelog: aubepkg/aube@v2.8.0...v2.8.1
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.8.0: : Trusted dependency controls and shim fixesCompare Source
v2.8.0 lets projects opt out of aube’s built-in trusted dependency list, fixes shell bin execution and long lockfile snapshot keys, and avoids leaking the default shim directory into child-process
PATH.Added
useDefaultTrustedDependenciesto opt out of the built-in trust list.Fixed
sh.PATH(#1761): strip the default shim directory whenAUBE_SHIM_DIRis unset.Full Changelog: aubepkg/aube@v2.7.2...v2.8.0
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.7.2: : Root project filters and TLS error handlingCompare Source
v2.7.2 makes
--filterselect the root project by name and turns an unloadable TLS root into an error instead of a panic.Fixed
--filterto select the root project by name.Full Changelog: aubepkg/aube@v2.7.1...v2.7.2
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.7.0: : Local and workspace dependency linking fixesCompare Source
v2.7.0 improves local and workspace dependency linking, fixes
file:package handling acrossdlxand moved lockfiles, and improves Windows virtual-store behavior.Fixed
link:dependencies across installs and lockfile rewrites (#1648, #1679, #1680, #1684, #1685, #1688).file:packages indlx: resolve relative specs from the invoking directory and accept Windows paths (#1642, #1708).Added
Full Changelog: aubepkg/aube@v2.6.1...v2.7.0
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.6.1: : Recover installs after deleting the lockfile and storeCompare Source
v2.6.1 fixes installs after deleting the lockfile and store, stabilizes dense peer-context resolution, and reduces duplicate store verification work.
Fixed
Changed
Full Changelog: aubepkg/aube@v2.6.0...v2.6.1
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.6.0: : Lockfile selection and Bun 1.4 supportCompare Source
v2.6.0 adds selectable lockfile read/write behavior, supports Bun 1.4 scoped overrides, and improves Bun lockfile imports. It also makes fresh resolution faster and allows
why-is-node-running3.2.2 without provenance.Changed
Fixed
why-is-node-running3.2.2 when it has no provenance.Full Changelog: aubepkg/aube@v2.5.1...v2.6.0
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.5.1: : Faster repeated fresh installs and faster startup on LinuxCompare Source
Repeated fresh installs skip redundant OSV lookups, and the Linux release binaries start a little faster.
Changed
node_modulesandaube-lock.yamlremoved went from a 346 ms median to 107 ms.add/update/dlxchecks,advisoryCheck = requiredandadvisoryCheckEveryInstall = truestill query OSV live every time.aube,aubrandaubxare now linked as non-PIE. The loader no longer has to patch about 56k pointers at each launch, soaube --versiondrops from about 2.2 ms to 1.6 ms.cargo install, source builds and the PPA/COPR packages.Full Changelog: aubepkg/aube@...v2.5.1
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.5.0: : Choose range or latest per package inaube update --interactiveCompare Source
aube update --interactivenow lets you pick, for each package, whether to keep the current version, move to the newest version its range allows, or jump tolatest. Repeated frozen installs and fresh installs without a lockfile are also faster, and a reinstall that failed after you deleted the cache and lockfile now works.Added
Per-package version choice in
aube update --interactive(#1612 by @jdx): The picker used to be one checkbox per dependency, with the target set by flags. It is now a table, like Yarn Berry'supgrade-interactive. Each row shows the current version, the newest version the range allows, and the registry'slatest. Use ↑/↓ to move between rows and ←/→ to choose a version. Rows left on Current are skipped, and/filters by name. Closes #1611.--latest. Pressing Enter right away does the same thing as the non-interactive command.-Estill forces exact pins.--no-savehides Latest and pin bumps, because both would rewritepackage.json.update -r -i, the version you choose for a shared catalog entry is used for later workspace packages without asking again.dependencies/devDependencies).Changed
--frozen-lockfileand lifecycle scripts disabled (for exampleaube install --frozen-lockfile --offline --ignore-scripts). On the benchmark fixture, a no-op install went from about 82 ms to about 7 ms. The freshness check hashes the lockfile and manifest contents, so a change is caught even when file size and modification time stay the same. A missing dependency link also counts as a change. Workspaces, patches, local sources, enabled scripts, custom lockfile locations and active per-install advisory policies still go through full validation.advisoryCheck: on, graphs with more than 10 distinct package/version pairs are now screened with the advisory Bloom filter first, and only probable hits are checked against the live API. On the benchmark fixtures this cut fresh install time by 36–67%.aube add/aube update, for transientaube dlxinstalls, and withadvisoryCheck: requiredoradvisoryCheckEveryInstall: true.Fixed
node_modules. Now an existing package directory is reused only when its dependency subtree matches the previous install and the directory still exists. Anything else is looked up in the store again, or downloaded again, before linking.Full Changelog: aubepkg/aube@...v2.5.0
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.4.0: : Reuse node_modules/.aube-lock.yaml when the lockfile is missingCompare Source
aube installcan now rebuild a deleted lockfile from a hidden copy kept innode_modules, so it doesn't re-resolve from the registry. This release also makes cold installs on Linux faster and lighter on memory, and fixes lifecycle scripts on Windows and a workspaceaube updatethat could drop members from the lockfile.Added
Hidden lockfile in
node_modules(#1594 by @jdx): Every install now writes a copy of the resolved graph tonode_modules/.aube-lock.yaml. If the project has no lockfile of any supported kind,aube installstarts from that copy, as pnpm does with its current lockfile. If the manifests haven't changed, the graph is reused with no resolve. If they have changed, only the specs that changed are resolved again, and the other packages keep their locked versions.aube-lock.yamlis then written again.--frozen-lockfileandaube cistill fail when there is no lockfile.--no-frozen-lockfileignores the hidden copy.CI=truewith no explicit flags), an install that seeds from the hidden copy is treated as prefer-frozen.WARN_AUBE_HIDDEN_LOCKFILE_BROKENand resolves normally.lockfile=false, which also deletes any existing copy, or withsharedWorkspaceLockfile=false. It is also skipped for reuse installs from npm, yarn or bun lockfiles.Changed
AUBE_TOKIO_BLOCKINGstill overrides the default, and macOS and Windows keep 128.Fixed
EISDIR: illegal operation on a directory, lstat 'C:'(#1591 by @jdx): This affected scripts that start node through a.binshim (for examplenode-gyp-build) duringaube add,remove,update,dedupeandci, and during installs from embedding hosts such as mise'snpm:backend. The install root and the Node-API embedding's project directory no longer carry the\\?\verbatim prefix. Fixes #1590.aube updateat a workspace root dropping workspace members fromaube-lock.yaml(#1579 by @jdx): With a shared lockfile, runningaube updateoraube update -wat the root could delete every workspace member's entry inaube-lock.yaml. Member entries, their packages, patch hashes and catalog snapshots are now kept, and only the root's direct dependencies are updated.aube installalso treats a workspace member that declares dependencies but has no entry in the lockfile as stale, so installing again repairs lockfiles already damaged by this bug.Full Changelog: aubepkg/aube@v2.3.0...v2.4.0
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.3.0: : Host-bound Node launchers for embedders, plus hoisted.bin, lockfile patch-hash, and terminal-cleanup fixesCompare Source
Embedding hosts such as mise can now bind installed Node CLIs to a specific Node executable, and a batch of fixes covers hoisted-install bin linking,
aube-lock.yamlpatch hashes,ignoreScriptsresolution, signal delivery indlx --shell-mode, and terminal state after failed or interrupted installs.Added
Bind installed CLIs to a host-managed Node runtime (#1576 by @jdx) — Installed Node CLIs previously found their interpreter through the caller's
PATH, so a tool manager could not give an application its own runtime without also changing which Node its project subprocesses see.EmbedderRuntime::bind_bins_togenerates launchers that invoke the supplied absolute Node executable directly while leaving the inheritedPATHunchanged; it works with both embeddedinstallandadd:The path is kept as written (symlinks are not canonicalized), so a moving major-version path like mise's
installs/node/25/bin/nodeworks; a missing runtime fails rather than falling back to ambient Node. Changing or removing the binding regenerates launchers on the next install, including frozen ones. Bound installs always materialize locally and disable the global virtual store so runtime-specific launchers stay out of shared trees. Simple Node shebang flags are preserved; quoted shebang arguments and environment assignments are rejected. Standalone aube's runtime selection is unchanged — this is the launcher support a host needs to implement its own policy (see jdx/mise#13477).Fixed
--node-linker=hoisted, only importers' direct dependencies were linked intonode_modules/.bin, so packages whose lifecycle scripts call a binary from their own dependencies failed with errors likesh: node-pre-gyp: command not found(bcrypt,prebuild-install,napi-postinstall; see discussion #1543). Hoisted installs now follow npm's rule: each package's bins are linked into the.bin/of thenode_modules/it sits in, and a dependency's lifecycle script sees its own nested.binfirst so a version conflict no longer silently runs the hoisted winner. An importer's ownbinand its direct dependencies always take precedence over transitive packages on a name collision. Isolated installs are unaffected.aube rebuildrelinks the full bin surface (#1550 by @jdx) —rebuildonly relinked per-dependency shims, so a command added or retargeted inpackage.json#binafter install stayed missing or stale until the nextaube install.rebuildnow uses the same bin-linking entry point asinstall(importer bins, workspace member bins, then dependency bins). If a workspace member manifest is unreadable, it warns and reconciles the root importer instead of aborting.aube rebuild --filter <member>is not covered by this change.ignoreScriptsis honored from env,.npmrc, andaube-workspace.yaml(#1552 by @jdx, fixes #1551) — Only the--ignore-scriptsflag reached the installer;AUBE_IGNORE_SCRIPTS,npm_config_ignore_scripts,ignore-scripts=truein.npmrc, andignoreScripts: truein the workspace yaml were parsed and then discarded, soaube config get ignore-scriptsprintedtruewhile the next install ran scripts anyway. All sources now apply acrossinstall,ci,add,remove,update(including itspnpm:devPreinstallhook),dlx,deploy, and the auto-installaube runperforms on a stale tree — which previously had no way to skip scripts at all. An explicit flag still wins over a lower-precedencefalse.pack,publish, andversionkeep their own--ignore-scriptsflags.aube-lock.yamlkeeps patch hashes on re-resolve (#1577 by @jdx) — In a project withpatchedDependencies, runningaube adddropped the(patch_hash=…)suffix from patched entries inaube-lock.yaml, producing a spurious lockfile diff on every add and anode_modules/.aube/directory name that varied by how the lockfile was produced (reported in jdx/mise#13456).aube-lock.yamlnow records patch identities the same waypnpm-lock.yamldoes — a top-levelpatchedDependencies:map and(patch_hash=…)in entry names — consistently after install, add, and import, and a plainaube installnow detects edited, added, or removed patches. Upgrade note: existing hashlessaube-lock.yamlfiles still pass--frozen-lockfileunchanged; the next non-frozen install oraddrecords the hashes as a one-time diff. Projects without patches are unaffected.npm_execpathwhen aube is embedded (#1565 by @jdx) — Embedded aube setnpm_execpathto the host's binary, so a package running${npm_execpath} run verify-build(e.g.install-artifact-from-github, used byre2) invoked the host's own CLI and failed, causing a needless source build or a failed install (jdx/mise#13451). Embedded aube now exports a shim that re-enters aube's CLI through the host via a private__aube-cliargv token (embed::CLI_TRAMPOLINE_ARG); hosts dispatch it the same way as the existing node-gyp trampoline, anddocs/embedding/rust.mdnow documents both. If the shim cannot be written,npm_execpathis left unset rather than naming the host.AUBE_CLI_EXEis new in the lifecycle environment, and an inherited outernpm_execpathis now cleared before stamping. Standalone aube is unchanged.aube dlx --shell-modedelivers termination signals to the tool (#1562 by @jdx) — Signaling anaube dlx --shell-mode(oraubx -c) process stopped at the intermediatesh -c, leaving the tool running and aube hung waiting on it. A shell-mode line that is a single plain command now runs without a shell (using the same strict allowlist asaube run), so the tool is aube's direct child, receives the forwarded signal, and its exit code propagates. Pipelines, redirects, expansions, quoting, and shell builtins still run undershwith unchanged behavior, and the--shell-modehelp text now describes this contract.SIGINT/SIGTERM/SIGHUP/SIGQUITand panics to restore the terminal before re-raising — Ctrl-C still exits 130. Signals already ignored or handled (e.g. undernohup, or by an embedding host) are left alone. Windows gets the panic restore but not the signal handling.Full Changelog: aubepkg/aube@v2.2.17...v2.3.0
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.2.17: : Maintenance releaseCompare Source
This release only refreshes
Cargo.lockdependencies and contains no user-facing changes.Full Changelog: aubepkg/aube@v2.2.16...v2.2.17
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
v2.2.16: : aube add installs local tarballs by their manifest nameCompare Source
aube add ./package.tgznow records the package under the name declared in the tarball'spackage.json, and localfile:/link:/portal:dependencies now install theiroptionalDependencies.Fixed
package.tgz, andaube addpreviously derived the dependency key from that filename, producing a bogus"package": "file:./package.tgz"entry alongside any existing dependency on the real package. For an unaliased local tarball or directory,aube addnow readspackage.json#nameand uses it as the key, so the add replaces an existing dependency on the same package instead of adding a second one. Explicit aliases (aube add alias@file:./package.tgz) remain authoritative, and a local package whose manifest has nonameis now rejected with an error. This fixes Bun checksum installs through mise (jdx/mise#13125), which download the verified artifact aspackage.tgz.optionalDependencies(#1532 by @jdx) —file:,link:, andportal:directory and tarball dependencies previously only resolveddependencies, so optional platform packages declared by a local package (such as Bun's per-platform binaries) were silently dropped. They are now resolved and linked under the local package, honoringignoredOptionalDependenciesandblockExoticSubdeps, and skipping any optional dependency already listed underdependenciesso it is not installed twice.Full Changelog: aubepkg/aube@v2.2.15...v2.2.16
💚 Sponsor aube
aube is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If aube saves your team install time or CI minutes, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep aube fast, free, and independent.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.