Uh oh!
There was an error while loading. Please reload this page.
Add audited severity finding dismissals - #533
Conversation
| approvableFindingIds.has(state.findingId) && | ||
| !state.activeApproval && | ||
| !state.activeDismissal && | ||
| !state.severityBlocking && ( |
There was a problem hiding this comment.
Restore the revoked-approval guard before allowing a new override
warn · confidence 0.82 · kind: risk
This condition no longer checks !state.latestApproval?.revokedAt, so an admin can now open and submit a new commit-scoped override after the latest approval was revoked, provided no active approval or dismissal remains. That changes the decision lifecycle and may permit re-approval where revocation was intended to be terminal. Restore the guard, or verify and enforce the intended transition in approveFinding before merging.
There was a problem hiding this comment.
Reissue is intentional: revoked rows remain immutable history while only active rows affect the gate, and the state regression explicitly keeps a revoked approval eligible for reissue. See the commit-scoped reissue regression; the active-row unique constraint and transactional insertion still prevent two live decisions.
morgaesis
commented
Aug 25, 2026
Finding provenance is merged through PR #549, including immutable generator and scorer attribution for both webhook and dashboard paths. This branch’s schema and persistence work is superseded, so I am closing it rather than merging it. |
Pull request was closed
Administrators need an auditable way to dismiss severity- or kind-blocking findings without weakening unrelated merge gates. This adds reason-tagged, immutable, commit-bound dismissals from GitHub and the dashboard, keeps operational sentinels non-dismissible, prevents stale and newer-review races, and preserves revoke and reissue history. The dashboard exposes the exact finding, model, actor, rationale, and confirmation command.