@clear-capabilities/agentic-security-scanner 0.122.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,43 @@
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
+
22
+ ## 0.123.0 — report clarity: risk-demotion labels, depth discoverability, HTML export docs
23
+
24
+ Acting on user feedback that findings could overstate severity, that explanations
25
+ felt thin, and that the browser report was hard to find. No detector/severity logic
26
+ changed — these are presentation + docs improvements in `scanner/src/report/`.
27
+
28
+ - **"Likely lower risk" labels.** A high/critical finding the reachability /
29
+ exploitability / confidence pipeline has already marked down now renders a visible
30
+ `↓ likely lower risk — …` note (not reachable in prod / sanitized / low
31
+ exploitability / low confidence) in the CLI firehose, the pro table, and the HTML
32
+ report. Severity stays canonical (SARIF/exit codes/baselines unchanged) — this only
33
+ annotates, so a hardcoded rule severity isn't taken at face value.
34
+ - **Depth is discoverable.** The one-screen ship verdict now points to
35
+ `/triage --explain <id>` (the why-it-fired narrative + data-flow trace + fix) and to
36
+ the shareable HTML report, so users don't conclude the terse default is all there is.
37
+ - **HTML report surfaced in the README.** Documents `scan . --format html --output
38
+ report.html` (self-contained browser page: severity charts, STRIDE, filterable
39
+ findings) alongside json / md / sarif / csv.
40
+
3
41
  ## 0.122.0 — cache economics Phase B (depth-first, subagent offload, cost HUD)
4
42
 
5
43
  Completes the cache-economics program (PRD `docs/CACHE_ECONOMICS_PRD.md`, F4–F6) on
@@ -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).