chore(deps): update dependency aube to v1.37.0 - #10
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/aube-1.x
branch
from
July 29, 2026 02:15
67f903c to
3bb3a26
Compare
renovate
Bot
force-pushed
the
renovate/aube-1.x
branch
from
July 29, 2026 21:01
3bb3a26 to
f1b1be2
Compare
renovate
Bot
force-pushed
the
renovate/aube-1.x
branch
from
July 31, 2026 17:50
f1b1be2 to
1207ed6
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.
This PR contains the following updates:
1.33.1→1.37.0Release Notes
jdx/aube (aube)
v1.37.0: : Sharper release-age reporting and embedder PATH controlCompare Source
This release makes
minimumReleaseAgevisible inoutdated/updatereports instead of silently hiding upgrades, gives embedding hosts precise control over how runtime binaries sit onPATH, and fixes several rough edges inadd,patch,licenses, and shim resolution.Added
esbuild,sharp), embedded at build time so installs stay offline and reproducible. Project and workspaceallowBuildssettings are merged, and explicit denials always win over built-in or configured approvals.PATHunchanged for embedder runtimes (#1189 by @jdx) — A newEmbedderRuntime::without_path()builder lets embedding hosts supply the Node program and npm exec path (NODE,npm_node_execpath) without deriving or prepending aPATHentry, so barenodecommands resolve as inherited.path_dir(...)andwithout_path()follow last-call-wins builder semantics.Fixed
minimumReleaseAge(#1193, #1192 by @jdx) —aube outdated,aube update, and the interactive picker now apply the same release-age policy as install resolution, so they no longer offer versions that selecting wouldn't install. When newer releases are still quarantined, a single aggregatedWARN_AUBE_MINIMUM_RELEASE_AGE_BLOCKED_UPDATEexplains what's hidden and why (e.g.updates hidden by minimumReleaseAge: is-odd@3.0.1).aube up --latestnow selects the newest mature version instead of admitting a quarantined dist-tag, aliased dependencies are handled correctly, and full timestamped packuments are fetched when abbreviated metadata lacks publish times. Fixes the behavior reported in #1191.aube add(#1198 by @jdx) — The similar-name supply-chain gate now stops once a requested name exactly matches the top-100k popularity corpus, soaube add esbuildandaube add @​types/nodeno longer require--allow-low-downloadsjust because lower-ranked lookalikes (msbuild,@types/code) exist. Typo detection for names not in the corpus is unchanged.patch-commitnow reuses a dependency's existingpatchedDependenciespath and appends new hunks so the result still applies to pristine package contents, instead of orphaning the original patch behind a freshly generated file. Lockfile freshness checks now SHA-256 declared patch files against the hashes recorded inpnpm-lock.yaml, re-resolving on normal installs and failing frozen installs withERR_AUBE_LOCKFILE_CONFIG_MISMATCH. Addresses discussions #1195 and #1197.aube licensesno longer assumes an isolated virtual store. It now prefers the recorded install layout, reconstructs hoisted placements from the lockfile graph, and reads eachpackage.jsonfrom its on-disk hoisted path, fixing hoisted installs (including--node-linker=hoisted) where every dependency reportedUNKNOWN. Fixes #1182.PATH(#1188 by @jdx) — Wrapper embedder runtimes were being silently bypassed when a dependency or project exposed anode_modules/.bin/node, defeating host-supplied instrumentation, transpilation, or sandboxing. Wrapper shims are now prepended ahead of project-local bins, while selector runtimes keep the existing.bin-first precedence, with the same ordering applied across lifecycle scripts,run, and shell-modeexec/dlx. Addresses Discussion #1083.aube activate, package scripts run viaaube runcan again resolvepnpm,npm, andyarnthrough the activated shim directory, which was previously stripped by aube's own startupPATHsanitization. aube's processPATHstays sanitized so internal runtime probes don't recurse through shims. Fixes discussion #1186.Full Changelog: jdx/aube@v1.36.0...v1.37.0
💚 Sponsor aube
aube is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools including mise. Work on aube is funded by sponsors.
If aube is saving your team install time or CI minutes, please consider sponsoring at jdx.dev. Individual and company sponsorships are what keep the project fast, free, and independent.
v1.36.0: : pnpm 11.18 parity and safer terminal outputCompare Source
This release brings aube in line with several pnpm 11.18 features —
publishConfig.nameand thepnpm:devPreinstallhook — while stabilizing recursive workspace updates, tighteningoutdatedreporting, and hardening terminal output against Unicode spoofing.Added
publishConfig.namesupport (#1176 by @jdx) — Matching pnpm 11.18, a workspace package can now publish under a different registry name viapublishConfig.namewithout renaming the project. The published name drives registry existence checks, the PUT URL, tarball filename, and embedded manifest, while the on-disknamestays the workspace/lockfile identity. Single-package publishes now run pre-publish hooks first, then re-resolve the target so hooks that change the name or version are honored.{ "name": "my-workspace-pkg", "publishConfig": { "name": "@​scope/published-name" } }pnpm:devPreinstallhook (#1177 by @jdx) — The root package'spnpm:devPreinstallscript now runs once from the workspace/lockfile root before ordinarypreinstall, letting a workspace prepare files that resolution or linking expects. It also runs on chainedadd/updateinstalls, and is skipped on warm no-op installs,--ignore-scripts,--lockfile-only, and dry runs.Preserve existing
package.jsonindentation (#1171 by @howmanysmall) — When aube rewrites manifests, tabs and nonstandard space widths now survive workspace edits, deploy rewrites, patch removal, and shared manifest writes. Read failures other than a missing file now abort the write, so an invalid UTF-8package.jsonis never clobbered while aube detects its indentation.Fixed
updateno longer runs a full per-importer install that could wipe unrelated catalog entries from a shared lockfile. Catalog maps are now merged entry-by-entry, the chained install runs once at the workspace root after every importer is updated, interactive catalog decisions are remembered across importers so shared deps are prompted only once, and cancellation now stops the sweep instead of continuing. Closes #1174.outdated(#1178 by @jdx) —outdatednow only checks dependencies declared directly in each importer'spackage.json, so auto-installed peers (e.g.esbuildpulled in forvite) no longer show up as outdated. Applies to both single-project and recursive reports. Closes #1173.Security
Cfset) plus control bytes are now stripped from registry- and manifest-derived text at display boundaries inlist,outdated, interactiveupdate, human-readableview, and install progress/warnings. This prevents untrusted metadata from visually reordering terminal output. Raw identifiers are preserved internally, and JSON/machine-readable output is unchanged.New Contributors
Full Changelog: jdx/aube@v1.35.0...v1.36.0
💚 Sponsor aube
aube is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools including mise. Work on aube is funded by sponsors.
If aube is saving your team install time or CI minutes, please consider sponsoring at jdx.dev. Individual and company sponsorships are what keep the project fast, free, and independent.
v1.35.0: : Supply-chain name gates, relocatable virtual store, and richer embeddingCompare Source
This release hardens
aube addagainst typosquats and freshly-registered hallucinated package names, lets you relocate the global virtual store without dragging every other tool's cache along, adds atrust checkcommand for inspecting a version before installing, and expands theaube::embedsurface so hosts like mise can own workspace discovery and confirmation prompts.Highlights
aube add— new packages are quarantined for 30 days and requested names are challenged against a top-100,000 npm corpus for close lookalikes, with interactive "did you mean?" prompts and fail-closed behavior in CI (#1157).globalVirtualStoreDirsetting plus fixes to the long-brokencacheDirlet you relocate the global virtual store onto a fast volume without moving all your metadata caches (#1146).aube::embedfacade so embedders can supply their own UI and repo-scoped boundaries (#1154, #1168, #1169).Added
Block new and lookalike package names on
add(#1157 by @jdx) — Two supply-chain reputation gates now run on public npmjs names, alongside the existing OSV and low-download checks. AminimumPackageAgesetting (default 30 days) quarantines newly registered names by checking npmtime.created, raising the cost of registering a plausible AI-hallucinated name right before use. A second gate compares the requested name against an embedded, download-ranked top-100,000 npm corpus using bounded Damerau–Levenshtein distance, with scope-aware rules (basenames compared within a scope, full names across scopes). Interactive sessions get "did you mean?" / new-name confirmations; non-interactive contexts fail closed withERR_AUBE_SIMILAR_PACKAGE_NAME,ERR_AUBE_NEW_PACKAGE_NAME, orERR_AUBE_PACKAGE_AGE_CHECK_FAILED.--allow-low-downloadsnow bypasses all three reputation gates andallowedUnpopularPackagesexempts a name from the similar-name, age, and download checks.# disable the age quarantine for a run AUBE_MINIMUM_PACKAGE_AGE=0 aube add some-fresh-packageaube trust check <package>@​<version>(#1144 by @jdx) — Inspect a specific package version's publishing trust status without installing it, with human-readable and JSON reports.--ignore-default-excludesenforces the underlying no-downgrade policy directly. The built-in Hono exception is now scoped to@hono/node-server@1.19.15(trusted publishing resumed in 1.19.17) so it no longer disables protection for future versions.Relocate the global virtual store independently (#1146 by @jdx) — A new
globalVirtualStoreDirsetting moves only the virtual store tree (the part that must sit on thestoreDirvolume for hardlinks), leaving packument/metadata caches where they are. It's available via env,.npmrc, andaube-workspace.yaml, and wins overcacheDirwhen both are set.aube doctorgained aglobal-virtual-storeline, itsstoreline now honorsstoreDir, and cross-volume fallbacks carry aWARN_AUBE_GVS_CROSS_VOLUMEcode.Route embedded confirmations through host handlers (#1154 by @jdx) — Embedding hosts can attach a structured, async
InstallPromptHandlerso aube confirmations (such as low-download warnings) render through the host's own UI instead of reading process stdin. Prompt waits honor the existing install cancellation token, and a missing handler fails closed. Standalone aube keeps its interactive terminal prompts.Configurable workspace discovery for embedders (#1169 by @jdx) —
aube::embednow exposesis_workspace_project_rootanddiscover_workspace_packages, plus an opt-inConfinedToRootboundary that rejects parent-relative/absolute globs and out-of-root symlinks for repository-scoped hosts. Discovery now expands brace alternates (e.g.{apps,packages}/*) in positive and negative patterns and treats an on-disk workspace YAML as authoritative even when its package list is empty. The default remains pnpm-compatible, still allowing../**.Expose package manifest types from
aube::embed(#1168 by @jdx) —PackageJson,Workspaces, andManifestErrorare re-exported from the stable embedding facade so hosts get aube's tolerant real-world manifest parsing without depending onaube-manifestdirectly or duplicating schemas.Fixed
aube exec, the local-bin fallback ofaube run, and non-shellaube dlxnow decode aube-generated POSIX/cmd wrappers, resolve the real target, and launch recognized native binaries (ELF, Mach-O, FAT/FAT64, validated PE, and Windows command suffixes) directly while preserving the wrapper environment,NODE_PATH, arguments, and Unixargv[0]. JavaScript and interpreter-backed bins are unchanged.update --latest(#1166 by @jdx) — Selecting acatalog:dependency in the interactive upgrade picker previously did nothing: resolution reused the unchanged catalog range and reported it as already latest. Catalog entries are now resolved through the registrylatesttag and written back to the highest-precedence source (aube-workspace.yaml,pnpm-workspace.yaml, orpackage.jsoncatalogs), preserving membercatalog:references, range prefixes, and YAML comments.--no-saveleaves on-disk ranges untouched while still refreshing lockfile resolutions.clean(#1163 by @jdx) —aube clean/purgeno longer wipes the wholenode_modules/tree. It now removes only install-managed content (top-level packages plus aube/pnpm-owned hidden entries like.bin,.aube,.pnpm) and leaves unrecognized dotdirs such as Vite's.vite/and.vite-temp/in place, matching pnpm. Symlinked/junctioned module directories are still removed wholesale without walking the target.supportedArchitecturesconfigured, any command that re-resolved the graph could strip optional packages for other platforms out ofpnpm-lock.yaml,aube-lock.yaml,bun.lock, or npm lockfiles, silently making a committed lockfile unusable elsewhere. Portable lockfiles now always resolve every platform variant, while fetch/link still honor the configured architectures so foreign packages stay out ofnode_modules.--lockfile-onlyonaube list(#1161 by @jdx) — pnpm addedlist --lockfile-onlyin v10.23.0 and CI scripts use it, but clap rejected the flag before the command could run. It's now accepted (including thela/llaliases) as a compatibility no-op, since list already reads exclusively from the canonical lockfile and needs nonode_modules.allowBuilds.npmrcvalues (#1159 by @jdx) —allowBuildswas incorrectly advertised as an.npmrcsource, so a user-level.npmrcallowlist appeared inconfig get/config list/config explainwhile install (which reads it only from workspace YAML and the manifest) safely ignored it. Config inspection now filters.npmrcrows to settings that actually declare that source; free-form unknown keys still round-trip.add_to_projectnever reads aube's stdin for confirmation.New Contributors
Full Changelog: jdx/aube@v1.34.0...v1.35.0
💚 Sponsor aube
aube is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools including mise. Work on aube is funded by sponsors.
If aube is saving your team install time or CI minutes, please consider sponsoring at jdx.dev. Individual and company sponsorships are what keep the project fast, free, and independent.
v1.34.0: : Smarter completions and resolver safetyCompare Source
This release rounds out shell completion —
aubxnow completes, and TAB now offers registry packages, project bins, workspace packages, settings, and more — teaches the resolver to never mistake a deprecated republish for an upgrade, and makes activated shims survive aube upgrades.Added
aubxsupport (#1130 by @jdx) — Completions are now generated for theaubxmulticall surface alongsideaubeandaubr, and a set of dynamic completers fills in real values as you type: registry packages (queried against your configured npm registry with scoped-registry auth, a ~1.2s timeout, and a 2 MiB response cap), local dependencies, workspace packages, project bins fromnode_modules/.bin, settings/aliases, patch keys, and filesystem paths. Typed text is safely quoted before evaluation, and theaubxspec stops at the fetched command so downstream arguments aren't parsed as aube flags.effect=metadata for every command (#1122 by @jdx) — All 114 aube commands now declare whether they only inspect state (read), change it (write), or destroy something (destructive), via usage 4'seffect=. Registry commands likepublish,deprecate,dist-tag, andaccessare neverreadand carry blast-radius comments (they affect every consumer of a package), while code-running commands (run,exec,dlx,node,create, …) are deliberately left unclassified since their effect is whatever the executed code does. This lets tooling reason about what a command will do before running it. Requires ausageCLI of 4.0 or newer to consume the generated spec.Fixed
codemirror@6.65.7, an accidental republish of 5.65.7) could makeaube outdatedoffer a downgrade-in-disguise as an upgrade and cause installs to land on the withdrawn version. Version selection now mirrors pnpm:dist-tags.latestwins when it's in range, otherwise the highest satisfying non-deprecated version, otherwise (as a tiebreak, not a filter) the highest satisfying version so ranges that only reach deprecated versions still resolve. The rule is shared across install/add/update, the vulnerable-version re-pick, and theWantedcolumn ofoutdated/update, keeping them in agreement.aube activatepreviously symlinked each tool shim to the exact executable that created it, so removing a version-managed aube left every activated shim dangling. Activation now writes small dispatcher scripts that resolve the currentaubefromPATHand route through an internal marker, matching mise's stable-indirection model. Windows behavior is unchanged.0755, and rename it over the live path, closing the window where a concurrent command could see a missing or half-written shim.Already up to date, producing two completion lines for one result. The progress row is now cleared for no-op installs, while real installs and--lockfile-onlyruns still keep the finished bar (or CI summary) visible.aubr(#1128 by @jdx) —aube completionnow registers a dedicatedaubrsurface, so bothaube run <TAB>andaubr <TAB>complete the scripts declared in the nearestpackage.json(with their commands as descriptions). Previouslyaubr <TAB>was treated as an unknown top-level invocation and offered nothing.Changed
opencode-aiin the native-build critical path (#1127 by @jdx) —opencode-aiis added to the curated build-heavy allowlist so its tarball is fetched earlier and its build step can overlap with remaining package downloads.Full Changelog: jdx/aube@v1.33.1...v1.34.0
💚 Sponsor aube
aube is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools including mise. Work on aube is funded by sponsors.
If aube is saving your team install time or CI minutes, please consider sponsoring at jdx.dev. Individual and company sponsorships are what keep the project 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.