Repository navigation
Added
- Offline audit investigation - Save an analysis with
audit --save-analysisand replay it with--from-analysiswithout a token
or network access. Saved evidence supports investigation without another job. - Dependency audits - Audit vulnerabilities, deprecated releases, outdated
and duplicate versions, and manifest/lockfile disagreements. Human reports
include service-supplied fix alternatives and explicit coverage gaps; any
finding or incomplete check exits 1. JSON retains the consumed evidence. - License evidence reports - Add
license report, lossless experimental API
JSON, and offline saved-report replay. Reported licenses, publisher context,
source observations, and coverage gaps remain distinct from policy verdicts. - Go, vcpkg, and Zig - Recognize
go.mod,vcpkg.json, andbuild.zig.zon
as manifest-only inputs. Go modules remain separate from Go dep locks, and
vcpkg manifests remain separate from Conan locks. - Consistent report destinations and quiet mode - All commands accept
-o/--outputand-q/--quiet, including saved-report replay. Quiet
suppresses routine progress and success notes while preserving reports,
findings, warnings, and errors.
Changed
-
Breaking changes and migration - Update automation written for the
pre-public 0.2.0 CLI before using 0.3.0.Exit codes
Exit 0 means success; 1 means findings, incomplete checks, drift, or nothing
selected; 2 means caller action is required; 3 means an execution failure.
Rejected credentials/access, missing selected inputs, invalid UTF-8 upload
paths/content, upload limits, and deterministic API input/format rejections
exit 2. HTTP 408/429, network, I/O, service, and protocol failures exit 3.
Update scripts that treated all API failures as retryable execution errors.Detection JSON and default selection
detect --jsonis schema 2. Replaceinclude_manifestswith the inverse
lockfiles_onlyboolean, and accept the newunsupportedandtest_paths
arrays. Manifest-only projects are included by default; replace the removed
--include-manifestsflag with no flag, or use--lockfiles-onlyto omit
unconfigured manifest-only projects. Reviewdetectand rundetect --save
to accept intended inventory changes. Missing explicit--configfiles now
fail with exit 2, including withdetect --save. -
Compact license reports - Online
license report --jsonuses experimental
schema 2 with typed input paths and focused evidence summaries. Offline replay
accepts schemas 1 and 2 with exact original JSON bytes. Human details show
supplied evidence gaps. -
Fixture selection - Exclude directories named
fixtures,__fixtures__,
testdata,test-data, ortest_dataat any depth, ignoring ASCII
case. Explicit configuration entries can select real projects in those
directories. Ordinary test/evaluation directories remain eligible and are
annotated for review; invocation excludes still take precedence. -
Stricter license checks - Evaluate nested components, require explicit
SPDX policy expressions and package-wide exceptions, and report unresolved
projects as findings (exit 1). Malformed CycloneDX structures are usage errors
(exit 2); offline documents are limited to 16 MiB. Human reports escape
terminal controls and bound previews; JSON retains full evidence. -
Owning manifest pairs - Pair locks only with their cataloged owners.
Uncombined and nested manifests remain visible for review. A
packages.lock.jsonbeside several.csprojfiles is ambiguous and is not
uploaded; review affected configuration withdetect --save. -
Public documentation - Add verified upload/privacy details,
troubleshooting, uninstall instructions, CI setup, and contributor guidance.
Label 0.2.0 as pre-public history; 0.3.0 is the first public release. -
Build requirements - Require Rust 1.99 or newer; development and CI pin
Rust 1.99.1. Prebuilt binaries do not require Rust. -
Workspace evidence - Upload eligible declared Cargo and supported positive
npm workspace member manifests under selected locks, including with
--lockfiles-only. Exclusions and the 256-file upload limit still apply.
Other nested manifests require explicit configuration; directory proximity
alone does not prove dependency coverage.
Fixed
- Detect privacy documentation - Clarify that the local upload preview reads
selected package-file contents and expands eligible Cargo/npm workspace
members without contacting the API. - Actionable input failures - Distinguish missing configuration from missing
license policy, identify unsupported formats, and explain upload-limit and
account-access remedies. Limit connection establishment to 15 seconds. - Actionable CLI guidance - Create explicit new config paths from the
commented template withdetect --save. Improve audit explanations, license
evidence details, unsupported-format warnings, API-origin/proxy failures,
quiet help, and common option ordering. Configuration-write failures exit 3. - Accurate scan selection - Prune explicitly excluded directory subtrees
before reading them and honor owning-manifest exclusions.detectpreviews
the bounded Cargo/npm upload selection, preserving inventory with exit 2/3
when preparation is blocked. Reports distinguish selected/excluded counts and
summarize selected test-looking paths. Real projects undertruthremain
eligible by default.
Security
- TLS handshake fixes - Update rustls to 0.23.46 for RUSTSEC-2026-0346,
RUSTSEC-2026-0347, RUSTSEC-2026-0348, and RUSTSEC-2026-0349. - TLS trust fixes - Update rustls-webpki and webpki-root-certs to reject
distrusted certificate authorities (RUSTSEC-2026-0382 and RUSTSEC-2026-0383).