You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Findings include stable `id`, `fingerprint`, `rule_id`, `severity`, `category`, `path`, `line`, `safe_excerpt`, `remediation_hint`, and optional `response_options` fields. Secret-looking values are redacted before JSON reports, Markdown reports, SARIF, work imports, docs, or session artifacts are written.
60
+
Findings include stable `id`, `fingerprint`, `rule_id`, `severity`, `category`, `path`, `line`, `occurrence`, `safe_excerpt`, `remediation_hint`, and optional `response_options` fields. Secret-looking values are redacted before JSON reports, Markdown reports, SARIF, work imports, docs, or session artifacts are written.
61
+
62
+
### Finding fingerprints and suppressions
63
+
64
+
Finding fingerprints are content-addressed, not line-addressed. A fingerprint hashes `rule_id`, repo-relative `path`, a normalized redacted 96-character excerpt of the matched content, and a zero-based `occurrence` index for genuine duplicates of the same rule and text in one file. Absolute line numbers are reported for review but do not affect fingerprint identity, so suppressions survive unrelated edits above a finding.
65
+
66
+
When the same rule matches identical redacted text twice in one file, the first match uses `occurrence = 0`, the second `occurrence = 1`, and so on. Occurrence order follows ascending scan line number, which keeps duplicate strings distinct without tying identity to a single absolute line.
67
+
68
+
**One-time migration from line-based fingerprints:** older releases mixed category, title, path, line, and excerpt into each fingerprint. Existing `[suppressions]` entries keyed by those fingerprints do not match the new content-addressed IDs and are not rewritten automatically. After upgrading, review and suppress each still-accepted finding once under its new fingerprint, then remove the stale entry from `.brigade/security.toml`. Later line shifts keep the new suppression intact. Old evidence bundles retain their original fingerprints and are not rewritten or reconciled.
60
69
61
70
Secret findings include a small response playbook. Typical options are moving active credentials into a gitignored `.env` file or environment variable, scrubbing tracked files and rotating exposed values, showing the redacted finding to the operator so they can preserve the real value in KeePass before deciding, and redacting or archiving chat/session transcripts when a session log contains an exposed key.
0 commit comments