Repository navigation
Conversation
added 2 commits
November 3, 2026 22:42
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Title:
feat(aviator): record superseded and covered issues in remediations.xml and report them when applyingSummary
When Aviator remediates several findings in the same file, one fix can resolve others: the other findings can be covered by it, or its fix can contain their narrower fixes and supersede them. This PR makes that explicit end to end. The relationship is written to
remediations.xml, used when applying, and shown in the apply output. It works together with the Aviator server change that sendscovered_by_issue_idsandsuperseded_issue_ids. Note: Cross-run case unsupported: if an issue was written with its own fix in an earlier run and a later run supersedes it, the earlier entry is not rewritten.Changes
remediations.xml(AuditProcessor,remediations.xsd)FileChangesplus<SupersedesPriorFix instanceId="…"/>for each.AuditCommentplus<CoveredByPriorFix instanceId="…"/>, with noFileChanges.audit.xmland theAuditCommentinremediations.xml.Remediation.Wire format (
issue.proto,GrpcUtil,Autoremediation): addsskip_reason = 2,covered_by_issue_ids = 3andsuperseded_issue_ids = 4, matching the server proto. The fields are additive, so an older server simply sends none.Apply (
RemediationProcessor,RemediationProcessingState)--issue-idsnames an issue with no fix of its own, the fix that resolves it is proposed through anImplicitFixApprover, and every issue it resolves is listed. New-y/--confirmapproves without asking. Otherwise fcli asks interactively, and declines in a non-interactive run, skipping the issue as "not confirmed".--previewnever asks.Output (
AviatorRemediationMetricsHelper,RemediationMetric, SSC and FoD table columns)remediatedRemediation(applied + identical + superseded + covered),supersedesPriorFixRemediation, andcoveredByPriorFixRemediation.resolvedIssueIds: for each fix, the issues it resolves and how (coveredByPriorFixorsupersedesPriorFix).implicitlyAppliedIssueIdsappears only with--issue-ids.Testing
All existing testcases are passed along with the newly added testcases.