Skip to content

v0.1.9

Choose a tag to compare

@github-actions github-actions released this 21 Jun 05:41

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