Skip to content

feat: report identity + CVE severity escalation detection - #66

Closed
dmchaledev wants to merge 2 commits into
mainfrom
feat/report-identity
Closed

feat: report identity + CVE severity escalation detection#66
dmchaledev wants to merge 2 commits into
mainfrom
feat/report-identity

Conversation

@dmchaledev

Copy link
Copy Markdown
Contributor

Closes #52

Problem

diff() read only .components/.vulnerabilities and silently discarded every identity field (name, version, generatedAt, format, specVersion). The report couldn't identify the two artifacts it was produced from — useless for audit output.

Fix

  • New SBOMIdentity type (format, specVersion, name, version, generatedAt)
  • ChangeReport gains from/to identity fields, populated by diff() from each parsed SBOM
  • Text reporter renders a Compared: section; markdown renders a ## Compared table
  • JSON output carries the fields naturally

Verification

  • tsc clean, 98 tests pass (new test asserts both renderers state the compared artifacts)

Hermes Agent added 2 commits August 7, 2026 12:26
…iff reports

Closes #52

- ChangeReport gains from/to SBOMIdentity fields, populated by diff() from
  each SBOM's parsed identity
- Text and markdown reporters render a 'Compared' section stating exactly
  which two artifacts the report was produced from
- JSON output carries the fields naturally (already stringified wholesale)
- New test asserts both renderers state the compared artifacts
Closes #46

- New SeverityEscalation type; ChangeReport gains severityEscalations and
  summary.totalSeverityEscalations
- diff() flags a CVE present in both SBOMs whose severity rank increased or
  whose CVSS score rose (e.g. medium -> critical). De-escalations are not
  flagged. Such CVEs previously fell into neither newCVEs nor fixedCVEs and
  were invisible.
- Text and markdown reporters render a Severity Escalations section; summary
  table gains the metric
- Tests: escalation detection, CVSS-only rise, de-escalation not flagged
@dmchaledev dmchaledev changed the title feat: carry SBOM identity (name/version/generatedAt/format) through diff reports feat: report identity + CVE severity escalation detection Aug 7, 2026
@dmchaledev

Copy link
Copy Markdown
Contributor Author

Superseded — content already merged to main via #67's squash (the branch was based on this PR, so the merge carried both the typescript fix and these features). Verified on main: identity rendering (describeIdentity + ## Compared) and severity escalation detection + tests all present. Closing as redundant.

@dmchaledev dmchaledev closed this Aug 7, 2026
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.

Report is anonymous: diff() discards each SBOM's identity (name/version/generatedAt/format), so audit output can't say what was compared

1 participant