Repository navigation
✨ feat(automerge): adopted PRs merge under the hive's own authority - #14489
Conversation
An in-place adoption (stage/074-adopted-by-hive) made the hive the owner of the PR for review and stage purposes, but every auto-merge tier still gated on the ORIGINAL author's trust (role, registry tier, claim marker, author_association). An untrusted contributor's adopted PR therefore sat CI-green and approve-verdicted forever, needing a human /lgtm. The contributor lane now admits a PR whose stage record carries a live in-place adoption of exactly the head under evaluation (the head the hive adopted or pushed) under the hive's own authority, admit reason contributor-lane:adopted-by-hive. All other gates are unchanged (CI, reviewer verdict, DCO, diff fences, soak, human-merge paths, head re-verification). Superseding adoptions are not admitted on the original PR; a contributor push over the adopted head yields as before. Toggle: governor.labels.stage.adoption.auto_merge (default on). Fixes #14488 Signed-off-by: Andy Anderson <andy@clubanderson.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 |
|
@clubanderson is auto-promoted for contributor-lane merging on this PR: the last 5 merged PRs by this author in this repository have no revert or sentinel-alert evidence. CI, reviewer verdict, diff fences, soak, holds and branch protection still apply. |
Open PR overlap checkBase branch: Conflicts are checked with every PR merged onto the current tip of
|
|
@clubanderson this PR is held at Failing checks:
Next: the hive does not push to your branch. Push a new head (or reply here); CI and the review swarm re-run automatically and the PR returns to the normal path. |
… red-CI case - agent_runtime_golden.json: new Adoption.AutoMerge leaf (nil default) - Settings UI: reference governor.labels.stage.adoption.auto_merge in the adoption help copy and search text (settings parity) - red-CI case: declare the fixture's check required so a failing run is a definite red instead of the unknown-required-set ci-unverified hold Signed-off-by: Andy Anderson <andy@clubanderson.com>
|
Thank you for your contribution! Your PR has been merged. We'd love to hear how your experience was: share feedback |
|
merged by Hive trusted-author auto-merge: author @clubanderson holds role owner and GitHub permission admin on repo; CI green at 53d8a68. |
Why
Owner decision (@clubanderson, 2026-10-27): "If items are adopted, then the hive agents own it and they should be eligible for auto merge."
Contributor PRs the hive adopted in place (
stage/074-adopted-by-hive, e.g. #14440 / #14456 / #14457) could never auto-merge: review and stage treated them as hive-owned, but all three merge tiers still gated on the original author's trust (untrusted-author-role,not-app-authored,contributor-lane:claim-tier-untrusted). Because no lane ever admitted them, the074 → 095/097transition-table edges never fired and the PRs needed a human/lgtmforever.What
AdoptedHeadequals the head under evaluation, the PR is admitted under the hive's own authority with reasoncontributor-lane:adopted-by-hive. Author tier / claim marker /author_associationare not consulted for that head.workflow-path/tests-removedfences, reporter-trust hold, changes-requested, release hold, soak, human-merge paths, head re-verification before merge.hive/adopt-<n>App PR merges via the self-authored lane); a contributor push over the adopted head yields (074 → 072, existing behaviour) and the normal contributor gates apply again.governor.labels.stage.adoption.auto_merge(default on) on the existing adoption block.Tests
Table-driven
TestTrySweepContributorLanePRAdoptedByHiveAdmission(adopted head merges without trust;NONEassociation merges; workflow / test-removal fences hold; red CI holds; contributor pushed over head → back to author gates; yielded; supersede not admitted; no record; toggle off; valid claim still merges) plus helper tests and the config getter default. Notime.Sleep.Not in scope
#14457's
check-failing:overlayfs-exec-guardis a cancelled run (treated red, correctly), not stale state — noted on the issue as a separate gap.Fixes #14488