[0.2.2] - 2026-08-16
Added
- Release assets for aarch64-unknown-linux-gnu and aarch64-pc-windows-msvc (native ARM runners); numan update --self maps those triples
- Homebrew Linux ARM archive support; winget verifies and submits both Windows x64 and ARM64 zips
- numan use activation profiles: cross-minor switches auto-deactivate Numan-active plugins/modules (leave profile is a never-shrinking union per Nu minor in state/activation-profile.json, captured by snapshots and restored on rollback) and restore the target minor's desired set after the marker write. Same-target use is restore-only reconcile. User activate/deactivate keep the current minor's desired set in sync (idempotent even when already active/inactive); remove clears the package id from every minor.
- Intake provenance and evidence tiers:
- Display commit-snapshot provenance (commit hash and captured date) in numan info and package listings (P1).
- Gate and display provisional evidence tier markers (P6).
- Display fork identity and origin metadata for stewardship forks (P4).
- PATH Nu version mismatch warning: detect and warn when the Nu binary on $PATH differs in version or location from the managed active Nu installation.
- Unit test & coverage suites: comprehensive unit test coverage for cmd:: modules and dedicated CI coverage reporting job.
Changed
- numan try: now takes a required <owner/name[@version]> argument and is compatibility-first. It attempts to install and activate the specified package for the current Nu; if incompatible, it explains which managed Nu versions the package supports and recommends the nearest one, without silently switching Nu or installing an alternative package.
- numan completions installs by default (creates the target directory if needed). Use --print to emit the script on stdout for piping or custom redirects.
- numan registry packages: clearer listing (blank line between entries, styled id/version/type, soft-wrapped dim descriptions).
- numan install: suggests --all flag when a package is incompatible with the current Nu version.
- numan init: added tab-completion configuration hint to first-run output.
- ADR 0001: Accepted Architecture Decision Record for Ecosystem Trust, Upstream Contribution, and Fork Stewardship.
Fixed
- Cached artifact verification: enforce SHA-256 integrity checks on cached archive payloads before extraction.
- Windows User PATH pollution from acceptance tests: PathRestoreGuard sets
a test-only flag that makes persist_path_dir / Unix persist_user_path
skip durable User PATH, ~/.local/bin/nu, and shell-profile writes while the
guard is held (it does not rewrite the Windows User PATH registry on drop, so
concurrent external PATH edits are preserved). numan setup nu / use also
refuse to persist paths under the system temp folder (fail closed if the temp
root cannot be canonicalized), so tempfile fixtures like Temp.tmp*\off
cannot land on PATH again. If you already have those leftovers, clean User
PATH (PowerShell):
$userPath = [Environment]::GetEnvironmentVariable('Path', 'User')
$cleaned = ($userPath -split ';' | Where-Object {
$_ -and ($_ -notmatch '(?i)\Temp\.tmp.*\(off|existing-nu)$')
}) -join ';'
[Environment]::SetEnvironmentVariable('Path', $cleaned, 'User')
Then open a new terminal and confirm with $env:Path -split ';'.
- numan doctor: report versioned managed Nu installs (tools/nushell//nu) instead of only the legacy tools/nushell/nu path
- numan setup nu: official Nushell 0.114.x release archives exceed the old
256 MiB extract cap (~279 MiB uncompressed on linux-gnu). Bootstrap now
extracts only the nu binary (skipping bundled plugins) and raises the
uncompressed-size limit to 512 MiB so managed installs succeed again.
Archive-bomb file_count / total_bytes accounting still charges every
regular-file entry scanned, including those skipped by the include filter.
- Homebrew formula install: fix formula installation handling for staged archives.