Repository navigation
feat(#6966)!: replace stale findings on ok via issues post-comment --only-if-exists - #7917
Conversation
PR Summary by QodoClear stale agent findings with update-only issue comments
AI Description
Diagram
High-Level Assessment
Files changed (9)
|
Code Review by Qodo
1.
|
|
🤖 Finished Review · ✅ Success · Started 2:52 PM UTC · Completed 3:31 PM UTC Commit: Runtime: pi · Model: sonnet → claude-sonnet-5 · Effort: high · Cost: $3.17 |
Site previewPreview: https://654f85c2-site.fullsend-ai.workers.dev Commit: |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Risk Assessment: moderate (2/5) DetailsModerate risk for an additive, opt-in CLI flag and template update with comprehensive tests and no protected path changes, balanced against elevated git churn and regression history in modified files. Previous runRisk Assessment: moderate (2/5) DetailsModerate risk for an additive, opt-in CLI flag and template update with comprehensive tests and no protected path changes, balanced against elevated git churn and regression history in modified files. Previous run (2)Risk Assessment: moderate (2/5) DetailsModerate risk for an additive, opt-in CLI flag and template update with comprehensive tests and no protected path changes, balanced against elevated git churn and regression history in modified files. Previous run (3)Risk Assessment: moderate (2/5) DetailsModerate risk: focused addition of an opt-in CLI flag with strong test coverage and no protected path changes, offset by moderate churn and coupling in touched CLI and agent generator files. |
|
Looks good to me Previous runReviewFindingsMedium
Next steps:
Previous run (2)Looks good to me Labels: Adds a user-facing CLI option and updates custom-agent generated post-scripts. Previous run (3)ReviewFindingsLow
Next steps:
Previous run (4)ReviewFindingsHigh
Medium
Low
Next steps:
Previous run (5)ReviewFindingsHigh
Medium
Low
Next steps:
|
27d1971 to
c9231c7
Compare
|
🤖 Finished Review · ✅ Success · Started 3:53 PM UTC · Completed 4:35 PM UTC Commit: Runtime: pi · Model: sonnet → claude-sonnet-5 · Effort: high · Cost: $3.89 |
|
🤖 Finished Review · ✅ Success · Started 4:41 PM UTC · Completed 5:05 PM UTC Commit: Runtime: pi · Model: sonnet → claude-sonnet-5 · Effort: high · Cost: $7.25 |
|
🤖 Review · Commit: |
c2c16aa to
6e23a22
Compare
|
🤖 Finished Review · ✅ Success · Started 8:45 PM UTC · Completed 9:07 PM UTC Commit: Runtime: pi · Model: openai/gpt-6.1-sol → gpt-6.1-sol · Effort: high · Cost: $3.26 |
Superseded by updated review
…only-if-exists On status ok the generated post-script posted nothing, so a findings comment from an earlier push stayed on the pull request after a later push fixed the problem (the trigger fires again on synchronize). Add `issues post-comment --only-if-exists`: update the poster's own earlier marker comment, never create one. sticky.Config.OnlyIfExists carries it to the GitHub/GitLab and Jira paths, which honour it after the author check, so a comment someone else planted with the marker is never the target. sticky.Post does not read it. The generated ok path now pipes the all-clear through it. The runner's fullsend is pinned by fullsend-ref, not by the CLI that generated the script, so the script detects the flag from --help (reading the whole text, no grep -q, so an early exit cannot SIGPIPE it) and keeps the old "post nothing" on an older CLI. A failed post fails the run. Dry run calls nothing and says it did not check for an earlier comment. The ok path now runs after ISSUE_URL validation, so an ok result with a non-GitHub ISSUE_URL is rejected like any other. Tests: the flag on the forge-client and Jira paths (including a marker property planted by another account), and the generated ok path with stubbed fullsend binaries that do and do not know the flag, that fail the post, and that must not be called under dry run. Goldens regenerated; docs list the flag. BREAKING CHANGE: a regenerated post-script now fails the run on a status ok result when fullsend is missing, its --help fails, the posting identity cannot be resolved, or the post fails; previously the ok branch always exited 0. Existing generated scripts are unchanged until regenerated. Assisted-by: Claude (fix), Claude (review) Signed-off-by: Wayne Sun <gsun@redhat.com>
…-if-exists in cli - The generated ok path now fails when `fullsend issues post-comment --help` itself fails (fullsend missing or broken): that is a broken runner, not an older CLI. Only a working CLI without the flag still posts nothing. Capturing the help text also removes the grep pipeline. - The ok call passes --keep-history=false, so the all-clear replaces the comment in place and repeated clean runs do not stack identical "Previous run" blocks. - onlyIfExists is a parameter of the CLI's post functions instead of a sticky.Config field that sticky.Post never read; internal/sticky is unchanged. BREAKING CHANGE: a regenerated post-script now fails the run on a status ok result when fullsend is missing, its --help fails, the posting identity cannot be resolved, or the post fails; previously the ok branch always exited 0. Existing generated scripts are unchanged until regenerated. Assisted-by: Claude (fix), Claude (review) Signed-off-by: Wayne Sun <gsun@redhat.com>
The ok path runs after the ISSUE_URL check, so an ok result is validated like any other. Moving the ok block back above the check fails the test. Assisted-by: Claude (fix), Claude (review) Signed-off-by: Wayne Sun <gsun@redhat.com>
Assisted-by: Claude (fix), Claude (review) Signed-off-by: Wayne Sun <gsun@redhat.com>
6e23a22 to
93f9b47
Compare
|
🤖 Finished Review · ✅ Success · Started 9:18 PM UTC · Completed 9:29 PM UTC Commit: Runtime: pi · Model: openai/gpt-6.1-sol → gpt-6.1-sol · Effort: high · Cost: $2.52 |
Superseded by updated review
ggallen
left a comment
There was a problem hiding this comment.
Reviewed the current top commit. I found no additional actionable issues. The update-only flow is correctly author-scoped, avoids creating comments on clean first runs, preserves older-runner compatibility, fails visibly on runner/update errors, and has appropriate GitHub/GitLab/Jira and repeated-run coverage.
What
fullsend issues post-comment --only-if-exists: updates the poster's own earlier marker comment and never creates one. The GitHub/GitLab and Jira paths ininternal/clihonour it after feat(cli)!: verify the comment author before issues post-comment edits #7916's author check, so a comment someone else planted with the marker is never the target.internal/stickyis unchanged.status: ok, the post-script thatfullsend agent newgenerates now sends the all-clear through--only-if-exists --keep-history=false. The all-clear replaces the earlier findings in place, so repeated clean runs don't stack identical history.Why
On
status: okthe generated post-script posted nothing. The trigger fires again on later pushes, so a findings comment from an earlier push stayed on the pull request after the author fixed the problem. The fix needs to update that comment without creating one on a clean first run, which is what the new flag does.The runner's
fullsendis pinned by the repository'sfullsend-ref, not by the CLI that generated the script. So the script detects the flag frompost-comment --helpinstead of assuming it, and keeps the old "post nothing" behaviour on an older CLI. Afullsendthat is missing or whose--helpfails is a broken runner, not an older CLI, so the run fails. A failed post fails the run. A dry run calls nothing and says it did not check for an earlier comment. The ok path now runs afterISSUE_URLvalidation, so an ok result with a non-GitHubISSUE_URLis rejected like any other.BREAKING CHANGE
A post-script regenerated with
fullsend agent newnow fails the run on astatus: okresult in any of these cases:fullsendis missing, orfullsend issues post-comment --helpfails;ISSUE_URLis not a GitHub issue or pull request URL. The ok path now runs after that check, so an ok result with such a URL is rejected like any other, where it used to exit 0.Before, the ok branch always exited 0. Existing generated scripts are plain files and keep their behaviour until regenerated.
Migrating: when you regenerate, make sure
fullsendis on the post-script's PATH, and that the token it posts with can read its own identity (see #7916). A run that fails on a transient identity or API error can simply be rerun.Release note
Generated post-scripts now call
fullsend issues post-commenton an ok result, sofullsendmust be on PATH for the ok path, and a brokenfullsend --helpfails the run. Scripts generated before this change keep their behaviour until regenerated.Tests
--keep-history=false, three clean runs leave exactly one all-clear and no "Previous run" block. Under--only-if-existsit ignores a planted marker comment (GitHub look-alike logins; on Jira, a marker property set by another account), and skips a planted comment listed before the poster's own.ISSUE_URLfails like any other. Stubbedfullsendbinaries cover five cases:--only-if-existsand--keep-history=false;--helpfails makes the run fail;--only-if-existsfrom the template call, dropping the "nothing to post" branch on the tracker or Jira path, dropping the dry-run guard, swallowing a failed post with|| true, treating a failed--helpas an older CLI, dropping--keep-history=false, and not passing the flag through.docs/guides/user/issues-commands.mdanddocs/guides/dev/cli-internals.mdlist the flag.Split out of #7243. Part of #6966.
🤖 Generated with Claude Code