Skip to content

Add audited severity finding dismissals - #533

Closed
morgaesis wants to merge 2 commits into
mainfrom
codex/severity-finding-dismissal
Closed

Add audited severity finding dismissals#533
morgaesis wants to merge 2 commits into
mainfrom
codex/severity-finding-dismissal

Conversation

@morgaesis

Copy link
Copy Markdown
Contributor

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.

@postil-devpostil-devBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

info1 advisory finding open
1 finding posted inline

Review details

approvableFindingIds.has(state.findingId) &&
!state.activeApproval &&
!state.activeDismissal &&
!state.severityBlocking && (

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warnRestore 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.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
morgaesis enabled auto-merge (squash) August 24, 2026 22:53
@morgaesis

Copy link
Copy Markdown
ContributorAuthor

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.

auto-merge was automatically disabled August 25, 2026 20:02

Pull request was closed

Sign up for freeto 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

@morgaesis