backport: upstream #2403 — CI nudge dedup starvation#20
Merged
Conversation
…nflict nudges ApplyPRObservation drives three independent nudge lanes (CI failure, review feedback, merge conflict), each with its own dedup key. Each lane did `return m.sendOnce(...)`, but sendOnce returned nil for both a real send and a dedup/attempt-cap no-op. So while a PR's CI stayed failing on the same commit (a normal multi-poll state), the CI lane deduped to a no-op yet still returned, and the review-feedback and merge-conflict lanes below were never reached. A reviewer's "please fix" nudge was silently suppressed for as long as CI was red. Make sendOnce report whether it actually sent (bool), and have each lane return early only on a real send or error, falling through to the next lane on a dedup no-op. This preserves the one-nudge-per-tick priority for a fresh CI failure while letting independent review/merge-conflict feedback through once the CI nudge is already delivered and deduping. Other sendOnce callers ignore the new bool. Adds a regression test covering the deduped-CI-then-new-review case.
ade5b65 to
2c56a0f
Compare
2c56a0f to
560c2db
Compare
Author
|
Parked by address-issue-queue after final-review loop: backend gates are green, but codex-fugu found an unresolved P2 in the local duplicate-check follow-up on top of upstream AgentWrapper#2403. Finding: CI dedupe key changes when a PR goes from one failed check named e.g. build to multiple failed checks with the same name, causing the previously delivered check to be re-sent under a new hashed key before fresh lower-priority review/merge-conflict lanes can run. This PR touches backend/internal/lifecycle/**, so even after this is resolved it must be human-merged, not auto-merged. |
4 tasks
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.
Summary
backend/internal/lifecycle/manager_test.go.Closes #10
Test plan
cd backend && env -u AO_PROJECT_ID -u AO_SESSION_ID go build ./...cd backend && env -u AO_PROJECT_ID -u AO_SESSION_ID go vet ./...cd backend && env -u AO_PROJECT_ID -u AO_SESSION_ID go test ./...Merge policy
backend/internal/lifecycle/**, which is a sensitive path under repo policy.Need help on this PR? Tag
/codesmithwith what you need. Autofix is disabled.