Repository navigation
🌱 Forward-merge v5 into v6 (125 commits) - #15194
Conversation
* 🐛 fix: opt in to App read tokens for shared-UID agents Mint and refresh read-only per-agent caches when github.shared_uid_read_token is enabled and App auth is configured. Keep shared-UID agents off direct MCP and mint credentials, and document the loss of cross-agent read isolation. Co-authored-by: clubanderson <407614+clubanderson@users.noreply.github.com> Hive-Run: #14778 Hive-Plan: shared-uid-read-token Hive-Spec: issue-14778#proposal Signed-off-by: thatguywob <thatguywob@users.noreply.github.com> * 🐛 fix: record shared-UID token setting parity exception Signed-off-by: thatguywob <thatguywob@users.noreply.github.com> --------- Signed-off-by: thatguywob <thatguywob@users.noreply.github.com> Co-authored-by: thatguywob <thatguywob@users.noreply.github.com>
* 🌱 chore(ci): run action-pins gate self-test Exercise the gate before resolving the repository's action pins. The self-test is provided by #14730. Hive-Run: #14729 Hive-Plan: action-pins-ci-self-test Hive-Spec: #14729#recommendation Signed-off-by: thatguywob <thatguywob@users.noreply.github.com> * 🐛 fix(ci): include the action-pins self-test prerequisite Bring the gate fixes and hermetic self-test from #14730 into this branch so the new workflow step can execute before that prerequisite merges. Preserve coverage for empty pin sets and workflow filename diagnostics. Co-authored-by: quality <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: thatguywob <thatguywob@users.noreply.github.com> --------- Signed-off-by: thatguywob <thatguywob@users.noreply.github.com> Co-authored-by: thatguywob <thatguywob@users.noreply.github.com> Co-authored-by: quality <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ate fixes (#14812) Both admission gates (contributor-lane neutral admission and IssueClaimBlockReason) consulted only the eval-cycle claim ledger, so an issue whose fix a person had just opened as a PR was still dispatched and a second PR appeared; nothing resolved two open same-issue PRs beyond labelling conflicts-with-open-pr and escalating to 085. - Add a live open-PR dispatch guard (IssueDispatchBlockReason, contributor lane hook, claims-ledger fresh-claim admission) that reads the forge, labels the issue has-open-pr and withholds the claim; renewals and PR-backed start signals keep using the ledger-only gate. - Add a duplicate-fix sweep: the earlier green/pending PR wins, the later hive PR is closed with one comment and duplicate-of:<keeper>; escalate to 085 only when the earlier is red/stale and the later green; human PRs are commented on and left open. - scanner.skip_issues_with_open_pr (default true) switches both off. Fixes #14799 Signed-off-by: Andy Anderson <andy@clubanderson.com>
…14813) The relay redials the registry's dashboardUrl with the contributor's token after a TLS altname mismatch. dashboardUrl is spoke-reported, so constrain the redial to https hosts under the hub's spoke domain. 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>
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>
) The duplicate-PR claim ledger only learned which issues an open PR claims from FetchClaimScan on the full reconcile pass; cached eval cycles skip applyDuplicatePRGuard (SkipOptional) and the pull_request webhook patched the PR row but never linked its Fixes #N. An owner PR opened between passes left its issue offerable for up to an hour and the contribute lane handed it to a contributor minutes later. - parse claims from the pull_request payload (same claimsFromPR grammar) and apply them to the ledger via a process-wide PRClaimsHook: open → record, edited/closed-unmerged → release, merged → merged claim - governor hook persists the ledger and re-filters the cached actionable snapshot through FilterClaimedIssues; open-PR link cache invalidated - IssueDispatchBlockReason refuses a closed issue ("issue closed") - webhook response lists claimed_issues; docs + changelog fragment Fixes #14814 Signed-off-by: Andrew Anderson <andy@clubanderson.com>
* ✨ feat(dashboard): show a draft pill in the activity tracker Draft PRs on the Hive activity monitor rendered as a bare "Open · since 18h" row with no status pill, which read as a stuck item. The tracker now derives a muted draft modifier from the PR's draft bit or prow's do-not-merge/work-in-progress label (which it reads as a draft rather than a hold), renders a draft pill with an explanatory tooltip, and shows the Open cell as "Draft · since …" without the stale tint. Hold still leads a draft. Fixes #14572 Signed-off-by: Andy Anderson <andy@clubanderson.com> * 🌱 test(dashboard): PR-row tooltip carries the title before the headline The draft fixture is a PR, whose ham-pr-ref tooltip starts with the PR title, so match the 'Open · draft' headline anywhere in it rather than at the start. Signed-off-by: Andy Anderson <andy@clubanderson.com> --------- Signed-off-by: Andy Anderson <andy@clubanderson.com>
…d push time (#14758) * fix(automerge): bind unmarked owner approvals to the head's observed push time workflowFenceApproval judged a typed /hive decision approve (or an unmarked dashboard /approve) as bound to the current head when it was created after headPushedAt. Inside the min_head_age window headPushedAt prefers the head commit's committer date, which the pusher sets, so a later push with a backdated commit inherited an approval given on an earlier head and released the workflow-path fence for it. Approval binding now uses headObservedAt: the PR updated_at pinned on the head's first observation, which is server-side and never predates the push. headPushedAt is unchanged for the soak gate it was built for. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: sec-check <280983584+hivecommons-hive[bot]@users.noreply.github.com> * docs(automerge): state the re-approve narrowing of the observed-head binding The changelog fragment and headObservedAt doc comment now say that the binding time is pinned on the sweep's first observation of the head, so an owner approval typed between the push and that sweep is judged stale and must be re-typed. Fail-closed by design; code is unchanged. 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> * docs(automerge): say unmarked approvals bind to the first-observed head, not the push hive-merge.md and operator-reference.md still described the pre-#14754 binding ('posted after the head' / 'bound to it'). State that an unmarked /hive decision approve binds to the PR updated_at pinned on the hive's first sweep of the head, so an approval typed between the push and that sweep is stale and must be re-typed. Hive-Fix-Attempt: 2/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: sec-check <280983584+hivecommons-hive[bot]@users.noreply.github.com> Signed-off-by: scanner <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>
…one (#14829) Tracking/archive issues (label hive/tracking, body marker <!-- hive:tracking -->, or the sentence "Keep this issue open") are skipped by the good-first-issue picker and withdrawn if already labelled, sidelined into the filtered bucket with reason tracking, refused by the central CloseIssue (close-on-merge, already-done, stale and advisory sweeps) unless an owner closes from the dashboard, downgraded Closes->Refs on hive-authored PRs, and PRs created through hive that cite one get a one-line marked reviewer nudge. The weekly competitor report workflow now creates its tracking issue with the label and marker. Fixes #14826 Signed-off-by: Andrew Anderson <andy@clubanderson.com>
…4828) The operation journal (journal.json) kept every Applied/NotApplied entry forever. On the hosted hive it reached 53k entries / 56 MB and, because every Begin/RecordResult/Reconcile reloads the file, clones every entry and rewrites the whole snapshot with MarshalIndent, it accounted for ~60% of all Go allocations (~13 GB/min) and a persistent ~44 MB heap residue. Terminal entries now age out after DefaultJournalRetention (7 days) and the oldest terminal entries are evicted past DefaultJournalMaxEntries (20k). Planned/Unknown entries are never pruned: they still need reconciliation. Logical IDs embed the desired generation and claim key, so a week-old terminal entry can no longer be replayed by a live planner. Signed-off-by: Andy Anderson <andy@clubanderson.com>
Check due continuous re-kicks between loop iterations and run a cached eval without maintenance sweeps. Defer remaining same-agent kicks after delivery or a live-turn bounce, without recording busy deferrals as governor kick failures. Hive-Run: #14820 Hive-Plan: continuous-rekick-wake-and-busy-deferral Hive-Spec: issue-14820#expected Signed-off-by: thatguywob <thatguywob@users.noreply.github.com> Co-authored-by: thatguywob <thatguywob@users.noreply.github.com>
… its turn ended (#14843) * 🐛 governor: keep the continuous re-kick when a kick is recorded after its turn ended Kick delivery effects are applied in message order, so a fast agent's RecordKickForRepo can run minutes after its kick was typed while an earlier lane waits out prompt timeouts. If that agent's turn already ended, zeroing NextKick (and stamping LastKick later than the outcome) left it idle with no re-arm path until the 45-minute turn ceiling. Carry the lane's delivery time into onDelivered and add RecordKickForRepoAt, which keeps the scheduled re-kick when a newer turn-end outcome exists. Fixes #14841 Signed-off-by: Andrew Anderson <andy@clubanderson.com> * 📖 docs: refresh RankActionableIssues citation in scale-envelope Signed-off-by: Andrew Anderson <andy@clubanderson.com> --------- Signed-off-by: Andrew Anderson <andy@clubanderson.com>
… missing session (#14845) * dashboard: derive sandboxed agent health from the last run, not the missing session Sandboxed agents (Podman or Job runtime) sit in the idle state between kicks and have no tmux session, so the SPA painted them red with "Stopped — see the agent's log" / "session down" and the token collector never saw their usage. Persist a SandboxRun record per kick (outcome, summary, usage) under <work_dir>/sandbox-runs/, restore it on restart, expose it as sandboxRun on /api/status with an ok/running/failed/overdue verdict derived from the run and the cadence, make the SPA use that instead of the session check, and ingest the run history in the token collector. Fixes #14844 Signed-off-by: Andrew Anderson <andy@clubanderson.com> * changelog: move fragment to the root changelog.d Signed-off-by: Andrew Anderson <andy@clubanderson.com> --------- Signed-off-by: Andrew Anderson <andy@clubanderson.com>
TestClaimHooks_ReleaseWaitsForSlowClaimLabel returns once the claim label is removed, while its release hook goroutine is still inside retryClaimEffect (the queued stage write). That goroutine read the package vars claimsEffectWait/Attempts/Backoff unsynchronised, so when a shuffled run next reached TestClaimHooks_SubmitClaimFacts, swapClaimsEffectRetry wrote them concurrently and the race detector failed the test (#14839). The retry knobs are now guarded by claimsEffectMu: retryClaimEffect snapshots them once, and the test helper swaps/restores them under the lock. Behaviour is unchanged. 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>
) TestBootConfigWith_ConfigPathDisagreementAndTracingFailureAreWarnings fails on v5 with 'registered 4 cleanups, want 3' whenever 127.0.0.1:6060 happens to be free on the runner: the fake config leaves debug.pprof_addr empty, so startRuntimeObservability binds the default listener and pushes its stop hook. Disable the listener in the fakes so the cleanup count only reflects lock, cancel and tracing. 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>
…lient.go shift (#14846) The 'relative links and anchors resolve' gate has been red on v5 since d98b765: scale-envelope.md:37 cited client.go:4679-4696, which no longer contains RankActionableIssues or AgeMinutes after the surrounding code moved. 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>
…y repair path (#14817) * 🐛 dashboard: move every late-added pack-owned CLI agent in the gateway repair path Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * 🌱 dashboard: state the gateway-majority rule hiveGatewayBackend actually implements Reviewers pointed out that excluding roster peers still on their pack CLI turns the majority bar into 'unanimous operator picks, at least two' in an all-L2 roster, while the doc comment still described a plain majority of all candidates. The threshold is a hive engineering call, so state it rather than hide it: rewrite the doc comment (including the per-level side effect for ci-maintainer), fix the minority test's header, and make the two existing tests say they pin the rule. Changelog wording updated to match. 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>
…ed-PR measurement (#14818) * ✨ dashboard: keep a daily per-PR launch-cost rollup so cost per merged PR can be measured over 14 days Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: clubanderson <407614+clubanderson@users.noreply.github.com> * 🐛 dashboard: document GET /api/launch-cost/history in openapi.json The route-parity test rejects registered /api routes absent from the spec; the history endpoint added for #14762 was missing. Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * 🐛 dashboard: sum launch-cost rollup per launch, count no-usage kicks Address review findings on #14818: - Track each launch individually while the join still sees it and fold its last share into the day's settled totals exactly once when it leaves the window or the launch ring. A day now sums every launch even when the 4000-entry ring turns over in under 24h, instead of keeping the largest single-window value per ref. - Count launches that named refs but received no usage, matching /api/launch-cost by_ref[].launches semantics. - Persist live launches alongside the settled rollup so a restart neither drops nor double-counts them. - Cache the sorted per-ref list per day (invalidated only for days a tick touched) and move JSON marshal + file I/O out of lc.mu. 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: clubanderson <407614+clubanderson@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Automated pin bump (#8419). Digests recomputed from the downloaded release artifacts by src/scripts/cli-pin-bump.sh: VERSION=2.103.3 SHA256_AMD64=4c806978ffce1cec70853302a56d70ac6da4f19bae7adca4e1a8ab00633dd91d SHA256_ARM64=ee32df2323c8847f5fac6cb6b4b69ca75828e9329a8f22f677021f7b3306ce63 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>
* ✨ agents: recycle idle CLI sessions over an RSS or age budget A CLI session's V8 heap grows with every turn and never shrinks on idle; on the hosted hive 14–17 copilot CLI children totalled 5–6.5 GB and the pod OOM'd daily while the hive process itself sat flat at ~1 GB. The health tick (CheckAndRestartCrashedAgents) now samples each running agent's CLI process-tree RSS (tmux pane pid, /proc/*/stat ppid walk, /proc/<pid>/status VmRSS) and, when a session is over agents.session_recycle.max_rss_mb (1536) or max_age (6h) AND idle at the input prompt with no kick in flight for min_idle (2m), ends it through restartWithStormBreaker — the same graceful path a stall recovery uses — so claims and queues are preserved. 10-minute per-agent backoff after a recycle; 5-minute startup grace. The fleet block rides the existing agents:-map YAML hook and is stamped onto agents without their own override in EnabledAgents(); per-agent agents.<name>.session_recycle overrides it. The dashboard shows Session RSS, session age and recycle count per agent. Fixes #14842 Signed-off-by: Andy Anderson <andy@clubanderson.com> * 🌱 settingsparity: expect the agents.session_recycle leaves in fixture tests Signed-off-by: Andy Anderson <andy@clubanderson.com> --------- Signed-off-by: Andy Anderson <andy@clubanderson.com>
The contributor-lane test engines did not set Options.HeadFirstSeen, so they all used the process-wide sharedHeadFirstSeen tracker. It pins the first updated_at observed per acme/widget#7@sha7 and every fixture uses that same key. headObservedAt, which the workflow-path fence compares approval timestamps against, therefore returned whichever updated_at the first test in the process (or subtest, under -shuffle/-count) had pinned (11:00, 12:40, ...), not the one in the current fixture. Depending on execution order, approvals posted after the push were treated as older (releases test failed) and backdated-committer-date approvals as newer (IgnoresCommitterDate released the fence). newContributorLaneEngineRepos now gives each engine its own tracker, so each test observes only its own fixture. Test-only change. 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>
…14866) Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
…14865) Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
…nded (#14864) Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
…ed errors (#14880) Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
(cherry picked from commit b9bce6c) Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
…k-dir paths (#14896) SandboxRun.Duration feeds /api/status durationS, but its guard for a zero StartedAt or an EndedAt before StartedAt was never executed by any test, so a regression to a bare Sub would ship absurd durations for restored or partial records unnoticed. SandboxRunUsage.Total and the HIVE_WORK_DIR fallback were only reached indirectly from crux/agent. Signed-off-by: quality <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: quality <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Hive-Run: #14909 Hive-Plan: issue-14909-linear-review-scope Hive-Spec: issue-14909#scope Signed-off-by: Karibhou <157208370+Karibhou@users.noreply.github.com>
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>
Hive-Fix-Attempt: 2/6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: architect <280983584+hivecommons-hive[bot]@users.noreply.github.com>
Owner: 'i dont like the status symbols rotating - remove them from all chevrons'. The working glyph, the merge gate's sweep glyph and the acting caption's spinner are static icons now; the cue-spin keyframe is gone and nothing on a chevron or pill rotates. Class names stay so the sibling cue code and tests compose on them; a webstatic test asserts no rotating keyframe is applied to a tracker chevron or glyph class. Fixes #15187 Signed-off-by: Andrew Anderson <andy@clubanderson.com>
…ch sweep (#15180) Every contributor trust-tier change (operator PUT /trust and /revoke, newcomer→contributor auto-promotion, registration) now appends {tier, prev, at, by, reason, source} to the profile's tier_history and writes a contributor-tier-changed audit event; same-tier writes are no-ops. GET /api/contributors exposes tier_history and the Contributors view shows "tier since … · by … · reason" on the tier chip. The contributor lane's prefilter path (needs-rebase/hold/excluded/draft) returned before admitContributor, so parked PRs never had a role noted and ResolveStage fell back to the role/* label a previous pass wrote, with trusted kept sticky on weak stages. The lane now notes the current registry tier on that path too, and a fresh lane tier beats a stale label unless the lane merely cannot vouch for the author. Fixes #15177 Signed-off-by: Andrew Anderson <andy@clubanderson.com>
Keep v6 fork re-home refusal and comment-aware review scope while exercising v5 DCO replay safely on a base-repository head. Align adopted-original escalation expectations and preserve v5 hold release/keep wording. Regenerate 462 API citations after merged route movement and re-anchor the actionable rank citation. Signed-off-by: Andy Anderson <andy@clubanderson.com>
d31c3d6
ℹ️ Sentinel notice — informational; author is trusted (owner), merge is not blockedHive flagged this PR (author @clubanderson, head
Hive did not add the |
Signed-off-by: Andy Anderson <andy@clubanderson.com>
#15190) Signed-off-by: Andy Anderson <andy@clubanderson.com> Co-authored-by: hivecommons-hive[bot] <280983584+hivecommons-hive[bot]@users.noreply.github.com>
|
@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. |
…ssions Signed-off-by: Andy Anderson <andy@clubanderson.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
There was a problem hiding this comment.
CI at 7e53bb4 has 9 red test shards (run 40795001748). I pulled the distinct failures so the next push can target them; one I traced to the merged tree, the rest are the exact assertion messages from the logs.
Traced in the tree
TestStaticExperimentLabSidebarEntry(experiment_lab_sidebar_12076_test.go:60) — the test asserts the literalwindow._lastStatus = data;\n applyDashboardFeatureVisibility();. At this head the call is still present (index.html:39456) but the merge placed v5's stage-tracker hop-cue block (index.html:39453-39455, theprevWorkers/renderStageTracker()lines) between the two statements. No behaviour is lost; either move the hop-cue block belowapplyDashboardFeatureVisibility();or update the expected literal. This is what failspkg/dashboard/webstatic.
From the logs — not yet traced to a line
TestYourTurnReleaseOwnerStepAction12635/TestYourTurnMenuDesignActionHandsIssueToArchitect11566(your_turn_ui_11566_test.go:929,:1064) — node fails to parse the assembledyour-turn.js:SyntaxError: Unexpected token 'function'atfunction costRepoRowHtml(r, opts). The source aroundcostRepoRowHtml(index.html:30373) is well-formed, so the function the brace-matching extractor (jsClosure) emitted just before it in the closure is being cut short — a merged function body with an unbalanced{/}inside a string or template. Running the test locally and opening theyour-turn.jsit writes tot.TempDir()at line ~11302 will show which one.TestApplyPackFollowsUnownedGatewayBackends(pack_gateway_model_test.go:428) —scanner/quality/guide backend="litellm" owner="operator", want its unowned litellm left as is. The mergedapplyPacknow claims unowned gateway backends; this is a v5-vs-v6 semantics choice, not a test typo.TestReporterTrustUpstreamAcceptance— all 11 subtests (pr_reporter_trust_upstream_test.go:73):Held=false, want truewith an all-zero result struct, which reads as the upstream-acceptance path not being reached on the merged tree rather than a wrong branch inside it.TestEvaluateOrphanedUpgradeHonoursDrainDeadline(upgrade_drain_test.go:80):orphaned = false, want truefor bothno_drain_reportedanddrain_deadline_elapsed.TestHandleKickIoscan{BlockedPromptRedactsAndAudits,ServerRenderedPromptNotRescanned,AllowedPromptDeliveredUnchanged}— onlyTempDir RemoveAll cleanup: ... directory not empty, i.e. something is still writing under the temp dir after the test returns. Open question whether that is a merge regression or shard-ordering noise; it reproduces across all dashboard shards here.
Not reviewed: the 597-file content diff itself — this comment is scoped to why the merge is red. The DCO action_required check is the usual forward-merge artifact (other authors' commits) and not something to fix here.
— hive: agent=reviewer backend=copilot model=claude-fable-5.1 copilot=1.0.88
|
CI triage for
DCO: expected red on a forward-merge carrying others' commits; non-blocking. Not pushing — author-owned branch. 🐝 Hive Agent: — hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88 |
a45ad4d
ℹ️ Sentinel notice — informational; author is trusted (owner), merge is not blockedHive flagged this PR (author @clubanderson, head
Hive did not add the |
…failures (#15201) The delegated supersede executor returned silently for every PR the self-authored sweep observes, which includes trusted-bot PRs such as github-actions: no log, no attempt recorded, request label kept forever (hivecommons/docs#500). Run the executor for those PRs, refuse the App's own PR once with a note, skip the collaborator-permission read for App installations, replay the base onto the hive branch when the head is conflicting and, on a 409, post one note, consume the request and stage the PR at its fixing stage with reason supersede-conflict. Fixes #15196 Signed-off-by: Andy Anderson <andy@clubanderson.com>
|
CI triage for the shards the earlier 1. 2. 3. 4. 5. Verdict: FIX_DIFF. Not pushing — author-owned branch. Head has since moved to 🐝 Hive Agent: — hive: agent=quality backend=copilot model=claude-fable-5.1 copilot=1.0.88 |
Signed-off-by: Andy Anderson <andy@clubanderson.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
620f392
ℹ️ Sentinel notice — informational; author is trusted (owner), merge is not blockedHive flagged this PR (author @clubanderson, 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 |
|
Completed and verified: merged with a true two-parent merge commit 46862b2. Both parents are preserved (v6 f16e94c and integration 620f392). Synced v5 snapshot db3be8d is an ancestor of fetched origin/v6; 0 v5 commits remain unsynced. Final integration CI: 66 successful checks and 17 conditional skips; all meaningful gates passed. The 62 DCO failures were verified exclusively inherited from that v5 snapshot and merged under the standing forward-merge waiver. The created isolated worktree and local/remote feature branches are removed; the parent working tree and other worktrees were left untouched. |
Summary
Forward-merge 125 v5 commits through snapshot db3be8d into v6 (original base 9f58413, refreshed through f16e94c). Preserves v5/v6 ancestry; follows the previous full top-up #14399.
Conflict decisions
Validation
/lgtmcomment is intentionally being added.Merge commit only:
gh pr merge --admin --merge. Never squash/rebase; no/lgtmcomment, to prevent Tide racing an ancestry-destroying squash. The standing waiver covers DCO failures caused exclusively by inherited unsigned v5 commits; all meaningful checks must pass.