fix: Post status updates for tracked review findings - #159
Conversation
OpenDiff SummaryThis PR updates
Not safe to merge. The new body-only review submission path is directionally correct and I did not find security or performance regressions in the changed flow, but there is one behavior regression in the status body generation: when the only change is that previously tracked findings were resolved, the handler now posts a body-only review whose real formatter output collapses to a generic "No open issues in the current review." message instead of communicating that earlier findings were addressed. That does not break review submission itself, but it means the newly added feature fails to deliver the intended status update in an important path, so I would fix that before merging. FindingsOpenDiff completed the review and found 1 warning to consider before merging. Open Issues
Rating: 84/100 Reviewed by opendiff |
| statusUpdateOpenIssues.length > 0 | ||
| ? statusUpdateOpenIssues | ||
| : effectiveReviewResult.issues, |
There was a problem hiding this comment.
Bug Risk: Addressed-only updates lose the resolved-status context.
When history.addressedIssues is non-empty and there are no remaining open findings, statusUpdateOpenIssues.length is 0, so this branch falls back to effectiveReviewResult.issues. In that case effectiveReviewResult.issues is also empty, and ReviewFormatter.formatReviewBody() produces the generic ## Status Update\n\nNo open issues in the current review. body. This PR now submits that body as a standalone COMMENT review, so the user never sees that earlier tracked findings were actually resolved, even though the tests now expect a resolution-focused status update.
| statusUpdateOpenIssues.length > 0 | |
| ? statusUpdateOpenIssues | |
| : effectiveReviewResult.issues, | |
| const reviewBody = | |
| statusUpdateOpenIssues.length === 0 && history.addressedIssues.length > 0 | |
| ? "## Status Update\n\nPreviously reported issues were addressed in this revision." | |
| : this.formatter.formatReviewBody( | |
| { | |
| ...effectiveReviewResult, | |
| issues: | |
| statusUpdateOpenIssues.length > 0 | |
| ? statusUpdateOpenIssues | |
| : effectiveReviewResult.issues, | |
| }, | |
| statusUpdateOpenIssues.length > 0 | |
| ? statusUpdateInlineIssues | |
| : inlineIssues.filter( | |
| (issue) => | |
| !invalidInlineIssues.some( | |
| (invalidIssue) => | |
| invalidIssue.file === issue.file && | |
| invalidIssue.line === issue.line && | |
| invalidIssue.message === issue.message | |
| ) | |
| ), | |
| statusUpdateBodyOnlyIssues | |
| ); |
|
Closing so we can rerun review/autofix from a fresh PR after removing the autofix include and ignore path scopes. |
Preview Deployment
Updated: 2026-06-25 12:48:38 UTC |
Summary
Validation