Repository navigation
🌱 sync: top up v5 into v6 (31 commits since f0307339f) - #12903
Conversation
Signed-off-by: Andy Anderson <andy@clubanderson.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
…ct HIVE_REPO_SCOPE docs (#12854) FindHive returned the first NormalizeHiveID error for any candidate, so a single legacy profile with a compose/k8s-style host (ws://hive_hub:8080) made EnsureHive fail for every unrelated onboarding target. Legacy profiles that cannot normalize can never match a canonical origin; skip them. hivectl.md described HIVE_REPO_SCOPE as ';'-joined IDs, but the projection joins per-hub entries with ',' (aligned with HIVE_HUB) and repositories within one hub with ';'. Document the real on-disk form with a valid four-segment example. Refs #12804 Signed-off-by: Andrew Anderson <andy@clubanderson.com>
Owner decision: issues must not park at stage/085-needs-decision any more. Add the issue-side stage stage/045-needs-decision (between 040 and the PR stages) and make 085 PR-only. - stagelabels: IssueNeedsDecision (045, issue-only); NeedsDecision (085) PR-only; Stage.For clamps 085 -> 045 for issues; leaving 045 is never a regression; StageBySlugFor for the shared slug. - issue derivation: needs-human and every park label derive 045, never 085; a stale 085 is swapped for 045 in the same write (NeedsDecisionRestaged). PR derivation untouched (still 085, never 045). - un-park (/hive approve, /hive decision) clears 045 and a pre-045 085, adds approved-direction, keeps needs-human (#12715). - one-shot startup sweep MigrateIssueNeedsDecisionStage re-stages open issues still wearing 085 (issues only; PRs and the 085 definition are left alone), marker /data/issue-needs-decision-stage-v1.done. - config default NeedsDecisionLabel -> 045, PRNeedsDecisionStageLabel -> 085; hard-suppress bucket, gfi exclusions, label relay (agents may add either park; reconcilers clamp by kind), dashboard bands/presets/ tracker (045 lights Actionable with 'Needs human decision', counts as needs-attention), docs and ADR-0019 amendment. Signed-off-by: Andrew Anderson <andy@clubanderson.com>
…iffs and opt-in follow policy (#12853) Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: hanthor <5840441+hanthor@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ls (#12860) Decision B on #12787. The busy-no-activity stall restart (#12523) runs at 2x busy_no_activity_threshold, but the kick_failed_repeatedly self-report fired at 1x, so fleet issues were filed for stalls that then recovered on their own. The restart loop now marks the attempt on the AgentProcess before the teardown resets the busy counters; markKickUndeliverableLocked only observes the class while that marker is set (or when the restart itself errors), and a delivered kick clears both the marker and the tracker condition. The 30m condition stays a dashboard busy condition and a warning log line. Fixes #12787 Signed-off-by: Andrew Anderson <andy@clubanderson.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
…ever mark them stalled (#12863) A parent the scanner split into relay-filed children (native GitHub sub-issues) sat at stage/010-actionable after every child had merged, then got stage/stalled because its own timeline was quiet, and had to be closed by hand (#12361). The enumerator now keeps GitHub's sub_issues_summary off the list payload (next to issue_dependencies_summary) and falls back to the split-parents ledger and a new <!-- hive:parent N --> body marker the relay writes into each child it links. The issue stage sweep reads it: all children closed -> re-read live, strip stage/* labels, close the parent as completed with one budgeted comment naming each child and its closing PR; any child open -> keep the stage, never stalled, existing stage/stalled removed. Parents never go to stage/090. Fixes #12857 Signed-off-by: Andrew Anderson <andy@clubanderson.com>
…arking issues (#12852) * ✨ Let Hive resolve non-risk issue decisions Signed-off-by: Andy Anderson <andy@clubanderson.com> * 📖 Refresh issue ranking citation Signed-off-by: Andy Anderson <andy@clubanderson.com> * 🐛 Keep retired decision labels refused Signed-off-by: Andy Anderson <andy@clubanderson.com> * 🐛 Keep issue decision policy in client constructor Signed-off-by: Andy Anderson <andy@clubanderson.com> * 🐛 Downgrade legacy issue park stage requests Signed-off-by: Andy Anderson <andy@clubanderson.com> * 🐛 Update issue-stage guard tests Signed-off-by: Andy Anderson <andy@clubanderson.com> * ✅ Cover decision policy branches Signed-off-by: Andy Anderson <andy@clubanderson.com> --------- Signed-off-by: Andy Anderson <andy@clubanderson.com>
* docs: document HIVE_REPO_SCOPE in env-var references The rows planned in the closed-by-sweep PR were never added. Closes the remaining gap on the repository-selection issue. Signed-off-by: Andrew Anderson <andy@clubanderson.com> * changelog: fragment for #12867 Generated by changelog-fragment-guard from the PR title (#5675). Edit the wording freely, or replace this file with the no-changelog label if the change is not user-visible. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: clubanderson <407614+clubanderson@users.noreply.github.com> --------- Signed-off-by: Andrew Anderson <andy@clubanderson.com> Signed-off-by: clubanderson <407614+clubanderson@users.noreply.github.com> Co-authored-by: clubanderson <407614+clubanderson@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Fixes #12819 Require hive fix-pr pushes to carry matching Signed-off-by trailers, distinguish hive-authored unsigned DCO commits from contributor/unknown commits, and route already-adopted PRs to in-place rewrite or re-home repair accordingly. Signed-off-by: Andy Anderson <andy@clubanderson.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
…ub/workflows/ (#12872) canPushToPRBranch chose in-place adoption from head identity and maintainer_can_modify alone. GitHub rejects an App-token push that creates or updates a workflow file without the workflows permission, so a base-sync across a .github/workflows/ change was undeliverable. Compare head...base first and supersede when workflows changed or the compare fails (#6985 stays open). Fixes #12865 Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
…e false positives (#12861) Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: clubanderson <407614+clubanderson@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
…promotion (#12877) The contributor-lane merged-history ratchet ran for any author the registry/claim path had not admitted, including one the operator had set to the revoked tier, and its revert check only looked at the author's own PR titles, so PRs a maintainer later reverted still counted as clean. Skip the ratchet when the registry tier is revoked, and index merge-commit SHAs and quoted titles from every merged revert PR in the window so a reverted history blocks promotion the way the audit comment says it does. Fixes #12874 Signed-off-by: sec-check <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: sec-check <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* 🐛 fix(escalation): require independent shared-CI control Hive-Run: tuna-os#2 Hive-Plan: Upstream repo-wide CI control Hive-Spec: escalation-circuit-breaker#shared-ci-control Signed-off-by: James Reilly <jreilly1821@gmail.com> * 🧪 test(escalation): keep staleness fixture PR-local Use a distinct failing check on the human PR so the staleness test does not intentionally trigger the new independent-control shared-CI classification.\n\nHive-Run: tuna-os#2\nHive-Plan: Upstream repo-wide CI control\nHive-Spec: escalation-circuit-breaker#shared-ci-control Signed-off-by: James Reilly <jreilly1821@gmail.com> --------- Signed-off-by: James Reilly <jreilly1821@gmail.com>
…d head (#12879) * 🐛 fix(stage-labels): post the 085/090 entry comment once per stage and head Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * 🐛 fix(stage-labels): give once-per-head entry comment test a head the verdict stub recognises Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> --------- Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
Automated pin bump (#8419). Digests recomputed from the downloaded release artifacts by src/scripts/cli-pin-bump.sh: VERSION=18.12.1 SHA256_AMD64=16181401e616d7d895bae31fa97476f1513d4080807d60d3a1a04006191a1bb3 SHA256_ARM64=16545d7e747b31dbc66f2bcd63f24f12dc1dc7e944767b09b0df6591bf826a93 Signed-off-by: hive-release[bot] <hive-release@hive.kubestellar.io> Signed-off-by: clubanderson <407614+clubanderson@users.noreply.github.com> Co-authored-by: hive-release[bot] <hive-release@hive.kubestellar.io>
…2884) When a revisit was in flight and its TTL expired, the planner cleared every pending entry for the head and re-kicked the full perspective set. Expiry already drops only the timed-out entries, so keep the rest and re-ask only the missing perspectives. Closes #12883 Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
Hive-Run: #12821 Hive-Plan: issue-12821 offline-grace example correction Hive-Spec: StageLabelsConfig#EffectiveContributorGraceOffline Signed-off-by: Karibhou <157208370+Karibhou@users.noreply.github.com> Co-authored-by: Karibhou <157208370+Karibhou@users.noreply.github.com>
Negotiate per-Hive repository selections before polling and decline stale or unknown assignments before credentials or quota accounting. Expose unsupported subscriptions in hivectl and preserve legacy projections. Hive-Run: #12806 Hive-Plan: issue-12806-relay-scope Hive-Spec: issue-12570#4 Signed-off-by: Karibhou <157208370+Karibhou@users.noreply.github.com> Co-authored-by: Karibhou <157208370+Karibhou@users.noreply.github.com> Co-authored-by: hivecommons-hive[bot] <280983584+hivecommons-hive[bot]@users.noreply.github.com>
…at (#12886) Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
… per self sweep (#12895) Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
…et (#12896) The Tagged Release workflow's 'Compile changelog.d fragments' step rejects changelog.d/changed-repo-scope-env-rows.md because a fragment must begin with a '- ' entry bullet. Prefix the single entry so the release derivation on v5 goes green again. Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
* 🐛 fix(review): stop unsafe contributor follow-up pushes Signed-off-by: Andy Anderson <andy@clubanderson.com> * 🐛 fix(review): keep non-app review prompts comment-only Signed-off-by: Andy Anderson <andy@clubanderson.com> --------- Signed-off-by: Andy Anderson <andy@clubanderson.com>
Forward-merge of the v5 commits that landed after the #12903 merge base (v5.186.0–v5.186.4). Conflicts: - src/pkg/config/config.go: v6 split this file; v5's FixHumanPRs / FixHumanPRsEnabled comment rewording (#12897) ported into review_config.go. - src/go.sum: x/net 0.61.0 + x/text 0.43.0 from v5; `go mod tidy` pulled x/sync 0.24.0 as x/net's requirement. - src/pkg/review/dispatch_test.go: both-added tests kept (v6 TestRejectVerdictProducesHold, v5 TestPlanDispatchFixesKnownHiveNormalizedAggregateDespiteStaleHumanHold). - changelog.d/changed-agent-issue-decision-policy.md: deleted (released in v5.186.0); the v6-only comment-path extension gets its own fragment. Also folds in the docs-currency review on #12903: hive-open-issue.md, agent-configuration.md and operator-reference.md now name the `comment --needs-decision` path and the typed owner-step exemption. Signed-off-by: Andrew Anderson <andy@clubanderson.com>
v6 moved 12 commits while #12903 was open. Conflicts in src/pkg/review/review.go and collect_merge_test.go: v5's retainsOverIncomplete guard (#12909/#12914) and v6's FirstRecordedAt preservation (#12960) both live in CollectAndMerge; kept both, the incomplete-coverage `continue` runs before the first-recorded carry-over. Signed-off-by: Andrew Anderson <andy@clubanderson.com>
750b523
ℹ️ Sentinel notice — informational; author is trusted (hive agent), merge is not blockedHive flagged this PR (author @hivecommons-hive[bot], head
Hive did not add the |
The v5->v6 merge bumped golang.org/x/sync to v0.24.0 in src/go.mod; the NOTICE drift check compares byte-for-byte, so update the two version lines. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
|
hive/awaiting-ci: pushed ce00e9b refreshing NOTICE (golang.org/x/sync v0.23.0 → v0.24.0, the only drift reported by 🐝 Hive Agent: — hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88 |
|
Hub-admin audit of this forward-merge (same method as #12835), plus the top-up the owner asked for. Audit of the agent's merge Decision on the open Top-up pushed to this branch (v5 had moved 28 commits, v6 12):
Local gates at head: /lgtm |
|
LGTM label has been added. DetailsGit tree hash: ed717a13cec4a987bdd1e80ef0e54bc885266f81 |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: clubanderson The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
ce00e9b
ℹ️ Sentinel notice — informational; author is trusted (hive agent), merge is not blockedHive flagged this PR (author @hivecommons-hive[bot], head
Hive did not add the |
|
Thank you for your contribution! Your PR has been merged. We'd love to hear how your experience was: share feedback |
The automated v6 Top-up workflow on
v5(run https://github.com/hivecommons/hive/actions/runs/39115606063) stopped with "v5 -> v6 forward-merge conflicts and needs a human". This PR is the manual forward-merge it asked for:git checkout -B sync/v5-to-v6 origin/v6 && git merge --no-ff --signoff origin/v5(31 v5 commits since merge-basef0307339f), conflicts resolved, merge commit DCO-signed. Precedents: #7199, #8854, #8886, #12835.No new changelog fragment: the 31 v5 commits already carry theirs.
Conflicted files (49) and how they were resolved
Policy mirrors (30 files) —
src/policies/{architect,ci-maintainer,guide,scanner,sec-check,strategist}-*.mdand theirsrc/pkg/policies/defaults/mirrors. v6 reworded the park bullet (hive-open-issue comment … --needs-decision); v5 renamed the issue park stage 085 →stage/045-needs-decision(#12856) and added the "Owner rule for Hive-authored issues" paragraph (#12852). Resolution keeps v6's wording with the 045 label plus v5's owner rule andneeds-humanbullet. Each hunk was resolved by a script that asserted the expected base/ours/theirs shape.src/policies/*.mdandsrc/pkg/policies/defaults/*.mdare byte-identical (checked withcmp; only README differs, as on v6).src/pkg/config/config.go— v6 split this file. Kept v6'sconfig.goand ported v5's hunks into the split files:project_config.go:AgentIssueDecisionPolicy,ProjectAgentIssueDecision*,EffectiveAgentIssueDecisionPolicy.review_config.go:AutoMergeConfig.ContributorTier,ContributorTierAutoMergeConfigand its default/Effective…/Validate, and theMigrateReviewFixHumanPRscomment/log wording.validate.gohad already auto-merged.Dashboard Go/JS (
bands.go,api_hive_advice.go,overview_status.go,overview_export_9102_test.go,static/index.html) — kept v6's structure (v6 removed the advisorBlocked/NeedsDecision/Discussingfields and redesigned the parked band) and ported 045:needs-human, stage/045, stage/085 (pre-045), needs-direction, needs-decision, needs-spec, blocked, identical in Go, theREPO_ISSUE_BAND_DEFAULTScopy in index.html, the test, and the dashboard.md example.prHumanGateLabelsusesprNeedsDecisionLabel.src/pkg/scheduler/kickmessage.go— v6'srefsOnly ...boolsignature combined with v5'sprListItemsForAgent(held PRs in reviewer kicks, #12873).src/pkg/github/*:client.go: v6RepoWorkIssuefields + v5Children.issue_unpark_command.go: v6 implementation (configured parking labels,blocked,/hive done,renderUnparkLabelDrivenReply), with v5's pre-045stage/085(legacyIssueNeedsDecisionStageLabel) added toissueParkingLabels/unparkRemovableLabels, and comments updated to 045.issue_request_watcher.go: v6issueOwnerStepBodywrapping v5'screateBody(decision downgrade). The owner-step marker is applied only when the park was not downgraded. v5'sagent_issue_decision_policygate (✨ Let Hive agents resolve non-risk engineering questions instead of parking issues #12852) was also extended to v6'scomment --needs-decisionpark path via a newissueDecisionDowngradeForComment: under the defaultresolvepolicy a Hive-authored non-risk comment no longer adds the park label or the owner-step marker and instead records the decision in the comment. v6's comment-park tests were pinned toescalateso they keep asserting the park; new tests cover the downgrade. The changelog fragmentchanged-agent-issue-decision-policy.mdwas reworded to name the comment path.issue_request_needs_decision_test.go: union of v6 comment-park tests and v5 resolve-policy tests. v5's helper was adapted to v6's[]issueCreatePayloadserver.bin/contributor-relay.js:advanceActiveHub: v6's two-pass open-socket preference, with v5'shubHasSelectedWorkas the eligibility test.auth_ok: v6declareStandby(hub)followed by v5's repo-scope negotiation.Docs (
dashboard.md,dashboard-sections.md,labels-and-control-signals.md,maintainer-commands.md,running-at-level-6.md,scale-envelope.md,design/agent-turn-model.md) — kept v6 text and folded in v5's 045 rename, the decision-policy paragraph, and the DCO-rehome wording. Line citations follow v6's split file layout;scale-envelope.mdRankActionableIssueswas re-pointed toclient.go:4096-4106.server.gowas not touched, so the API-reference citation fixer was not needed.Small follow-on edits tied to the merge
dashboard/ownership.go: the decision parking bucket also matchesstage/085-needs-decision. Without this, a 085 PR, which v6 read as a parked decision, would fall through to "gated by label" once the default bucket became 045. This also keeps the existing "waiting labels = parking labels + blocked" test invariant.dashboard/bands.goissueLabelChip: a pre-045 085 issue shows the DECISION chip.bin/contributor-relay.jsmaybeAskActiveHubForWork: newSTANDBY_MODEearly return. It bridges v6'sdeclareStandbywith v5's repo-scope negotiation so therepo_scope_ackand profile-reload paths cannot leak areadyfrom a standby relay (v6's guard lived only inauth_ok).github/issue_request_watcher.goissueDecisionDowngradeForCreate/issueDecisionDowngradeForComment: a request carrying a typed owner step (req.OwnerStep != nil, a v6 concept) is never downgraded, because it proposes an action only an owner can take.github/issue_request_watcher.goremoveDecisionParkLabels: now iterates a dedicatedissueDecisionParkLabelslist instead ofissueParkingLabels. v6 addedblockedtoissueParkingLabels, so the v5 downgrade helper would otherwise stripblockedbefore the reserved-label check and silently accept astage/045-needs-decision+blockedlabel request that both branches refuse on their own. Regression tests:TestIssueRequestWatcher_LabelDowngradeKeepsBlockedReserved,TestRemoveDecisionParkLabelsKeepsOwnerHolds.Needs reviewer attention
src/pkg/github/issue_request_watcher.go: thecomment --needs-decisiondowngrade, the owner-step exemption and theremoveDecisionParkLabelsnarrowing above are behaviour changes written during the merge rather than on either branch. The comment-path downgrade changes v6's default comment-park behaviour for Hive-authored non-risk questions (it matches what v5 ✨ Let Hive agents resolve non-risk engineering questions instead of parking issues #12852 does on the issue and label paths); reviewers who prefer v6's unconditional park should say so.src/pkg/dashboard/ownership.go/bands.go: the stage/085 handling described above is new code written during the merge.src/pkg/config/project_config.go/review_config.go: these are hand-ported from v5's monolithicconfig.go.Not run locally: CI validates. Only
gofmt -l(clean) andnode --check bin/contributor-relay.jswere run.— hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88