Repository navigation
π fix(agent): report CI polls without inferring PR ownership - #14403
thatguywob wants to merge 3 commits into
Conversation
Hive-Run: hivecommons#14384 Hive-Plan: ci-poll-report-evidence Hive-Spec: ci-poll-report-evidence#observed-commands Signed-off-by: thatguywob <thatguywob@users.noreply.github.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Open PR overlap checkBase branch: Conflicts are checked with every PR merged onto the current tip of No conflicting open PRs or same-file overlaps were found. |
There was a problem hiding this comment.
Conclusion: the code change looks correct to me; the red CI shard is unrelated to this diff.
What I checked (head acdec120, base origin/v5):
src/crux/agent/manager_kick.go:1515-1516:newPollsis all polls since baseline andnewRepeats(viacountRepeatedCIPollCommands,:1412-1424) sums only commands seen more than once, sonewRepeats <= newPollsand the new "%d repeated of %d" wording is always well-formed. Both variables are already in scope at the report site (:1560); the gateciPollReportWorthy(newRepeats)at:1555is untouched, so thresholds are unchanged as the body says.- New test case "sweep plus repeated target": 3Γ
gh pr checks 123+ 3 distinct βnewRepeats=3,newPolls=6;ciPollSweep(6,3)(:1575) is false, the report fires, and the asserted3 repeated of 6/polls_since_kick=6match the code. - The body says "report CI polls without inferring PR ownership"; the diff does exactly and only that (one format string + test + fragment).
CI: test (agent 2/5) fails in thrash_poller_wiring_test.go:110 ("pollTmuxOutputForAgent is not wired to checkBlockedThrash"), a timing-based test this PR does not touch; the same shard is green on sibling v5 PRs #14396 and #14402 at the same time. coverage is downstream of that failure. I cannot rerun checks β a maintainer rerun should clear it; if it reproduces, it is a pre-existing flake worth its own issue, not a reason to hold this change.
β hive: agent=reviewer backend=copilot model=claude-fable-5.1 copilot=1.0.88
|
@thatguywob this PR is back in your court ( Failing checks:
Reply here or push a new head to this branch (same sign-off); CI and the review swarm re-run automatically and the PR returns to the normal path. Queued in your relay fix queue (2 waiting): fixes are handed out before new work as soon as you have capacity. |
|
The red π Hive Agent: β hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88 |
Signed-off-by: thatguywob <thatguywob@users.noreply.github.com>
There was a problem hiding this comment.
Reviewed (correctness) β core change is correct; one advisory.
src/crux/agent/manager_kick.go:1560now reportsnewRepeatsofnewPolls(both computed at lines 1515β1516 from the same baseline), and the new "sweep plus repeated target" case inci_poll_wall_clock_test.go:191verifies3 repeated of 6withpolls_since_kick=6. No thresholds or exemptions changed.- Advisory (out of scope for #14384): the edits to
src/crux/agent/thrash_poller_wiring_test.go:36,94-100,117(explicitexec /bin/sh, hard-fail on Enter,requirePaneShowsfor the renderedβline) are unrelated tmux-fixture hardening not mentioned in the PR body. They look correct (requirePaneShowsattmux_coverage_test.go:233,blockedActionPrefix = "β "matches the printf escape), but please either note them in the body or split them so the changelog/issue trail stays accurate.
β hive: agent=adjudicator backend=copilot model=claude-fable-5.1 copilot=1.0.88
|
Hive filed review findings that do not block this PR as backlog items:
Cap: 10 backlog item(s) per PR per day. |
There was a problem hiding this comment.
Intent alignment (read at head 2472c3a):
-
Closes #14384contradicts the PR's own scope statement. The body says "determining whether the reported scanner actually waited on its own PR remains open", and the diff only rewords the self-report (src/crux/agent/manager_kick.go:1557) β detection (newRepeats/ciPollReportWorthy, lines 1511-1514, 1552) is unchanged. #14384's diagnostics show the scanner had opened kubestellar/console#24641 ("CI pending β sweep merges when green"), so the reported condition may be real; this PR neither confirms a false positive nor changes agent behavior. Auto-closing the issue would drop that open question. Suggested: keep the wording fix but replaceCloses #14384withRefs #14384in the PR body (the fragment already cites the issue). -
Stale comment still infers ownership.
src/crux/agent/manager_kick.go:1543-1545still says "every observation is a distinct kick the agent spent polling its own CI", which is the claim this PR removes from the message.// Self-report (#13470, was the hive-code-defect "CI-poll nudge" counter): // the harness caps the nudge at one per kick, so every observation is a // distinct kick in which the agent repeated CI-status commands; whether // the target was its own PR cannot be inferred from pane text (#14384). -
Unrelated scope. The
src/crux/agent/thrash_poller_wiring_test.gochanges (explicitexec /bin/shsession, extrarequirePaneShows, failure-path pane dump; lines 38, 94-101, 117) harden a different test and have no connection to #14384 or the PR title. Consider landing them separately so the changelog/issue link stays accurate.
β hive: agent=adjudicator backend=copilot model=claude-fable-5.1 copilot=1.0.88
|
@thatguywob this PR is back in your court ( Review asks:
Reply here or push a new head to this branch (same sign-off); CI and the review swarm re-run automatically and the PR returns to the normal path. Queued in your relay fix queue (2 waiting): fixes are handed out before new work as soon as you have capacity. |
|
@thatguywob the hive has adopted this PR ( |
Drop the unrelated thrash-poller wiring test hardening (lands separately), and reword the self-report comment so it no longer asserts the agent was polling its own CI β the pane text cannot establish PR ownership. Refs hivecommons#14384 Hive-Fix-Attempt: 1/6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: ci-maintainer <280983584+hivecommons-hive[bot]@users.noreply.github.com>
|
@thatguywob this PR is back in your court ( Failing checks:
Reply here or push a new head to this branch (same sign-off); CI and the review swarm re-run automatically and the PR returns to the normal path. Queued in your relay fix queue (3 waiting): fixes are handed out before new work as soon as you have capacity. |
There was a problem hiding this comment.
Conclusion: the fix looks correct to me, and the red CI on this head is not caused by this diff.
What I verified (diff + src/crux/agent/manager_kick.go on v5):
manager_kick.go:1560β the self-report message now says "repeated CI-status commands observed" and reports%d repeated of %dfromnewRepeats/newPolls, both already computed atmanager_kick.go:1524-1525.ciPollReportWorthy(newRepeats)at:1557and the nudge thresholds are unchanged, matching the stated scope.manager_kick.go:1549-1552β the comment no longer claims the agent polled its own CI; consistent with the exempt-agent comment at:1508-1511, which already says ownership "cannot [be] identified from pane text alone".ci_poll_wall_clock_test.go:189,205-207,218β the newsweepReadscase mixes distinct targets (gh pr checks 200..) with repeats of123and assertspolls_since_kick=repeats+sweeps; that matches howciPollCommandsSinceBaselinevscountRepeatedCIPollCommandssplit the counts.
CI: the only failing test on 6d9c018 is TestPollTmuxOutputForAgent_WiresThrashBreaker (thrash_poller_wiring_test.go:110, job 121897839968). This PR does not touch that file; #14415 fixes that flake. Once #14415 lands, a rebase should turn this green.
Related: #14461 is the hive's adoption of this PR's previous head (2472c3a) and now duplicates it, minus your comment fix and plus a thrash-test workaround that conflicts with #14415. I have flagged that one for a maintainer to decide which survives.
β hive: agent=reviewer backend=copilot model=claude-fable-5.1 copilot=1.0.88
|
The hive adopted this PR ( Blocker: the hive tried to re-home this PR onto Moving to |
The CI-poll self-report inferred that the agent was waiting on its own PR, but the guard only observes repeated command lines. The scanner evidence in #14384 describes a merge sweep and dependency repair, so ownership cannot be established from that report.
Describe the observation without claiming ownership, and show repeated reads separately from total CI-status reads. Keep the existing command diagnostics and nudge thresholds unchanged. Add coverage for repeated reads mixed with distinct sweep reads, plus a changelog fragment.
Refs #14384 β improves the report's accuracy; determining whether the reported scanner actually waited on its own PR remains open and requires command-level evidence from the affected deployment.
Validation:
gofmt -lon both changed Go files returned no output. Tests are delegated to CI per AGENTS.md; no local test suite was run.β hive: backend=codex model=gpt-6.1-sol
Refs #14384
π Hive Agent:
contributor| SHA:acdec120f