Skip to content

πŸ› automerge: contributor lane treats incomplete file list as a standing skip - #18124

Merged
hivecommons-hive[bot] merged 2 commits into
v5from
fix/18121-contributor-lane-incomplete-files
Nov 13, 2026
Merged

hivecommons-hive[bot] merged 2 commits into
v5from
fix/18121-contributor-lane-incomplete-files

Conversation

@Danathar

Copy link
Copy Markdown
Contributor

Problem

When a PR has more changed files than GitHub's files API returns (3000), ListPRChangedFiles returns an error wrapping ErrIncompletePRFileList. The contributor lane (evaluateContributorLanePR) handed that error back like a transport fault. The PR never gets fewer files, so the sweep logged WARN contributor-lane automerge sweep skipped PR … reason=contributor-lane:files-evidence error=incomplete PR file list on every tick. On reef that was 117 times in 10 minutes for one PR (5204 files), and the fleet reporter filed it as unclassified_error_repeated.

Fix

Treat ErrIncompletePRFileList as a standing files-evidence verdict with a nil error. adoptionDiffRefusal already does this for the same condition.

  • The PR still fails closed. Its diff fences can't be read, so the lane never merges it.
  • The sweep now logs the ordinary automerge skip info line instead of the WARN.
  • The merge-request relay returns a files-evidence refusal instead of a "lane evidence unavailable" error.
  • Real transport failures, such as a 5xx on the files API, still return the error and the WARN.

Tests

  • TestTrySweepContributorLanePRSkipReasons/incomplete_files_list: changed_files=5204 β†’ reason files-evidence, nil error, no merge.
  • TestRelayMergeRefusalFailsClosed/incomplete_files_list_refuses: the relay returns a refusal, not an error.
  • Added a changelog fragment.

Fixes #18121

πŸ€– Generated with Claude Code

β€” hive: backend=claude model=claude-opus-5-5


🐝 Hive Agent: contributor | SHA: eb4d4743f

…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>
@kubestellar-prow kubestellar-prow Bot added the dco-signoff: yes Indicates the PR's author has signed the DCO. label Nov 13, 2026
@kubestellar-prow

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign kellyaa for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kubestellar-prow kubestellar-prow Bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Nov 13, 2026

@hivecommons-hive hivecommons-hive Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs-currency review at head 9627e88: no blocking doc drift.

Advisory (non-blocking):

  • changelog.d/fixed-18121-contributor-lane-incomplete-files.md:1 omits 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-1019 says a file list shorter than changed_files "waits for the next sweep". The doc comment on adoptionDiffRefusal (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

@hivecommons-hive

Copy link
Copy Markdown
Contributor

Review follow-ups (below review.backlog.min_severity: P2)

Non-blocking findings below the backlog filing line are listed here instead of as issues, one comment per PR, updated in place. Tick them off as they are fixed; set review.backlog.min_severity: P3 to file every finding.

  • P3 low docs-currency β€” stage-labels.md calls incomplete file list a per-sweep deferral (src/docs/labels-and-control-signals/stage-labels.md:1018): src/docs/labels-and-control-signals/stage-labels.md:1018 says a short file list waits for the next sweep, but adoptionDiffRefusal treats it as a standing verdict with a nil error. Pre-existing; this …

@hivecommons-hive
hivecommons-hive Bot merged commit 2cc6995 into v5 Nov 13, 2026
78 of 79 checks passed
@kubestellar-prow
kubestellar-prow Bot deleted the fix/18121-contributor-lane-incomplete-files branch November 13, 2026 19:45
@hivecommons-hive

Copy link
Copy Markdown
Contributor

Hive status β€” updated in place; edits do not notify. Full history is in the Activity Monitor.

Evidence bundle `#181249627e88` sha256:58e57ac545eaf311b9f4affdc243f44a05e7c054e2bda7584cd092192a61d30e β€” download from the dashboard or `hivectl review evidence #18124`.

@hivecommons-hive

Copy link
Copy Markdown
Contributor

merged by Hive trusted-author auto-merge: author @Danathar holds role owner and GitHub permission maintain on repo; CI green at 9627e88.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dco-signoff: yes Indicates the PR's author has signed the DCO. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[selfreport] unclassified_error_repeated: contributor-lane automerge sweep skipped PR

1 participant