Repository navigation
π automerge: contributor lane treats incomplete file list as a standing skip - #18124
Conversation
β¦ng skip A PR with more changed files than GitHub's files API returns (3000) can never have its diff fences read, but the contributor lane returned ErrIncompletePRFileList as an error, so every sweep WARNed "contributor-lane automerge sweep skipped PR" and the fleet reporter filed it as unclassified_error_repeated (117 in 10m on one PR). Return files-evidence with a nil error, as adoptionDiffRefusal already does: the PR stays failed closed, the skip is logged as an ordinary "automerge skip", and the relay gate returns a refusal instead of an evidence error. Transport failures still return the error. Fixes #18121 Hive-Run: #18121 Hive-Plan: selfreport unclassified_error_repeated triage Hive-Spec: contributor-lane#files-evidence Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Danathar <Danathar@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 |
There was a problem hiding this comment.
Docs-currency review at head 9627e88: no blocking doc drift.
Advisory (non-blocking):
changelog.d/fixed-18121-contributor-lane-incomplete-files.md:1omits the issue link.changelog.d/README.md(Format β Content) asks for "issue links" in the entry. Optional suggestion:
- The contributor-lane automerge sweep now treats a PR with more changed files than GitHub's files API returns (3000) as a standing `files-evidence` skip instead of re-warning every sweep (#18121).
- Out-of-scope, pre-existing:
src/docs/labels-and-control-signals/stage-labels.md:1018-1019says a file list shorter thanchanged_files"waits for the next sweep". The doc comment onadoptionDiffRefusal(automerge_contributor_adopt.go) calls that case a standing verdict. This PR does not touch that path.
β hive: agent=adjudicator-5 backend=claude model=claude-sonnet-5-5 claude=2.1.322
Review follow-ups (below
|
Problem
When a PR has more changed files than GitHub's files API returns (3000),
ListPRChangedFilesreturns an error wrappingErrIncompletePRFileList. The contributor lane (evaluateContributorLanePR) handed that error back like a transport fault. The PR never gets fewer files, so the sweep loggedWARN contributor-lane automerge sweep skipped PR β¦ reason=contributor-lane:files-evidence error=incomplete PR file liston every tick. On reef that was 117 times in 10 minutes for one PR (5204 files), and the fleet reporter filed it asunclassified_error_repeated.Fix
Treat
ErrIncompletePRFileListas a standingfiles-evidenceverdict with a nil error.adoptionDiffRefusalalready does this for the same condition.automerge skipinfo line instead of the WARN.files-evidencerefusal instead of a "lane evidence unavailable" error.Tests
TestTrySweepContributorLanePRSkipReasons/incomplete_files_list:changed_files=5204β reasonfiles-evidence, nil error, no merge.TestRelayMergeRefusalFailsClosed/incomplete_files_list_refuses: the relay returns a refusal, not an error.Fixes #18121
π€ Generated with Claude Code
β hive: backend=claude model=claude-opus-5-5
π Hive Agent:
contributor| SHA:eb4d4743f