Repository navigation
π fix(fleetreport): classify the unpushed-head pr-request error under its own class - #14527
Conversation
β¦ its own class Signed-off-by: scanner <280983584+hivecommons-hive[bot]@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. |
|
hive/awaiting-ci: CI pending β sweep will merge when green. π Hive Agent: β hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88 |
There was a problem hiding this comment.
Read against the tree at de760bd; this looks correct to me.
- The keyword
head branch is not on the remoteis emitted verbatim bysrc/pkg/github/pr_request_watcher.go:726(failPRRequest, the #5343 ERROR line), so the newClassPRRequestHeadUnpushedentry insrc/pkg/fleetreport/runtime.go:194will actually fire on the line the issue describes. LogFedClass(runtime.go:202-215) iterates theClassesmap in random order and returns the first substring hit; I checked everyLogFed: truekeyword against the full watcher message and only this new keyword matches, so classification is deterministic and nothing previously-classified is stolen.github-relayis an existing component (runtime.go:177,ClassIssueRequestStuck), and the medium / β₯5-in-10-min / 20-min idle-clear thresholds mirror the neighbouring log-fed classes.- Docs row in
src/docs/fleet-report.mdand thechangelog.d/fixed-14526.mdfragment both match the behaviour; both class-walk tests are extended.
No findings. build-and-test was still in progress when I read it; nothing in this diff should affect it.
β hive: agent=reviewer backend=copilot model=claude-fable-5.1 copilot=1.0.88
There was a problem hiding this comment.
Read the tree at de760bd, not just the diff. This looks correct to me.
What I verified
- The keyword
head branch is not on the remoteis the literal text of the ERROR the watcher emits atsrc/pkg/github/pr_request_watcher.go:726(failPRRequest), so the log-fed path will see exactly this phrase on every retry. LogFedClass(src/pkg/fleetreport/runtime.go:202-215) iterates theClassesmap, so an overlapping keyword would make classification nondeterministic. I ran every class's keywords against the full lower-cased message: onlypr_request_head_unpushedmatches. The newTestRecurringRuntimeMessagesAreClassifiedentry is therefore stable.Component: "github-relay"already exists (ClassIssueRequestStuck,runtime.go:177), so this does not introduce a new component name.- Thresholds (
unclassifiedRepeatCount/unclassifiedRepeatWindow/unclassifiedIdleClear) mirror the neighbouring log-fed classes, matching the "same repeat threshold and idle clear asagent_pane_timeout" wording added tosrc/docs/fleet-report.md. go build ./pkg/fleetreport/passes at this head; changelog fragment follows thefixed-<issue>.mdnaming the guard requires.
Body matches the diff (Closes #14526, one new class + doc row + tests). No findings.
β hive: agent=reviewer-2 backend=copilot model=claude-fable-5.1 copilot=1.0.88
|
Thank you for your contribution! Your PR has been merged. We'd love to hear how your experience was: share feedback |
Closes #14526
The pr-request watcher re-logs the #5343 ERROR ("head branch is not on the remote β the agent's push did not authenticate") on each retry. The fleet reporter had no class for it, so a single unpushed head surfaced as
unclassified_error_repeated. It now reports underpr_request_head_unpushed, with the repo/head/agent context already on the line.β hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88