v0.1.9
PM configuration batch: asymmetric global config model, pnpm v11 project-write alignment, and native npm-only verb implementations.
PM: asymmetric global config + project write routing
Two related config-home changes shipped together.
Global reads are now unconditional. Previously nub read pnpm's global config.yaml and auth.ini only when the cwd was a pnpm project — a bug where the gate (read_branded_pnpm_config) was incorrectly applied to global files that have nothing to do with the project's incumbent PM. A new read_pnpm_global_config posture (default true, set unconditionally by nub) decouples global and project-scoped reads.
Global writes go to neutral files only. When writing with --location user|global, nub never touches a PM-branded global file:
nub config set <auth-key> --location user -> ~/.npmrc # ✓ every tool reads it
nub config set <scalar> --location user -> ~/.npmrc # ✓ neutral global home
# ❌ never pnpm config.yaml / auth.ini
Project-local writes align with pnpm v11. The write router now mirrors pnpm's getConfigFileInfo split: auth/npm-shared keys go to .npmrc; non-shared scalar keys go to pnpm-workspace.yaml under a pnpm incumbent, and to project .npmrc under a nub-identity or npm/yarn/bun project. Map settings (overrides, allowBuilds, catalogs) are refused with a pointer to pnpm-workspace.yaml.
(#35)
PM: native npm-only verbs
The verbs below previously returned ERR_NUB_NPM_ONLY_COMMAND (exit 82). They are now implemented natively — no shell-out; each hits the registry directly using the same .npmrc auth and registry client aube already uses for installs, or edits the local package.json.
| Verb | What it does |
|---|---|
search <q> |
Registry /-/v1/search, pnpm-shape output + --json |
whoami |
/-/whoami with .npmrc bearer auth |
owner ls/add/rm |
Collaborators GET + maintainers PUT |
token list/create/revoke |
/-/npm/v1/tokens CRUD |
pkg get/set/delete/fix |
Local package.json property-path edits |
set-script <name> <cmd> |
scripts.<name> sugar over the same writer |
The stage verb (not a real npm/pnpm command) is dropped — it now falls through to the unknown-command path. Standalone aube is byte-for-byte default-preserving; the implementations live in new aube::commands::<verb>::run modules called only by the nub embedder. (#36)
Commits in this release
- pm: asymmetric global config (read broad, write neutral) + project .npmrc-vs-yaml split (#35,
9d8c7bb) - pm: implement npm-only verbs natively (whoami/owner/token/search/pkg/set-script) (#36,
c6a66b1) - agents: codify Git & GitHub maintainer hygiene + add address-issue skill (
1618e99) - fray/hooks: multi-lens review fleet for far-reaching work + thread status self-ownership (
e9318e7) - agents: elevate pre-push local-verification loop to HIGH PRIORITY (
cf7c443) - v0.1.9 (
f7d61a5)
Full Changelog: v0.1.8...v0.1.9