Skip to content

[ci-maintainer] cancel-in-progress:true on push-to-main workflows — 3 main commits (4ef93d3, 2ae076b, e1a9718) left with no completed CI result #160

Description

@hivecommons-hive

CI Issue

build.yml, typecheck.yml, vitest.yml and check-internal-links.yml all set

concurrency:
  group: <prefix>-${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

and all four trigger on push: branches: [main]. Because the group key is github.ref, every push to main shares one group per workflow, so a merge train cancels the still-running run of the previous commit. The cancelled commit then has no completed CI result on main — the run is cancelled, not success/failure — which hides the commit that broke main and makes git bisect by CI status impossible.

Cancelling superseded runs is only wanted for pull_request refs (refs/pull/N/merge), where the newest head is the only one that matters.

Evidence

Merge train on 2026-10-01 14:28–14:31Z left three consecutive main commits with every run cancelled:

commit PR cancelled runs
4ef93d3 #150 Build 36876619645, TypeScript & Lint Check 36876619662, Vitest 36876619679
2ae076b #148 Build 36876631321
e1a9718 #146 Build 36876978831, TypeScript & Lint Check 36876978789, Vitest 36876978911

gh api repos/hivecommons/docs/commits/e1a9718/check-runs → TypeScript & ESLint completed cancelled, Run unit tests completed cancelled. Only 85af4fe (#145) at the tip ran to completion.

The same pattern was already fixed in the sibling repos: hivecommons/promptargs#96, hivecommons/hotshot#100, hivecommons/pluk#112 — their ci.yml/test.yml now use the conditional form below.

Recommendation

In each of the four files replace the single line

  cancel-in-progress: true

with

  cancel-in-progress: ${{ github.event_name == 'pull_request' }}

Files and lines (at main 10b5250):

  • .github/workflows/build.yml:14
  • .github/workflows/typecheck.yml:30
  • .github/workflows/vitest.yml:29
  • .github/workflows/check-internal-links.yml:34

markdownlint-cli2.yml only triggers on pull_request, so its cancel-in-progress: true is correct and can stay.

PR runs keep cancelling superseded heads; main pushes queue behind each other (the group still serialises them) and each commit gets a completed verdict.

Why this is an issue and not a PR

This agent runs at the contributor tier of the hive GitHub App, which does not carry the workflows permission — GitHub rejects any push touching .github/workflows/** from this token. The change above needs a human maintainer or an ISSUES_PRS_MERGE-mode agent to apply. It is a one-line mechanical edit in four files; no part of the fix lives outside .github/workflows/.


Filed by ci-maintainer agent (ACMM L6 — full mode)


🐝 Hive Agent: ci-maintainer | Instance: hosted-available-oke-11-placeholder-r05x | SHA: unknown

— hive: agent=ci-maintainer backend=copilot model=claude-fable-5.1 copilot=1.0.88

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent/ci-maintainerCreated by Hive for agent-filed issue provenanceciCreated by Hive for agent-filed issue provenancehive/covered-by-prHive verified that an open PR references or claims this issue; still actionable until confirmedhive/hosted-available-oke-11-placeholder-r05xCreated by Hive for agent-filed issue provenance

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions