Repository navigation
🌱 chore: forward-merge v5 -> v6 (full catch-up through 12cf5e745, 283 commits, hand-resolved) - #14399
Conversation
#13984) * ✨ Tracker: 'Let hive decide' delegated decision for needs-human items Owner-delegate policy package, decisions.delegate setting, delegated decision endpoint + job, queue-approval note helper. Signed-off-by: Andy Anderson <andy@clubanderson.com> * ✨ Tracker: 'Let hive decide' delegated decision — UI, JS tests, docs, changelog Signed-off-by: Andy Anderson <andy@clubanderson.com> * 📖 docs: resync scale-envelope citation shifted by QueuePRAutoMergeWithNote Signed-off-by: Andy Anderson <andy@clubanderson.com> * 🌱 config: add decisions block to agent-runtime golden fixture Signed-off-by: Andy Anderson <andy@clubanderson.com> * 🌱 Let hive decide: OpenAPI entry, dashboard import allowlist, settings-parity leaf references Signed-off-by: Andy Anderson <andy@clubanderson.com> --------- Signed-off-by: Andy Anderson <andy@clubanderson.com>
* 🐛 fix: recover stalled in-place adoptions through supersede Keep rebase work in the existing fixer lane, then re-home idle heads instead of parking them. Recover lost push access and squash attribution failures immediately while retaining diff fences and mutation gates. Hive-Run: #13975 Hive-Plan: adoption-repair-fallback Hive-Spec: issue-13975#expected-1-3 Signed-off-by: mendezr <mendezr@users.noreply.github.com> * 🐛 fix: require confirmed push denial before rehoming adoptions Keep live in-place adoptions on transient API failures, omitted access evidence, and unrelated base workflow drift. Name hold, human-verdict and head-ownership blockers accurately in sign-off stall notes, with regression coverage. Signed-off-by: mendezr <mendezr@users.noreply.github.com> --------- Signed-off-by: mendezr <mendezr@users.noreply.github.com> Co-authored-by: mendezr <mendezr@users.noreply.github.com>
… items blocked on their PR (#13990) * ✨ review: verdict labels, decided-only backlog in heads mode, backlog items blocked on their PR review.verdict_labels mirrors each PR head's review state onto one label (reviewing / approve / changes_requested / requires_human), independent of the automerge engine's stage labels; never created, never blocking. With review_heads, backlog routing runs only on the decision step's decided reports (raw head reports filed near-duplicates that spent the daily cap), and the decided review lists its follow-up items in place. Every review-backlog item is parked on the PR it was filed from, in every destination. ReconcileReviewBacklogBlocks lifts the block when the PR merges and cancels the item when it closes unmerged (GitHub: closed as not planned; Linear: the team's canceled state). Fixes #13833 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CoYvUkv8Gp4AHGWLo97nqb Signed-off-by: Gregory Hunt <greg@on-board.ai> Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * 🐛 review: fix CI — verdict_labels omitzero in JSON, label order, staticcheck Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CoYvUkv8Gp4AHGWLo97nqb Signed-off-by: Gregory Hunt <greg@on-board.ai> Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * 🌱 review: drop duplicate reviewBacklogLedgerMu after rebase onto v5 v5 already declares the ledger mutex (#13914) and fileOutOfScopeReviewBacklog already holds it; keep that declaration and name the block sweep among its writers. Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * ✨ review: unblock and re-triage backlog items when their PR closes unmerged Per the maintainer decision on #13849, ReconcileReviewBacklogBlocks no longer cancels a review-backlog item when the PR it was filed from closes without merging. It drops the block, comments "source PR #N closed unmerged — re-triage against current base" and leaves the item open for normal triage and dedupe: a closed PR is often superseded by one that lands the same lines. Closing as not planned stays a human (or /fixed) action. Removes the resolver's CancelItem (GitHub not_planned close, Linear canceled state) and adjusts tests, docs and the changelog fragment. Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> --------- Signed-off-by: Gregory Hunt <greg@on-board.ai> Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: Gregory Hunt <greg@on-board.ai> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
…longer imports crux/agent (#13982) * refactor(crux): make crux.Process its own type so the crux root no longer imports crux/agent crux.Process is now a snapshot struct crux/agent copies out of its AgentProcess; ProjectContext, RingBuffer, the Copilot-token constants, GitHubTokenLogin, DefaultAgentMode, AgentAvailableAtACMMLevel and the fatal-network pane patterns are defined in the crux root and aliased or forwarded by crux/agent. crux.FromManager becomes agent.AsRuntime, and the pane classifiers that share tables with the pane poller move to the new crux/paneclass leaf. This removes the crux -> crux/agent edge that made folding crux/types into the root an import cycle. Refs #13963 Refs #13536 Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * test(crux): cover Process pane capture, ProjectContext scope/pause and RollUpProviderStatus in the module root The coverage gate floors the crux root package at 90% and the previous push measured 50.0%: process.go, project.go and provider_status.go moved in without their tests. Brings the ProjectContext scope/pause tests over from crux/agent and adds pane-capture and provider roll-up cases. Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * test(crux): cover GitHubTokenLogin through a local endpoint seam The crux root dropped to 81.9% against the 90% floor after the move: GitHubTokenLogin hit a hard-coded https://api.github.com/user with no test seam. Route it through package-level gitHubUserURL/gitHubUserClient and exercise the success, non-200, malformed-body, transport-error and bad-URL branches against httptest. Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * docs(crux): point Process slice at #13962 and rename changelog fragment Hive-Fix-Attempt: 1/6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: architect <280983584+hivecommons-hive[bot]@users.noreply.github.com> --------- Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Signed-off-by: architect <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…#13981) Signed-off-by: Andy Anderson <andy@clubanderson.com>
Refs #13536 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: Copilot <223556219+Copilot@users.noreply.github.com>
…cal 085 cases (#14000) * ✨ delegatedecision: LLM-backed owner-delegate decider for non-mechanical cases Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * 🐛 dashboard: reference decisions.delegate.llm.model so settings parity passes Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> 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> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…feed (#14015) ReconcileSeededDefaults warns once per policy template whose on-disk copy diverges from the embedded default with no seed-manifest record. #13853 deduped that warning per path per process, but a hive whose /data/policies predates the seed-manifest tracking (#9428) still has every embedded template diverge on its first post-upgrade reconcile — up to one WARN per template within a single boot, each file warning only once but all sharing the same constant message text. The generic unclassified_error_repeated catch-all (pkg/fleetreport/slogfeed) keys on the message alone, so that one-time multi-file burst still crosses its 5-in-10-minute threshold and re-opened the same self-report (#13825, #13835, #14005) even after #13853 had already merged. Add the message to IsBenignMessage's skip list, the same treatment already given "review pending expired": a burst across unrelated items (there, PRs; here, policy files) is not a repeated runtime defect. The underlying per-template warning is unchanged and still reaches the container log and the dashboard-facing advice. Closes #14005 Hive-Run: #14005 Hive-Plan: fleet-report benign-message skip-list (unclassified_error_repeated) Hive-Spec: fleet-report.md#unclassified_error_repeated Signed-off-by: hanthor <jreilly1821@gmail.com>
…wn governor mode (#14004) evidenceGovernorMode always returned GetState().Mode (the fleet-wide cadence), so an Evidence view filtered to ?repo= judged that repo's opens:merges ratio against the fleet band even when the governor runs per-repo cadence scope and has a distinct mode for that repo in State.RepoModes. A repo sitting QUIET inside a SURGE fleet therefore read as 'backlog growing' against the fleet's drain band instead of its own scouting band. evidenceGovernorMode now takes the repo filter, prefers that repo's RepoModes entry (case-insensitive, matching the rest of this file's repo filtering) and falls back to the fleet mode when the repo has none (aggregate cadence scope, or a repo the governor has no snapshot for). Unfiltered (repo="") callers are unaffected. Hive-Run: #13992 Hive-Plan: evidence-opens-merges-repo-governor-mode Hive-Spec: issue-13992#per-repo-governor-mode Signed-off-by: hanthor <jreilly1821@gmail.com>
…ew follow-up) (#14007) * 🐛 delegatedecision: tie LLM verdicts to their recording actions Review findings on #14000: - A non-park-keeping reply could un-park an item with a bare labels-remove of stage/085-needs-decision — no /hive decision comment, no marker, no RecordOperatorIssueDecision. The park label is no longer removable by the model (LLMRemovableLabels); only comment-decision or close-as-duplicate lifts the park, and every acting verdict must carry its recording action. - close-as-duplicate from the model closes the newer item only (target < number), matching the dedupe rule; a contributor PR may still yield to the hive's newer PR under close-superseded. - Verdict and actions are validated together (checkVerdictActions): the close verdicts require close-as-duplicate, adopt-supersede its action, approve on a PR approve-review, and those acting kinds appear only with their verdict — so the job and audit log never record a verdict the executor did not carry out. Hive-Fix-Attempt: 1/6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: ci-maintainer <280983584+hivecommons-hive[bot]@users.noreply.github.com> * 🐛 delegatedecision: expect the hold refusal in the held RunWithLLM case ApplyRails records "held: all actions refused" for a held item, so the refusals assertion added alongside the verdict/action tie must expect one refusal there, not zero. Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> --------- Signed-off-by: ci-maintainer <280983584+hivecommons-hive[bot]@users.noreply.github.com> Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: ci-maintainer <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* 🐛 fleetreport: stop retrying cleared comments refused with 403 Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * docs: refresh RankActionableIssues citation after client.go shift 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>
…ndshake errors (#14022) Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
…14036) Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
…n denied (#14030) * 🐛 review evidence: stop retrying bundle writes refused with permission denied Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * changelog: fragment for #14030 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: hivecommons-hive[bot] <280983584+hivecommons-hive[bot]@users.noreply.github.com> * chore: format changelog fragment as entry bullet Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> --------- Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Signed-off-by: hivecommons-hive[bot] <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…ror feed (#14048) logCopilotModelFallback warns once per agent per (requested, running) model tuple when the Copilot CLI rejects --model and runs another model (#13659), and the poller already surfaces the substitution on the agent's LastError. The generic unclassified_error_repeated catch-all keys on the message alone, so a hive whose copilot agents share one model id the account's CLI rejects has every agent warn once in the same boot — six WARNs in ten minutes on the reporting hive (requested claude-sonnet-4.6, running auto) — and crosses the 5-in-10-minute threshold even though no single agent repeats. Add the message to IsBenignMessage's skip list, the same treatment given the policy-seed-divergence burst (#14005): it is an operator configuration condition, not a repeated runtime defect. The per-agent warning and LastError are unchanged. Closes #14020 Hive-Run: #14020 Hive-Plan: fleet-report benign-message skip-list (unclassified_error_repeated) Hive-Spec: fleet-report.md#unclassified_error_repeated Signed-off-by: Danathar <Danathar@users.noreply.github.com> Co-authored-by: Danathar <Danathar@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…eue (#14046) A repository whose ruleset requires GitHub's merge queue answers the REST merge with 405 "Repository rule violations found ... Changes must be made through the merge queue". The sweeps returned merge-failed with the error, so every pass logged a WARN per candidate PR and the fleet reporter filed it as unclassified_error_repeated. Classify that 405 as the merge-queue-required skip reason at all four sweep merge sites (self-authored, trusted-author, queued, contributor lane). The stage engine keeps it at 100-merge-queue, as merge-failed was. Closes #14018 Hive-Run: #14018 Hive-Plan: selfreport-unclassified-error-repeated Hive-Spec: automerge-sweep#merge-queue-required Signed-off-by: Danathar <Danathar@users.noreply.github.com> Co-authored-by: Danathar <Danathar@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
The scanner's merge sweep and CI-repair pass read `gh pr checks` once for each of many PRs. The guard counted every read, so a sweep of four PRs crossed the threshold two minutes into a kick and was self-reported as "polling CI on its own PR". Waiting on one PR re-reads the same target, so only command lines run more than once now count toward the nudge threshold and the ci_poll_nudge self-report. The wall-clock trigger for a single blocking `gh run watch` is unchanged. The reviewer-lane report in the issue predates the reviewer exemption (#13899). Closes #14016 Hive-Run: #14016 Hive-Plan: ci_poll_nudge sweep vs poll Hive-Spec: issue-14016#acceptance Signed-off-by: Danathar <Danathar@users.noreply.github.com> Co-authored-by: Danathar <Danathar@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.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>
…lures, stop repeating the automerge skip line (#14052) 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: Copilot <223556219+Copilot@users.noreply.github.com>
* 🐛 fix: queue delegated supersede decisions for adoption Hive-Run: #13987 Hive-Plan: 13983-item-3 Hive-Spec: delegatedecision#adopt-supersede Signed-off-by: thatguywob <thatguywob@users.noreply.github.com> * 🐛 fix: consume delegated supersede request after one attempt The adoption/supersede label was only cleared once a superseding PR existed, so a persistent push/PR-create failure (the state the 085 supersede-failed route reports) re-ran the adoption every sweep. Clear the label after any recorded attempt so the request is one retry and a failure re-parks the PR at 085 for the owner; deferrals (hold label, unreadable fence) record nothing and keep the label. The dashboard now refuses the supersede action when governor.labels.stage.adoption is off instead of queuing a label the engine never consumes. Hive-Run: #13987 Hive-Fix-Attempt: 1/6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: ci-maintainer <280983584+hivecommons-hive[bot]@users.noreply.github.com> --------- Signed-off-by: thatguywob <thatguywob@users.noreply.github.com> Signed-off-by: ci-maintainer <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: thatguywob <thatguywob@users.noreply.github.com> Co-authored-by: ci-maintainer <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…14043) * 🐛 labels: stop re-provisioning stage labels on archived repositories Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * 🐛 labels: memoise archived repos on the EditLabel path too (review follow-up) Apply the same 403+archived check to the EditLabel error so an archived repo whose stage labels exist with drifted colour is skipped on later sweeps instead of logging a provisioning failure every cycle. Add a sweep-level test running SyncIssueStageLabelsWith twice against the archived 403 server, asserting one POST and one archived warning, plus a direct test for the edit path. Hive-Fix-Attempt: 1/6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> 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> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
) * ✨ contribute: expire and revoke contributor registration tokens Persist issuance, expiry and activity metadata; migrate existing credentials, enforce lifetime and optional idle limits, and expose recovery and incident-response controls in Management, the API and hivectl. Preserve token authority across stale profile saves and bind live sessions to the handshake credential. Hive-Run: #13804 Hive-Plan: contributor-registration-token-lifecycle Hive-Spec: issue-13804#acceptance Co-authored-by: clubanderson <407614+clubanderson@users.noreply.github.com> Signed-off-by: mendezr <mendezr@users.noreply.github.com> Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * 🐛 fix: tolerate version drift on token last-used touch; repair failing tests - authenticateContributorToken no longer fails a valid token when the last-used bookkeeping write loses a version CAS race: touchLastUsed reloads the profile, updates only TokenLastUsedAt while the same token hash is stored, retries on conflict and never reports failure. Writes are throttled like the WS heartbeat (which now shares the helper). The one-time migration write stays strict. - Document GET /api/contribute/token and the two token revoke routes in dashboard/openapi.json (TestOpenAPISpecCoversEveryRegisteredRoute). - Add examples to hivectl contribute commands (TestCommandTreeHasExamples). - Classify /api/contributors as hub-private in the landing fetch guard. - Allowlist contribute.token_max_age / token_idle_max for settings parity. Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * 🌱 test: cover hivectl contribute login branches for the coverage floor Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * 🌱 dashboard: drop unused contributorProfileFromRegistrationToken helper The helper had no production caller and was bound to the default token policy, so a future caller would silently ignore contribute.token_max_age and contribute.token_idle_max. Tests now authenticate through the server's configured policy instead. Refs #13912 Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * 📖 docs: refresh contributor API source citations after rebase Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * 🐛 contribute: return revoked profiles so callers audit the refusal Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> --------- Signed-off-by: mendezr <mendezr@users.noreply.github.com> Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: mendezr <mendezr@users.noreply.github.com> Co-authored-by: clubanderson <407614+clubanderson@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
…14023) * 🐛 ledger: reconcile or time-box issue_comment ops stuck in Unknown Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * docs: refresh RankActionableIssues citation after client.go shift 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> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Project recorded repository token-mint exclusions into ready counts and withheld diagnostics, including their expiry. Preserve repo_unmintable on subsequent ready requests while allowing healthy repositories and expired exclusions through. Hive-Run: #14003 Hive-Plan: issue-14003-expected-behavior Hive-Spec: issue-14003#expected-behavior Signed-off-by: arteeh <arteeh@users.noreply.github.com> Co-authored-by: arteeh <arteeh@users.noreply.github.com> Co-authored-by: thatguywob <343366780+thatguywob@users.noreply.github.com>
Subtract per-command baseline counts before classifying repeated CI reads. Successive scanner sweeps can revisit the same PRs without being mistaken for an own-PR wait loop. Hive-Run: #14061 Hive-Plan: isolate-ci-poll-counts-per-kick Hive-Spec: #14061 Signed-off-by: arteeh <arteeh@users.noreply.github.com> Co-authored-by: arteeh <arteeh@users.noreply.github.com>
…and stop re-warning 405 rule violations (#14071) Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
nudgeIfPollingCI's wall-clock trigger fired on any poll seen more than ciPollNudgeWallClock into a kick, so a scanner reading each PR once late in a long kick was told to stop polling. Skip that trigger when the polls since the kick are a sweep (more than one, none repeated). A lone poll, the blocking `gh run watch` the trigger exists for, and any repeated read are still nudged. Hive-Run: #14066 Hive-Plan: review-backlog intent-alignment (PR #14063 follow-up) Hive-Spec: ci-poll-nudge#wall-clock-sweep Signed-off-by: Danathar <Danathar@users.noreply.github.com> Co-authored-by: Danathar <Danathar@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ckend (#14078) Port of #14060 and #14070 from v6. On the next v5 → v6 top-up, v6's version wins. Closes #14059 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: Copilot <223556219+Copilot@users.noreply.github.com>
The CI Runner Image PR gate installs gh=${GITHUB_CLI_VERSION} from
cli.github.com, which only serves the newest patch; 2.103.2 was replaced
by 2.103.3 on 2026-10-27, the same drift #14341 fixed for 2.102.0. v5
carries the same pin and will need the same bump.
Signed-off-by: Andrew Anderson <andy@clubanderson.com>
🛑 Fix loop escalated — human attention neededThis PR has failed CI on 3 distinct fix attempts (new commits, still red). The hive has stopped dispatching further automated fixes for it. Failing checks: DCO Raw failure evidence (from check-run annotations): Remove the |
#14596 moved the knowledge-export helpers out of bin/contributor-agent.sh into bin/lib/knowledge-export.sh; the v5-side omnigent link case (AGENTS.md + CLAUDE.md) is re-homed into link_backend_knowledge there, with a contributor-agent.test.sh case covering it. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: adjudicator <280983584+hivecommons-hive[bot]@users.noreply.github.com>
|
Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits. 📝 Please follow instructions in the contributing guide to update your commits with the DCO Full details of the Developer Certificate of Origin can be found at developercertificate.org. The list of commits missing DCO signoff:
DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
There was a problem hiding this comment.
Reviewer adjudication: REPAIR — evidence: all 60+ CI checks green; probot DCO failure is the expected forward-merge artifact (prow dco passes, label dco-signoff: yes) and tide ERROR reflected mergeable=CONFLICTING after v6 gained #14596, which moved the knowledge-export helpers out of bin/contributor-agent.sh into bin/lib/knowledge-export.sh; changes: merged origin/v6 (374e243) into sync/v5-to-v6 (84dad80, signed off) taking v6's source line and re-homing the v5-side omnigent link case (AGENTS.md + CLAUDE.md) into link_backend_knowledge in the lib, plus an omnigent case in bin/contributor-agent.test.sh; verified lossless: every file touched by #14596 differs from the worktree only by v5-side content (omnigent backend, BOB_API_KEY rename, src/crux paths, agy quota windows, apptainer exec target); tests: bash bin/contributor-agent.test.sh (all suites pass, exit 0); bash -n on both scripts; new assertion confirmed failing against the v6 lib without the ported case; remaining risk: v5 has gained 3 further commits since 12cf5e7 that are not in this PR and will ride the next forward-merge
— hive: agent=adjudicator backend=copilot model=claude-fable-5.1 copilot=1.0.88
84dad80
ℹ️ 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 |
…to the crux module v6 relocated pkg/agent and pkg/crux into the crux module (#14399), so the new repeat-failure files move to crux/agent and the status types to package crux. Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
Forward-merge of
origin/v5(12cf5e7) intov6(9170788):git merge --no-ff --signoff origin/v5on origin/v6, all 283 v5 commits, hand-resolved, plus two follow-up merges for the commits both branches gained while the first round was in review (v6 #14574; v5 #14585, #14583, #14579, #14580, #14571, #14427, #14428, #14588, #14593). Replaces the earlier two-slice plan (slice 1 of 2 through 25dd844) with the full catch-up.Fixes #14340
Conflict map (136 files, first round)
TestAdoptedLostPushAccessOnForkIsRefusedImmediately);verdict_label_sweep_testplain RemoveLabel case adapted to observed-state semantics.agent.NewManagertocruxtest.NewRuntime./agents stuck,/agents <name> status, "which agent completed last",/prs waiting on review(dead helpers removed; v6 test rows adapted to v5 answers).!commands dispatch to the chat spine before any local answer (v6 conformance). Unrouted plain text returns v5'sresponder_unavailable(v6 clarify test adapted fromfallback). v6-only kept: chat spine, Nous layout, finisher chip, request log, actions JWKS, krun console, spek hub executor, Spek recheck, ioscan classifier controls.settings_parity_allowlist.txtpruned (v5 UI now referencesauto_merge.contributor_tier.auto_promote_after_merged,auto_merge.human_merge_paths.<key>). v6 merge-lane panel PR links made forge-aware (v5 #14115 test).api-reference.mdcitations regenerated (check-api-reference-citations.sh --fix, 0 unresolved).src/cruxas its own module (github.com/hivecommons/hive/crux,replace => ./crux; crux must not import root). Every v6-only change undersrc/pkg/agentandsrc/pkg/sandboxcarried tosrc/crux/agent/src/crux/sandbox(taskmcp, logread, advisorhook, ModelRole, Host additions, SendKickWithSource, OmpAgentHomes, ClassAgentGitHubCapReached, advisor lane #9722);src/pkg/agentremoved; imports repointed.cruxtest.RuntimegainedSetSandboxLauncher;crux/apiHostSetters gained the advisor resolvers (in-process only); api/client parity test covers the new methods.agent_github_api_cap_reachedclass and advisor (omnigent) rows. standby-floor writer exception repointed tocrux/config/.pkg/dashboard: 11(spek hub executor Headless*/UIDMap/proxy env - follow-up), dashboard import allowlist:pkg/logscrub->crux/logscrub,crux/agentadded with justification.v2-tests.ymlandcoverage-hourly.ymltaken, v6 deltas re-applied;crux/agentfloor 88.bin/test_hive_open_issue.shpasses.--needs-decision/--no-consolidate/--step-kindunion, api-reference per-row union). Stalepkg/agent/doc paths rewritten tocrux/agent/.Second round (16 files, merging v5 through 4d1642c + v6 #14574)
repeat_failure_bash_env{,_test}.gore-homed tosrc/crux/agentwith thecrux/configimport (crux must not import the root module);SetRepeatFailureEnabledResolveradded to the cruxHostinterface,cruxtestrecorder, sidecar (in-process only) andcrux/apiHostSetters. The bot's own re-merge on this branch importedpkg/configfrom crux and was replaced.Route.ManualMerge+ v5HumanApprover/ManualMergeRule/LaneReason(#14579);auto_merge.credit_issue_authors(#14585) applied inreview_config.gowhere v6 movedAutoMergeConfig.blockedparam,Notice = !blocked);sentinel_sweep.gokeeps the v6 adoption handling with v5's one-line change.MergeCreditorauthor cache (NoteIssue, misses included) so a merge-ready PR still costs one issue GET; v5's lane-sidedecisionActionstest dropped (v6 renders actions instagelabels.DecisionActions).stageTrackerSentinel: v5 #14579 supersedes v6 #14053 (cleared label: alert off, findings still fill the tooltip; v6 test row aligned).server.go: v5FleetRun+ v6AdmissionLabels.index.html: v5 attention title + v6 "Hive end to end first" sort.Duplicate forward-ports deduped (one copy kept)
#14455, #14494/#14415, #14376, #14358, #14276, #14279, #14170/#14043, #14105/#14036, #14564, #14315, ioscan #14060/#14070 vs #14078, #14534 (hold guard), #14011, #14480/#14481, #14202/#14181 (405 refusals), #14303 vs #13975, #14541 (feedback JSON guard; supersedes #14548).
changelog.dhas no duplicate fragments.Verification (local, macOS)
go build ./...andgo vet ./...clean insrc/andsrc/crux/;gofmt -lclean.cmd/...,pkg/github/...,pkg/dashboard,pkg/config,pkg/advisor,pkg/chat,pkg/scheduler,pkg/fleetreport,pkg/spektacular,pkg/stageengine,internal/..., all ofsrc/crux).TestBinaryExec_Deadlineflaked once under full-tree load, passes 3/3 alone (unchanged v6 code).pkg/outcomebench(✨ Reproducible mediated-vs-unmediated outcome benchmark with README outcomes block #14588) passes.TestRepeatFailureBashEnv_*fail on macOS bash 5.2 on pristine origin/v6 as well (CI is Linux); not a merge issue.time.Sleepin tests.scripts/check-go-ratchet-completeness.shis not present on either branch.Deferred / follow-ups
pkg/dashboardtocrux/agent(ratchet baseline 11, import allowlist entry) - needs a Host-side seam.SetAdvisorEnabledResolver/SetAdvisorRolesResolver) are in-process only./governor,/knowledge,/spek,/who) stay.Merge as a merge commit (not squash), the same way #13896 (e591959) was merged, so v6 keeps v5's history and the next top-up is incremental.