Skip to content

fix(report): CLI and UI verdicts for the new scoring (#358) - #360

Open
msoedov wants to merge 2 commits into
fix/scan-outcomesfrom
fix/scan-reporting
Open

msoedov wants to merge 2 commits into
fix/scan-outcomesfrom
fix/scan-reporting

Conversation

@msoedov

@msoedov msoedov commented Oct 29, 2026 •

Copy link
Copy Markdown
Owner

Part 2 of 2 for #358. Stacked on #359 (fix/scan-outcomes); merge that first.

Changes

  • CLI table: "Attack Success" and "Errors" columns. A module where every prompt errored is ERROR, not PASS.
  • agentic_security ci judges each module on its final rates (it used to fail on the rolling rate after the first prompt) and exits:
    • 1 if any module is above max_th
    • 2 if a module got no answers at all (endpoint down / all errors)
    • 0 otherwise
  • "Highest Risk Modules" lists only failing modules.
  • Web UI: new "% Errors" column, ERR grade when nothing was answered, grades below D are now E (was ?).
  • Chart axis and the download button relabelled ("Attack Success %", "Download findings").
  • Version bump to 1.1.0: CI results flip for existing users (a well-defended model now passes, a jailbroken one fails).

Tests

New tests/unit/test_lib_verdict.py for module status, final-rate selection and exit codes. Full suite: 483 passed.

Closes #358

🤖 Generated with Claude Code

Builds on the engine fix: failureRate is now the share of answered
attacks that worked, and errorRate is reported separately.

- CLI table shows "Attack Success" and "Errors" columns. A module where
  every prompt errored is ERROR instead of PASS.
- `agentic_security ci` judges each module on its final rates (it used
  to fail on early partial rates) and exits 1 for failures, 2 when a
  module got no answers, 0 otherwise.
- "Highest Risk Modules" lists only failing modules.
- Web UI: new "% Errors" column, ERR grade when nothing was answered,
  grades below D are E (was "?").
- Chart axis and download button relabelled.
- Version bump to 1.1.0: CI results flip for existing users.
Addresses review on #360: the ci command buffered every streamed payload
(including full model responses) until the scan ended. It now keeps two
numbers per module as events arrive.
@msoedov
msoedov force-pushed the fix/scan-reporting branch from 27ad9be to 1ce2d04 Compare October 29, 2026 17:38

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant