Skip to content

chore(deps): update dependency aube to v1.35.0 - #10

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/aube-1.x
Open

chore(deps): update dependency aube to v1.35.0#10
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/aube-1.x

Conversation

@renovate

@renovate renovate Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
aube minor 1.33.11.35.0

Release Notes

jdx/aube (aube)

v1.35.0: : Supply-chain name gates, relocatable virtual store, and richer embedding

Compare Source

This release hardens aube add against typosquats and freshly-registered hallucinated package names, lets you relocate the global virtual store without dragging every other tool's cache along, adds a trust check command for inspecting a version before installing, and expands the aube::embed surface so hosts like mise can own workspace discovery and confirmation prompts.

Highlights

  • Supply-chain reputation gates on 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).
  • Move just the virtual store — a new globalVirtualStoreDir setting plus fixes to the long-broken cacheDir let you relocate the global virtual store onto a fast volume without moving all your metadata caches (#​1146).
  • Deeper embedding for hosts — workspace discovery, manifest types, and confirmation prompts are now routed through the stable aube::embed facade 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. A minimumPackageAge setting (default 30 days) quarantines newly registered names by checking npm time.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 with ERR_AUBE_SIMILAR_PACKAGE_NAME, ERR_AUBE_NEW_PACKAGE_NAME, or ERR_AUBE_PACKAGE_AGE_CHECK_FAILED. --allow-low-downloads now bypasses all three reputation gates and allowedUnpopularPackages exempts 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-package
  • aube trust check <package>@&#8203;<version> (#​1144 by @​jdx) — Inspect a specific package version's publishing trust status without installing it, with human-readable and JSON reports. --ignore-default-excludes enforces 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 globalVirtualStoreDir setting moves only the virtual store tree (the part that must sit on the storeDir volume for hardlinks), leaving packument/metadata caches where they are. It's available via env, .npmrc, and aube-workspace.yaml, and wins over cacheDir when both are set. aube doctor gained a global-virtual-store line, its store line now honors storeDir, and cross-volume fallbacks carry a WARN_AUBE_GVS_CROSS_VOLUME code.

    # move only the virtual store, keep metadata on the system disk
    export AUBE_GLOBAL_VIRTUAL_STORE_DIR=/Volumes/Fast/aube-virtual-store
    export AUBE_STORE_DIR=/Volumes/Fast/stores/aube
  • Route embedded confirmations through host handlers (#​1154 by @​jdx) — Embedding hosts can attach a structured, async InstallPromptHandler so 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::embed now exposes is_workspace_project_root and discover_workspace_packages, plus an opt-in ConfinedToRoot boundary 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, and ManifestError are re-exported from the stable embedding facade so hosts get aube's tolerant real-world manifest parsing without depending on aube-manifest directly or duplicating schemas.

Fixed

  • Launch native package bins directly (#​1141 by @​benjaminwestern) — Package bins that point at compiled executables were being handed to Node through generated wrappers and failing. Non-shell aube exec, the local-bin fallback of aube run, and non-shell aube dlx now 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 Unix argv[0]. JavaScript and interpreter-backed bins are unchanged.
  • Upgrade catalog-backed dependencies with update --latest (#​1166 by @​jdx) — Selecting a catalog: 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 registry latest tag and written back to the highest-precedence source (aube-workspace.yaml, pnpm-workspace.yaml, or package.json catalogs), preserving member catalog: references, range prefixes, and YAML comments. --no-save leaves on-disk ranges untouched while still refreshing lockfile resolutions.
  • Preserve third-party caches during clean (#​1163 by @​jdx) — aube clean / purge no longer wipes the whole node_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.
  • Keep foreign-platform optionals in portable lockfiles (#​1156 by @​jdx) — With supportedArchitectures configured, any command that re-resolved the graph could strip optional packages for other platforms out of pnpm-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 of node_modules.
  • Accept --lockfile-only on aube list (#​1161 by @​jdx) — pnpm added list --lockfile-only in v10.23.0 and CI scripts use it, but clap rejected the flag before the command could run. It's now accepted (including the la/ll aliases) as a compatibility no-op, since list already reads exclusively from the canonical lockfile and needs no node_modules.
  • Ignore unsupported allowBuilds .npmrc values (#​1159 by @​jdx) — allowBuilds was incorrectly advertised as an .npmrc source, so a user-level .npmrc allowlist appeared in config get/config list/config explain while install (which reads it only from workspace YAML and the manifest) safely ignored it. Config inspection now filters .npmrc rows to settings that actually declare that source; free-form unknown keys still round-trip.
  • Trust locked packages without embedded prompts (#​1143 by @​jdx) — Packages already present in an active lockfile are now exempt from the low-download popularity gate, so re-adding or bumping a locked dependency doesn't re-trigger the prompt. OSV malicious-package checks stay active, and embedded add_to_project never 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 safety

Compare Source

This release rounds out shell completion — aubx now 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

  • Rich, mise-style completions plus aubx support (#​1130 by @​jdx) — Completions are now generated for the aubx multicall surface alongside aube and aubr, 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 from node_modules/.bin, settings/aliases, patch keys, and filesystem paths. Typed text is safely quoted before evaluation, and the aubx spec 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's effect=. Registry commands like publish, deprecate, dist-tag, and access are never read and 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 a usage CLI of 4.0 or newer to consume the generated spec.

Fixed

  • Never prefer a deprecated version inside a range (#​1136 by @​jdx) — A deprecated, mis-tagged republish that sorts above genuine releases (e.g. codemirror@6.65.7, an accidental republish of 5.65.7) could make aube outdated offer a downgrade-in-disguise as an upgrade and cause installs to land on the withdrawn version. Version selection now mirrors pnpm: dist-tags.latest wins 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 the Wanted column of outdated/update, keeping them in agreement.
  • Keep activated shims stable across upgrades (#​1129 by @​jdx) — On Unix, aube activate previously 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 current aube from PATH and route through an internal marker, matching mise's stable-indirection model. Windows behavior is unchanged.
  • Replace activated shims atomically (#​1131 by @​jdx) — Follow-up to #​1129: shim updates on Unix now build the replacement in a sibling temp file, apply 0755, and rename it over the live path, closing the window where a concurrent command could see a missing or half-written shim.
  • Clear the progress row for no-op installs (#​1132 by @​jdx) — On a no-op install, the transient TTY progress bar left a durable row alongside 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-only runs still keep the finished bar (or CI summary) visible.
  • Complete package scripts through aubr (#​1128 by @​jdx) — aube completion now registers a dedicated aubr surface, so both aube run <TAB> and aubr <TAB> complete the scripts declared in the nearest package.json (with their commands as descriptions). Previously aubr <TAB> was treated as an unknown top-level invocation and offered nothing.

Changed

  • Prioritize opencode-ai in the native-build critical path (#​1127 by @​jdx) — opencode-ai is 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)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot changed the title chore(deps): update dependency aube to v1.34.0 chore(deps): update dependency aube to v1.35.0 Jul 29, 2026
@renovate
renovate Bot force-pushed the renovate/aube-1.x branch from 67f903c to 3bb3a26 Compare July 29, 2026 02:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants