This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+13 more
Summary
AI summarySignal handling, shell completions, grouped help, and JSON output for read‑only inspection commands were added.
Full changelog
aegis-cli v0.8.0
Supply-chain security CLI for npm / bun / yarn / pnpm.
Verifying releases
All artifacts are checksummed (checksums.txt) and the checksums file
is signed via cosign keyless OIDC. To verify:
cosign verify-blob \
--certificate-identity-regexp 'https://github.com/qwexvf/aegis-cli/.github/workflows/release.yml.*' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--certificate checksums.txt.pem \
--signature checksums.txt.sig \
checksums.txt
sha256sum -c checksums.txt
SLSA build provenance is attached to every artifact and can be
verified with gh attestation verify <file> --owner qwexvf.
CLI ergonomics + scriptability pass. Signal handling, shell completion, grouped help, and --json on every read-only inspection command.
Added
- Signal handling —
aegisnow installssignal.NotifyContextforSIGINT/SIGTERMinExecute. Long-running commands (snapshot enrich,ci,analyze, the install gate) cancel cleanly mid-flight instead of dropping HTTP requests. Ctrl-C exits 130 (Unix convention). aegis completion {bash|zsh|fish|powershell}— generates shell completion scripts. Install instructions in the command's--help.- Grouped help —
aegis --helpnow renders four sections (Install gate,Inspect,Configure,Maintain) instead of a flat 14-item list. --jsonoutput for read-only inspection commands — for CI scripts that need to parse aegis output:aegis cache list --json— emits[{key, decision, severity, expires_at}, ...]aegis audit tail --json— emits the same snake_case shape as the underlying NDJSON audit logaegis allowlist list --json— emits[{ecosystem, name, version_range, capability, reason, source}, ...](composes with--sourcefilter)aegis snapshot show --json— marshals the saved snapshot directly; respects--allfor transitive deps
usecase.Snapshot.Load(projectDir)— public accessor so callers can render a saved snapshot themselves instead of going through the presenter.
Changed
NewInstallGatesignature — 7 positional parameters →InstallGateDepsstruct. Internal-only (internal/usecase), no external API impact.buildReportRequest— 9-parameter signature → internalreportInputsstruct.loadDiffOperands— 3-case switch body extracted intoloadDiffFromFilesandloadDiffSavedVsLivehelpers.versionsubcommand —Run→RunE, output viacmd.OutOrStdout()for testability.
Fixed
aegis npm installexit-code path — pm wrappers usedos.Exit(1)directly insideRunE, bypassing deferred cleanup and the establishedexitCodeErrorflow. Now returns a silent exit-code error.pmwrapper context — install gate now runs undercmd.Context()instead ofcontext.Background(), so Ctrl-C actually cancels the gate.doctor/cache/auditoutput — switched from directos.Stdoutwrites tocmd.OutOrStdout()so tests can capture output.- Allowlist loader — removed four
else-after-return blocks; replaced ad-hoc string concatenation in risk reporting withstrings.Builder.
Tests
- 675 pass with race detector across 26 packages (no change in count from 0.7.1 — refactors preserved behaviour).
Apache-2.0 — see LICENSE.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About qwexvf/aegis-cli
All releases →Related context
Beta — feedback welcome: [email protected]