Niro v0.1.66
Summary
This release makes autonomous runs legible in real time, lets you resume a prior run, and reworks how run outputs are produced and delivered. Autonomous find and fix runs now stream a concise, real-time narration of the developer agent and attacker agent as they work. niro find and niro fix accept --resume to continue a prior agent session. Niro now writes one canonical penetration-test report plus the findings summary and knowledge bundle into the config directory's artifacts/ folder, preserves them across runs, and the supplied CI workflows publish them by stable filename. The default per-run time budget is raised so a whole-application run finishes without hand-tuning.
Changes
- Autonomous
findandfixruns stream a live narration feed to the console. The developer agent and attacker agent each report their work as it happens, on unified, timestamped[developer agent]and[attacker agent]lines. niro findandniro fixaccept--resume <niro-session-id>to continue a prior agent session instead of starting over.- Run outputs are consolidated under
<config-dir>/artifacts/: a single canonicalpenetration-test-report.pdf, thesummary.mdfindings summary, and theknowledge.tarbundle. These deliverables are preserved across runs; only per-run scratch is cleared, at both run start and run end. - The supplied GitHub and GitLab CI workflow examples are reworked. The config directory is set once through a
NIRO_CONFIG_DIRvariable, and the run's deliverables are uploaded by stable filename as aniro-artifactsartifact — on GitHub the report and knowledge bundle (the findings summary renders in the job summary), on GitLab the report, summary, and knowledge bundle. The previous stdout parsing and report-staging steps are gone. - The default
limits.max_duration_minutesis raised from 15 to 180 so a no-scope, whole-application sweep completes without raising the limit by hand. niro fixgenerates the customer report by default; no extra flag is required.- The incomplete USD cost reporting is removed from run output.
Security
niro-debug-logs.tarremains a separate, explicitly unsafe support artifact. It is produced only when you opt in with--upload-debug-logs=true, is never included in the regularniro-artifactsbundle, and should be shared only through an approved channel.- The customer config directory is no longer mounted into the attack-tool sandbox. Scope and the sandbox configuration are passed as a manifest rather than read from files inside the container.
- The developer agent and attacker agent no longer edit
niro.yaml; the run policy in that file (includingmin_severity) is person-owned.
Compatibility and upgrade
limits.max_duration_minutesnow defaults to 180 minutes (was 15). Runs allow up to three hours by default; pin a lower value inniro.yamlfor tight CI budgets. The floor remains 15.- Adopt the updated example workflows under
examples/github-actions/andexamples/gitlab-ci/. The uploaded artifact is now namedniro-artifacts; if any downstream automation referenced the previousniro-knowledgeorniro-pentest-reportartifact names, update it. On GitLab the findings summary now ships inside theniro-artifactsarchive assummary.md; on GitHub it renders in the job run's summary. - The customer report is now the single, stably named
<config-dir>/artifacts/penetration-test-report.pdf. Automation that expected a dated report filename or a per-run report path should read the stable name. - Only one Niro process may run against a given config directory at a time. Use separate config directories for concurrent environments.
- No customer configuration keys were removed. The developer agent and attacker agent MCP tool surfaces are unchanged except as noted above.
Known issues
- If a requested PDF fails after the Markdown summary is generated, the run fails and the reason is written to the job log, but the published job summary may not include that failure explanation.
checksums.txtcovers platform archives but notniro.mcpb.- Release artifacts do not include detached signatures, public binary provenance attestation, or an SBOM.
niro upgradefollows stable rather than dev or RC releases, and Windows users must rerun the installer to change versions.