@clear-capabilities/agentic-security-scanner 0.123.0 → 0.124.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.124.0 — inline finding depth (no second command for "why it fired")
4
+
5
+ The depth `/triage --explain` produces now renders **inline** in the finding views,
6
+ assembled from fields already on the finding (`narration` + `whyFired` + fix) — so the
7
+ default per-finding view answers "why does this matter / how does it fire / how do I
8
+ fix it" without a separate command. Addresses the "only ~2 sentences per finding"
9
+ feedback. Presentation only — no detector/severity changes.
10
+
11
+ - **Inline explain block** (`scanner/src/report/index.js`): every per-finding surface
12
+ now shows `why:` (the impact narration), `how:` (the `whyFired` detector + source→sink
13
+ flow, with sanitizers/guards/reachability under `--verbose`), and `fix:`. Wired into
14
+ the firehose list (`toCLI`), the pro table (a compact one-line "why"), and the HTML
15
+ report ("Why it matters" / "How it fires" blocks). Default trims the narration to two
16
+ sentences; `--verbose` shows the full narrative + fix code. Degrades gracefully when a
17
+ finding lacks the fields (e.g. SCA).
18
+ - **`--firehose` actually lists findings now.** Previously it only lowered the
19
+ confidence threshold while the vibecoder verdict showed no per-finding list; it now
20
+ appends the full per-finding list (with the inline depth) so "Show ALL findings" does.
21
+
3
22
  ## 0.123.0 — report clarity: risk-demotion labels, depth discoverability, HTML export docs
4
23
 
5
24
  Acting on user feedback that findings could overstate severity, that explanations
@@ -543,6 +543,13 @@ async function cmdScan(args) {
543
543
  else if (format === 'cli') body = toCLIByProfile(scan, { profile: effProfile, columns: args.flags.columns, verbose });
544
544
  else body = toSummary(scan);
545
545
 
546
+ // --firehose: the verdict/summary views don't list findings — append the full
547
+ // per-finding list (with inline why-it-matters / how-it-fires / fix depth) so
548
+ // "Show ALL findings" actually shows them. Add --verbose for full narration + code.
549
+ if (args.flags.firehose && (!format || format === 'ship' || format === 'summary')) {
550
+ body += '\n\n' + toCLI(scan, { verbose });
551
+ }
552
+
546
553
  // v3 next-gen — supplementary blocks for human-readable formats. These
547
554
  // are append-only and do not change the verdict / exit code. The blocks
548
555
  // are only meaningful when v3 annotators have run (default scan path).