chore(deps): update all non-major dependencies - #36
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/all-minor-patch
branch
4 times, most recently
from
July 28, 2026 11:32
1d922df to
ae31b49
Compare
RedStar071
approved these changes
Jul 28, 2026
renovate
Bot
force-pushed
the
renovate/all-minor-patch
branch
3 times, most recently
from
July 29, 2026 22:30
7982822 to
40216ea
Compare
renovate
Bot
force-pushed
the
renovate/all-minor-patch
branch
from
July 31, 2026 17:29
40216ea to
2640c89
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.25.0→1.37.0v4.1.0→v4.6.0^0.56.0→^0.61.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.
v1.33.1: : Progress bar and node-gyp fixesCompare Source
A small patch release with two install-path fixes: interactive terminals get their animated progress bar back, and embedders can build native packages again.
Fixed
AUBE_TTY_PROGRESSgate introduced back in v1.10.0 had quietly routed every interactive terminal to the CI-oriented append-only heartbeat, so installs appeared to jump in ~2s chunks (0% → 83% → 100%) instead of animating. That gate is removed:stderrTTYs now get the smooth in-place bar again, while pipes and CI runners still use the line-oriented heartbeat.--reporter=append-onlyremains available to force line output on demand.current_exe, which named the host binary and failed witherror: unexpected argument '--ignore-scripts' found. This broke installs of any npm package whose build scripts reach node-gyp (gemini-cli, vercel, wrangler, orval, and others) on a cold cache. The bootstrap now runs in-process under the existing project lock, so native builds work for embedders. Standaloneaubebehavior is unchanged.Full Changelog: jdx/aube@v1.33.0...v1.33.1
💚 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.33.0: : Script completions, embeddable Node wrappers, and pnpm 11.16+ compatibilityCompare Source
This release brings
package.jsonscript completions and a polishedaube runpicker, extends the library-embedding work so hosts can wrap the Node runtime, adds FreeBSD support, and tracks pnpm 11.16/11.17 compatibility across settings,version, and login hardening.Added
package.jsonscripts (#1108 by @jdx) —aube run <TAB>now completes the scripts declared in the nearestpackage.json, showing each script's command as the description. This works through a hand-written usage spec fragment merged onto the generated completions, so no reinstall is needed —aube completion <shell>re-derives the spec at TAB time and runs the completer per project. Note:-C/--diron the line being completed is not forwarded to the completer (a usage limitation).EmbedderRuntimebuilder offers two constructors:selector(bin_dir)(the version-manager case, identical to #1079) andwrapper(node_program)for instrumenting runtimes, transpiling loaders, and sandboxes — keeping a shim onPATHand at$NODEwhile pointingnpm_node_execpathat the real binary sonode-gypstill resolves correctly. Wrappers can contribute lifecycle-script env viaenv_append/env_set(withNODE_OPTIONSappending by default). Registration is process-wide viaset_embedder_runtime(first-write-wins), with per-install and per-call overrides, and new in-process entry pointsembed::{run, exec, dlx, node}that anchor on an explicitproject_dir. Every field is optional; unset reproduces standalone aube byte-for-byte. See the new "Node runtime" and "Run scripts, binaries, and Node" sections indocs/embedding/rust.md.update.ignoreDeps,audit.level, andaudit.ignoreworkspace settings. The deprecatedupdateConfig.ignoreDependencies,auditConfig, and top-levelauditLevelspellings are retained as fallbacks, with the canonical keys taking precedence.update.ignoreDepsapplies to bothaube updateandaube outdated, andaube auditnow resolves its severity from config instead of hard-defaulting tolow(CLI--audit-levelstill wins). Projects using pnpm's new configuration behave the same under aube without rewriting.aube version from-git(#1102 by @jdx) — Acceptsfrom-gitas a version target, resolving the latest semver-like Git tag viagit describeand normalizing a leadingv. Matchespnpm version from-gitadded in pnpm 11.17.Platform::current()now detects FreeBSD as a host platform, unblocking Node runtime resolution via PATH, installed-Node scans, and mise (previously it hard-errored). Scoped to source compatibility: there are no published FreeBSD release binaries, soaube self-updatereturns a clear message pointing topkg/mise instead.Fixed
aube runscript picker no longer scrambles the output (#1109 by @jdx) — Long script commands that wrapped past the terminal width used to stack duplicate frames on every keypress. The picker now shows the script name as the label with the command aligned in a secondary column, truncated to the real terminal width, and starts in filtering mode so typing searches script names immediately. Bundlesdemand2.0.4 for correct redraws on resize.node_modules/.modules.yamlmetadata exposing its virtual-store path, so Vite 8.1+ works with GVS natively without manualserver.fs.allowconfiguration. Older Vite releases receive an equivalent project-local compatibility copy while unrelated dependencies stay shared. GVS is no longer disabled by default for Vite/VitePress.is-odd@3.0.1) was not applied when the package was installed under an npm alias (odd-alias: npm:is-odd@3.0.1), even though the lockfile recorded the patched identity. Patch lookups now fall back to the registry name, matching pnpm's behavior.Security
ERR_AUBE_WEB_LOGIN_RESPONSE_TOO_LARGEwithout persisting a token. Mirrors the hardening in pnpm 11.17.Full Changelog: jdx/aube@v1.32.0...v1.33.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.32.0: : Host-supplied node for embedded lifecycle scriptsCompare Source
A small release that continues the library-embedding work from v1.30.0/v1.31.0, letting hosts embedding
aube::embed::addtell aube whichnodeto run dependency lifecycle scripts on. Standaloneaubebehavior is unchanged.Added
PATHcan now point aube at the right binary.embed::InstallOptionsandAddToProjectOptionsgain anode_bin_dir: Option<PathBuf>; when set, aube seeds its per-install runtime slot with the host's node (prepending that dir to the scriptPATHand probing--versionso engine checks match) instead of resolving its own runtime or falling back to an ambientnodePATH lookup. This restores the behavior the oldaube add --globalsubprocess path had for in-process embedders such as mise'snpm:tool support. The runtime slot is a per-installtokio::task_local, so concurrent installs are safe, and leavingnode_bin_dirunset (the default for all CLI, CI, deploy, and FFI paths) preserves normal runtime switching.Full Changelog: jdx/aube@v1.31.0...v1.32.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.31.0: : Embeddable without the publish & DNS stackCompare Source
A small release that continues the library-embedding work from v1.30.0, letting install-only hosts like mise depend on the
aubecrate without pulling in the sigstore publishing stack or a forced DNS resolver. Standaloneaubebehavior is unchanged.Added
aubecrate is now embeddable without the publish/DNS stack (#1069 by @jdx) — Follow-up to #1068, unblocking mise's use of the install path (aube::embed::add) as a library instead of shelling out to theaubebinary. Two dependencies an install-only embedder never needs are now opt-out:publishfeature (on by default) gates the sigstore provenance/signing supply chain (sigstore-*,ambient-id,x509-cert, etc.), which is only used byaube publish. ThePublishCLI variant and its command modules are compiled out when the feature is off.hickory-dnsis dropped fromaube-registry's defaults (nowdefault = ["rustls"]), so embedders pulling it in transitively no longer have reqwest's DNS resolver silently flipped for the whole binary via feature unification. Theaubebinary re-enables it through theaubecrate's defaults, so standalone builds are unchanged.aubecrate gainsrustlsandhickory-dnsfeatures that forward to reqwest /aube-registry/aube-util, so it can be depended on withdefault-features = false, features = ["rustls"]— producing a build tree with zero sigstore, hickory, ratatui, or mimalloc nodes.Full Changelog: jdx/aube@v1.30.0...v1.31.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.30.0: : Clean process teardown for dlx and execCompare Source
This release fixes a long-standing issue where
aube dlxandaube execcould leave the tool they launched running after aube itself was terminated, and lays the groundwork for embedding aube's library crates in other tools like mise.Fixed
aube dlxno longer orphans the tool it launches (#1065 by @jdx) — Previously, terminatingaubeleft the spawned tool running, reparented toinit(ppid=1), surviving even a catchableSIGTERM— leaking long-running stdio servers and memory on every host teardown (discussion #1059).dlxandexecspawns now route through a process guard that ties the child's lifetime to aube: on any Unix, catchable signals (SIGTERM/SIGINT/SIGHUP/SIGQUIT) are forwarded to the child (sopkill -x aubestops the tool), and on LinuxPR_SET_PDEATHSIGadditionally reaps the child even on an uncatchableSIGKILL. This matches the teardown behavior ofnpx,pnpm dlx, andbunx. (macOSSIGKILL-of-aube remains a documented gap.)Changed
Standalone
aube exec <bin>andaube dlx <local-bin>now replace aube's process image (#1067 by @jdx) — On the standalone Unix binary, these single-tool paths nowexecvpinto the tool instead of spawning it as a supervised child. The tool inherits aube's pid, so any signal — including an uncatchableSIGKILL— reaches it directly with no supervisor process to outlive, closing the macOSSIGKILLgap for these paths. This matches howaube nodeandmise xalready behave. Embedded hosts (aube-ffi/aube-node), Windows, thedlxinstall path, and recursiveaube exec -rcontinue to use the supervised spawn.Worth noting: on the standalone binary,
aube exec <bin>/aube dlx <local-bin>no longer appears as a parent process — the tool takes over aube's pid.Added
aube-registry) into other tools like mise. The workspace MSRV is lowered from 1.93 to 1.91, and TLS/DNS/zlib backend selection (rustls,hickory-dns,zlib-ng) moves from the workspace to leaf crates so embedders no longer inherit those global build side effects. Standalone aube behavior is unchanged via defaults; embedders opt in withdefault-features = false, features = ["rustls"].Full Changelog: jdx/aube@v1.29.1...v1.30.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.29.1: : minimumReleaseAge now covers add pinsCompare Source
A small but security-relevant patch release that closes a
minimumReleaseAgebypass inaube add.Fixed
aube addnow honorsminimumReleaseAgewhen pinning manifest versions (#1056 by @jdx) — Previously the version written intopackage.jsoncame straight from the packument with no release-age cutoff, so dist-tag adds (including the defaultaube add pkg) and--save-exactcould pin a freshly published version that full resolution would have gated — exactly the version most likely to be a compromisedlatestin a supply-chain attack. The manifest step now routes through the resolver'spick_version, so gatedlatesttags are steered to the newest version clearing the cutoff, deliberate exact pins and non-latesttags are still honored (or refused underminimumReleaseAgeStrict=truewithERR_AUBE_NO_MATURE_MATCHING_VERSION), andminimumReleaseAgeExcludeexemptions apply consistently. Offline adds skip the gate as before.Note that this activates the default 24h gate for
addpicks, which was silently inert for dist-tag and exact adds until now:Full Changelog: jdx/aube@v1.29.0...v1.29.1
💚 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.29.0: : Benchmark RefreshCompare Source
A small maintenance release with no user-facing code changes. The only update refreshes the published benchmark numbers so the README's install-speed claims match the latest measurements.
Changed
benchmarks/results.jsonplus the READMEBENCH_RATIOSblock. Warm-install claims now read ~5× faster than pnpm and ~2× faster than Bun, with the repeatinstall && testscenario at ~39× vs pnpm.Full Changelog: jdx/aube@v1.28.0...v1.29.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.28.0: : Embeddable aubeCompare Source
This release makes aube embeddable in other applications, landing a stable in-process embedding API for both Rust and Node.js/Bun/Electron hosts, and fixes a warm-path bug where changed local
file:/portal:directory dependencies weren't reinstalled.Highlights
aube::embedRust facade (#1042), and a production@jdxcode/aube-nodeNode-API addon (#1025) — all by @jdx.Added
@jdxcode/aube-nodeNode-API addon (#1025 by @jdx) — Run aube installs in-process from Node.js, Bun, Electron, and compiled Bun executables. The addon exposesinstall/add, dev-dependency saves, structured progress/output events, cooperative cancellation viaAbortSignal, offline mode, structured errors (AubeErrorwith stablecodeanddiagnostic), and result statistics. It createspackage.jsonwhen absent, saves requested versions exactly, honors supported lockfile formats and project registry/auth config, skips lifecycle scripts, and uses aube's install-state fast path. Independent projects install concurrently; operations on the same workspace serialize through its project lock, and cancellation duringaddrestores manifest and lockfile snapshots. Ships the root package plus eight optional platform packages (macOS, Windows, glibc and musl Linux), with signed macOS addons, attested tarballs, and npm trusted publishing.Stable
aube::embedRust API (#1042 by @jdx) — Native Rust hosts get a supported public contract (initialize,install,add,error_code) without depending on internalaube-util,aube-settings, or CLI command structs.add_to_projectholds the workspace project lock across manifest mutation and install, supports offline/network modes, and rolls backpackage.jsonand the lockfile on cancellation. Includes docs covering embedding, concurrency, lifecycle policy, and errors.Install control hooks (#1036 by @jdx) — New invocation-scoped
InstallControlwith human (CLI default), structured-event, and silent output modes. A non-blockingInstallReporterdelivers phase, progress, and output events, and cooperative cancellation returns the stableERR_AUBE_INSTALL_CANCELLEDdiagnostic at safe install boundaries. Concurrent installs stay isolated via Tokio task-local state; standaloneaube installbehavior is unchanged.Fixed
file:directory orportal:dependency could previously hit theAlready up to datefast path and leave stale installed output, even when the file size was unchanged. Install freshness now records per-source content and metadata fingerprints (BLAKE3), and the linker re-materializes mutable local entries during the ensuing full install.Full Changelog: jdx/aube@ba5f3c5...v1.28.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.27.0: : access, git-repo build approvals, concurrent installsCompare Source
A feature release that adds an npm-style
aube accesscommand and Git-repository-scopedallowBuildskeys, tightens credential redaction on publish, fixes stale pnpm patch handling after re-resolve, and lays the groundwork for parallel embedded installs by making the explicit-install path fully reentrant.Added
aube access(#1012 by @jdx) — Manage registry package permissions from the CLI, modeled on npm and compatible with pnpm's forms. Subcommands coverget status,list packages/list collaborators,ls packages [entity](pnpm-compatible),set status=public|private,set mfa=none|publish|automation,grant <permission> <team> <package>, andrevoke <team> <package>. Requests use scoped-registry auth, honor--otpfor MFA-protected mutations, cap response bodies, and produce distinct errors (ERR_AUBE_ACCESS_ENTITY_NOT_FOUNDvs. plain 404). Supports--jsonfor scripting alongside the human-readable default.Git-repository build approvals (#1010 by @jdx) —
allowBuildsrules can now be keyed by a package plus a normalized Git repository URL (for example,native-addon@git+<https repo url>). The commit is intentionally omitted from the key so audited repositories can advance to new SHAs without re-approving each one. Exact per-source approvals and name-only registry approvals still work as before, and deny rules continue to win over allows. Repository rules are applied consistently across lifecycle execution, script jailing, ignored-build reporting, and install graph hashes.aube add --dangerously-allow-all-builds(#1016 by @risu729) — The broad build-approval flag was previously only accepted oninstall, soaube add --global <pkg> --dangerously-allow-all-builds(as used by mise) was rejected at parse time. The flag now works onadd, is forwarded through local, filtered, and global add paths into the shared install pipeline, and conflicts explicitly with--deny-build=<pkg>. The override is invocation-scoped — it does not persistdangerouslyAllowAllBuilds=trueto project config.Fixed
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.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.