Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
d62e94d
🐛 Cover self-authored decision stage resolution (#12848)
clubanderson Oct 18, 2026
7f17aaf
✨ feat: auto-promote clean contributor histories (#12841)
clubanderson Oct 18, 2026
2ecee90
🐛 fix(hivectl): skip unnormalizable legacy hubs in FindHive and corre…
clubanderson Oct 18, 2026
9017e8d
labels: issues park at stage/045-needs-decision; 085 is PR-only (#12856)
clubanderson Oct 18, 2026
4167330
feat(hivectl): adopt and refresh contribution presets with reviewed d…
hivecommons-hive[bot] Oct 18, 2026
2456e8e
🐛 agent: file kick_failed_repeatedly only after the stall restart fai…
clubanderson Oct 18, 2026
96132aa
🐛 fix: nudge conflicting offline contributor PRs (#12859)
clubanderson Oct 18, 2026
bea0cd7
🐛 governor: close decomposed parent issues when all children close; n…
clubanderson Oct 18, 2026
207ce85
✨ Let Hive agents resolve non-risk engineering questions instead of p…
clubanderson Oct 18, 2026
91d7c01
📖 docs: document HIVE_REPO_SCOPE in the env-var references (#12867)
clubanderson Oct 18, 2026
1e4c00b
🐛 Re-home adopted PRs with DCO repair routing (#12845)
clubanderson Oct 18, 2026
0f87706
🐛 Include held PRs in review dispatch (#12869)
clubanderson Oct 18, 2026
bff247a
🐛 fix(adopt): fall back to supersede when the base-sync touches .gith…
hivecommons-hive[bot] Oct 18, 2026
e97b316
fix(hub): quiet token-burn, placeholder project_org and advisory-stal…
hivecommons-hive[bot] Oct 18, 2026
17ae56a
🐛 List held PRs in reviewer kicks (#12873)
clubanderson Oct 18, 2026
b54708c
🐛 fix(automerge): keep revoked and reverted contributors out of auto-…
hivecommons-hive[bot] Oct 18, 2026
c4b4534
🐛 fix(escalation): require independent shared-CI control (#12881)
hanthor Oct 18, 2026
c8b9809
🐛 fix(stage-labels): post the 085/090 entry comment once per stage an…
hivecommons-hive[bot] Oct 18, 2026
d83da6f
🌱 images: bump omp 18.11.0 -> 18.12.1 (#12885)
clubanderson Oct 18, 2026
1dfd139
fix(review): re-kick only missing perspectives on partial revisit (#1…
hivecommons-hive[bot] Oct 18, 2026
26f3d88
📖 docs: align offline contributor grace example with default (#12870)
hivecommons-hive[bot] Oct 18, 2026
037d2d5
✨ feat(relay): enforce contributor repository scope (#12871)
hivecommons-hive[bot] Oct 18, 2026
8c92231
🐛 fix(spoke): report per-lane actionable queue depth in agent heartbe…
hivecommons-hive[bot] Oct 18, 2026
2f3329f
🐛 fix(review): route incomplete fixes to fixer lane (#12888)
clubanderson Oct 18, 2026
31bca12
🐛 fix(automerge): honor human requires_human approvals (#12890)
clubanderson Oct 18, 2026
2b3b109
🐛 fix(review): normalize verdict routing sources (#12894)
clubanderson Oct 18, 2026
4bafcac
🐛 fix(automerge): lane-neutral review-gate log and single ListReviews…
hivecommons-hive[bot] Oct 18, 2026
82ef346
📖 docs: start changed-repo-scope-env-rows fragment with an entry bull…
hivecommons-hive[bot] Oct 18, 2026
30f04c1
🐛 fix(stage): use normalized review verdict source (#12901)
clubanderson Oct 18, 2026
8b49746
🐛 fix reviewer follow-up sign-offs on contributor PRs (#12899)
clubanderson Oct 18, 2026
8a65ee4
📖 docs: refresh stale line citations in agent-turn-model.md (#12882)
hivecommons-hive[bot] Oct 18, 2026
2f25ee3
merge: forward-merge v5 into v6
hivecommons-hive[bot] Oct 18, 2026
d63af89
test(dashboard): expect stage/085-needs-decision in the PR gate-label…
hivecommons-hive[bot] Oct 18, 2026
026ee62
🔖 release: v5.186.0
actions-user Oct 18, 2026
b8b2352
Merge pull request #12908 from hivecommons/release-gate/v5.186.0
clubanderson Oct 18, 2026
7ed5bf9
🐛 route normalized reviewer fixes to fixer (#12905)
clubanderson Oct 18, 2026
f2dac20
sync: route comment --needs-decision through the decision policy; kee…
hivecommons-hive[bot] Oct 18, 2026
0c7d110
🔖 release: v5.186.1
actions-user Oct 18, 2026
aaaec43
Merge pull request #12912 from hivecommons/release-gate/v5.186.1
clubanderson Oct 18, 2026
186cd57
🐛 fix(review): retain human decisions during incomplete re-review (#1…
hivecommons-hive[bot] Oct 18, 2026
baf8c01
🐛 fix(review): deliver fix-kick changes to contributor PRs as suggest…
hivecommons-hive[bot] Oct 18, 2026
6744c87
🐛 fix(hub): scope agents-inactive idle-with-work alert to the lane's …
hivecommons-hive[bot] Oct 18, 2026
512b9f4
🔖 release: v5.186.2
actions-user Oct 18, 2026
06bf497
Merge pull request #12913 from hivecommons/release-gate/v5.186.2
clubanderson Oct 18, 2026
887135a
sync: keep typed owner steps parked under the resolve decision policy
hivecommons-hive[bot] Oct 18, 2026
dea6259
sync: keep blocked out of the decision-policy downgrade
hivecommons-hive[bot] Oct 18, 2026
020e2d2
🐛 fix(review): retain settled non-approve verdicts during incomplete …
hivecommons-hive[bot] Oct 18, 2026
7eee8a6
🔖 release: v5.186.3
actions-user Oct 18, 2026
e03e3fc
Merge pull request #12915 from hivecommons/release-gate/v5.186.3
clubanderson Oct 18, 2026
2bc9396
🐛 fix(agent): restart a live CLI pane stuck off its input prompt afte…
hivecommons-hive[bot] Oct 18, 2026
9df52ae
🔖 release: v5.186.4
actions-user Oct 18, 2026
e2ce549
Merge pull request #12930 from hivecommons/release-gate/v5.186.4
clubanderson Oct 18, 2026
68ae5bd
🌱 chore: reuse off-prompt pane fixture in test (#12928)
hanthor Oct 18, 2026
49f6dc2
🐛 fix(agent): restart a pane wedged on a consent or blocking prompt a…
hivecommons-hive[bot] Oct 18, 2026
de6851c
🐛 fix(dashboard): tolerate missing node in agent Now line test (#12929)
arteeh Oct 18, 2026
caa3344
🐛 fix(scheduler): keep non-adopted fork PRs comment-only in the CI_FA…
hivecommons-hive[bot] Oct 18, 2026
7db7e52
📖 docs: reconcile changelog fragment rule for docs-only changes (#12932)
hivecommons-hive[bot] Oct 19, 2026
dfb4f11
🌱 test(github): cover IssueActivitySince, IssueActivityKey and author…
hivecommons-hive[bot] Oct 19, 2026
acd0d61
build(deps): bump library/node from `ec7758e` to `0d1e335` in /src (#…
dependabot[bot] Oct 19, 2026
ad76c12
build(deps): bump golang.org/x/net from 0.60.0 to 0.61.0 in /src (#12…
dependabot[bot] Oct 19, 2026
6d25156
🌱 images: bump claude 2.1.302 -> 2.1.303 (#12943)
clubanderson Oct 19, 2026
48c7f9b
🌱 test(github): cover push-branch relay loop, exec runner, auth heade…
hivecommons-hive[bot] Oct 19, 2026
904897b
🐛 fix(dashboard): skip fleet self-report when copilot model discovery…
hivecommons-hive[bot] Oct 19, 2026
90f63e8
🌱 ci(coverage): do not file a coverage issue when the gate job was ca…
hivecommons-hive[bot] Oct 19, 2026
4217e97
merge: top up v6 with v5 90f63e8ad (28 commits since 8a65ee422)
clubanderson Oct 19, 2026
750b523
merge: bring v6 5a129354b into the sync branch
clubanderson Oct 19, 2026
ce00e9b
chore: refresh NOTICE for golang.org/x/sync v0.24.0
hivecommons-hive[bot] Oct 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 49 additions & 2 deletions .github/workflows/coverage-hourly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,14 @@ jobs:
echo -e "${REPORT}"
} >> "$GITHUB_STEP_SUMMARY"

# Written once the verdict is known and before either outcome (the
# `exit 1` shortfall below or success), so it means "measurement
# reached a verdict", not "gate passed". The profile artifact cannot
# serve as this signal: a hung run leaves a partial cover-run.log
# that the always() upload still ships during cancellation cleanup
# (#12951).
echo "$GITHUB_SHA" > coverage-measured.marker

if [ -n "$BROKEN" ] || [ -n "$FAILED" ]; then
echo "below_threshold=true" >> "$GITHUB_OUTPUT"
{
Expand Down Expand Up @@ -480,20 +488,36 @@ jobs:
if-no-files-found: ignore
retention-days: 14

- name: Upload measurement-complete marker
if: always()
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: coverage-measured-${{ github.run_id }}-${{ github.run_attempt }}
path: src/coverage-measured.marker
if-no-files-found: ignore
retention-days: 14

create-issue-on-coverage-drop:
# Scheduled runs only. The bare `failure()` here previously fired on ANY
# job failure regardless of cause, which is why issue #2191 accumulated 41
# comments titled "packages below 90% threshold" when the real cause was a
# test failure aborting the run. Now that the gate also runs on
# pull_request, an unscoped condition would additionally file an issue for
# every contributor's red PR.
# A cancelled coverage job carries no outputs. If it was cancelled AFTER the
# measurement finished (timeout during post-step cleanup, #12944) the
# measurement-complete marker artifact exists and filing would only produce a false "measured unknown"
# alarm, so the script below exits early. If it was cancelled BEFORE the
# marker was written (a hung suite hitting the job timeout, #12951) the
# issue is still filed so a persistent hang does not go unreported.
if: always() && github.event_name == 'schedule' && needs.coverage.result != 'success' && needs.coverage.result != 'skipped'
runs-on: ${{ fromJSON(vars.HIVE_RUNNER_LABELS || '["ubuntu-latest"]') }}
timeout-minutes: 10
needs: coverage
permissions:
contents: read
issues: write
actions: read
steps:
- name: Create or update coverage issue
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
Expand All @@ -513,6 +537,25 @@ jobs:
const total = '${{ needs.coverage.outputs.total }}' || 'unavailable';
const shortSha = measuredSha.substring(0, 7);

// Cancelled jobs propagate no outputs, so the marker artifact is the
// only evidence that the measurement completed (#12944, #12951). The
// profile artifact is unreliable here: partial logs from a hung run
// are still uploaded during cancellation cleanup.
const cancelled = '${{ needs.coverage.result }}' === 'cancelled';
if (cancelled) {
const markerName = 'coverage-measured-${{ github.run_id }}-${{ github.run_attempt }}';
const arts = await github.paginate(github.rest.actions.listWorkflowRunArtifacts, {
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.runId,
per_page: 100,
});
if (arts.some(a => a.name === markerName && !a.expired)) {
core.info('Coverage job was cancelled after the measurement completed; no issue (#12944).');
return;
}
}

// The gate fails for two DIFFERENT reasons and they need different
// fixes: a package under its floor, or a package that could not be
// scored at all (tests failing / no test files). Conflating them is
Expand All @@ -525,7 +568,9 @@ jobs:
// Calling that "below their coverage floor" sent #9632 to agents
// that added tests for a workflow failure (#9645).
const neverMeasured = !'${{ needs.coverage.outputs.measured_ref }}';
const cause = neverMeasured
const cause = cancelled
? 'The coverage job was **cancelled before any coverage verdict reached this job** (for example a hung test suite hitting the job timeout, or a cancellation during setup). No verdict was recorded, so this is not evidence of a coverage shortfall - open the run log to see where it stopped.'
: neverMeasured
? 'The coverage job **failed before any package was measured** (workflow, setup, or runner failure). This is not a coverage shortfall and adding tests will not fix it - open the run log for the failing step.'
: cannotScore
? 'One or more packages **could not be scored** (tests failing, or no test files). That is a broken-test problem, not a coverage shortfall — fix the tests first; the floor cannot be evaluated until they run.'
Expand All @@ -537,7 +582,9 @@ jobs:
// The title must not claim a shortfall the body contradicts:
// triage reads titles first (#9664 audit). Both keep the
// [Coverage] prefix the dedupe below matches on.
const title = neverMeasured
const title = cancelled
? `[Coverage] gate job cancelled before a coverage verdict`
: neverMeasured
? `[Coverage] gate job failed before measuring coverage`
: `[Coverage] packages below 90% threshold`;
const body = `## Coverage gate failed\n\n`
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ These rules apply to every AI agent (hive agents, Copilot CLI, Claude Code, Code
## Working style

- Keep changes surgical and PR-sized; one concern per PR.
- Every PR needs a `changelog.d/<category>-<slug>.md` fragment (`added|changed|deprecated|fixed|security`) whose body is a single `- ` bullet. `changelog.d/` is at the repository root, not under `src/` — `src/changelog.d/` is never compiled and the guard rejects it.
- Every PR with a user-visible `src/` code change needs a `changelog.d/<category>-<slug>.md` fragment (`added|changed|deprecated|fixed|security`) whose body is a single `- ` bullet. Changes outside `src/` (root-level docs, `changelog.d/`, `.github/`), plus `src/docs/`, `*_test.go` files, and `src/{deploy,scripts}/test[-_]*.sh` scripts, are exempt automatically (`src/scripts/check-changelog-fragment.sh` is the source of truth for the exact set); other test-adjacent changes (e.g., `testdata/` fixtures, non-`_test.go` test helpers) and non-user-visible `src/` code changes (refactors, dependency bumps) need the `no-changelog` label instead. `changelog.d/` is at the repository root, not under `src/` — `src/changelog.d/` is never compiled and the guard rejects it.
- Sign commits (`git commit -s`); PR titles start with an emoji (`✨` feature, `🐛` fix, `📖` docs, `🌱` chore, `⚠️` breaking).
- Do not edit `src/docs/api-reference.md` line citations by hand; CI's citation guard reports drift and the fix is `bash src/scripts/check-api-reference-citations.sh --fix` — run it only when CI tells you it drifted. The required `changelog-fragment-guard` check runs it (non-fix) when a PR edits a hub or dashboard `server.go` or their `static/` pages, so the PR that causes drift goes red.
Loading
Loading