Skip to content

fix(security): compare rule-level and partial parser coverage - #91

Merged
leemour merged 1 commit into
mainfrom
fix/security-comparison-coverage
Oct 15, 2026
Merged

leemour merged 1 commit into
mainfrom
fix/security-comparison-coverage

Conversation

@leemour

@leemour leemour commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

A scanner can finish while reporting that one rule/file or source span was not analyzed. Comparing only repository/scanner names could then call a missing observation fixed when those gaps changed.

Coverage fingerprints now include Semgrep's explicit rule/file gaps and partial-parsing file/span positions. The existing comparison guard refuses fixed-observation claims when those fingerprints differ. Malformed gap metadata fails instead of disappearing. Existing run records are not rewritten; retained raw reports can be fingerprinted into a separately documented derived baseline. Observation identifiers and the strict incomplete-run guard stay unchanged.

Validation: 117 tests pass, 98.48% lines / 97.65% statements / 94.83% branches / 98.13% functions. Tests prove changed rule/span coverage blocks fixed claims, malformed gaps fail, and deriving fingerprints leaves raw evidence unchanged. Lint, type checks, docs, build and Bun smoke pass. The raw-report collector also loops over observations instead of spreading an unbounded list into call arguments.

@leemour
leemour merged commit dd3851f into main Oct 15, 2026
1 check passed
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