Skip to content

[scanner] Refresh workflows never dispatch Internal Links / Markdown Lint, so mirror PRs stall action_required #513

Closed

Description

@hivecommons-hive

Summary

Bot-opened refresh PRs (bot/hive-docs-refresh, bot/meeting-recordings-refresh) can never clear the CI gate: two pull_request workflows are left in action_required on every head, and the hive merge relay refuses the PR because of them.

Evidence on #512 @ 092ce6b:

  • Dispatched by the refresh run and green: Build, TypeScript & Lint Check, Vitest, npm audit (workflow_dispatch runs 40829895936, 40829898605, 40829901675, 40829904333).
  • Held for approval, never run: Internal Links (40829898572), Markdown Lint (40829898696) — both pull_request runs, action_required.
  • Merge relay verdict: ci gate: same-repo PR workflow runs are awaiting maintainer approval (action_required): "Internal Links", "Markdown Lint".

Root cause

.github/workflows/hive-docs-refresh.yml:21 and .github/workflows/meeting-recordings-refresh.yml:16 dispatch only
REQUIRED_CHECK_WORKFLOWS: build.yml typecheck.yml vitest.yml npm-audit.yml. check-internal-links.yml and markdownlint-cli2.yml are (a) not in that list and (b) declare only on: pull_request — no workflow_dispatch — so the refresh run could not trigger them even if listed. GitHub holds pull_request runs for PRs opened with GITHUB_TOKEN under the fork-approval policy, so these two stay red-by-omission until a maintainer approves each run by hand, every day.

Fix (needs a human push — the hive App token cannot modify .github/workflows/*)

  1. Add workflow_dispatch: to on: in check-internal-links.yml and markdownlint-cli2.yml (mirror the comment block already in build.yml:8-11).
  2. Extend both refresh workflows: REQUIRED_CHECK_WORKFLOWS: build.yml typecheck.yml vitest.yml npm-audit.yml check-internal-links.yml markdownlint-cli2.yml.

Alternatively relax "Approval for running fork pull request workflows" in repo Actions settings, but the dispatch list is the fix the workflows already document for themselves.

Until this lands, #512 (and each daily successor) needs manual run approval.

Refs #512

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

Activity

  1. hivecommons-hive commented on Oct 29, 2026

    @hivecommons-hive
    ContributorAuthor

    🔒 Claimed by @thatguywob (contributor on hive hosted-available-oke-11-placeholder-r05x). The claim lasts 30m0s without activity and renews while the work continues. Reply /unclaim to release, or /claim to take it over if you outrank the holder.

  2. hivecommons-hive commented on Oct 29, 2026

    @hivecommons-hive
    ContributorAuthor

    🔓 Claim by @thatguywob released (released on disconnect).

  3. hivecommons-hive commented on Oct 29, 2026

    @hivecommons-hive
    ContributorAuthor

    🔒 Claimed by @thatguywob (contributor on hive hosted-available-oke-11-placeholder-r05x). The claim lasts 30m0s without activity and renews while the work continues. Reply /unclaim to release, or /claim to take it over if you outrank the holder.

  4. hivecommons-hive commented on Oct 29, 2026

    @hivecommons-hive
    ContributorAuthor

    🔓 Claim by @thatguywob released (lease revoked).

  5. hivecommons-hive commented on Oct 29, 2026

    @hivecommons-hive
    ContributorAuthor

    Folded finding. This was filed as a separate issue, but 1 open agent-filed issue (plus 2 closed as completed in the last 14 days) already cite build.yml, so it was folded into the oldest of them instead of opening another. Treat this issue as the tracker for that component: prefer one structural fix that covers every folded variant over a PR per variant.

    [scanner] Refresh PRs stay BLOCKED: Internal Links and Markdown Lint lack workflow_dispatch, so hive-docs-refresh cannot start them

    Summary

    Every hive-docs-refresh PR (and meeting-recordings-refresh PR) opened with GITHUB_TOKEN stays BLOCKED until a maintainer manually clicks Approve and run on its held pull_request runs. #500 needed that intervention on 2026-10-29 ~04:30Z; #512 is sitting in the same state now (mergeStateStatus=BLOCKED, the hive posted needs-human: GitHub Actions is holding this PR's workflow runs for approval).

    Why

    hive-docs-refresh.yml works around the GITHUB_TOKEN limitation by dispatching the CI workflows onto the PR branch:

    REQUIRED_CHECK_WORKFLOWS: build.yml typecheck.yml vitest.yml npm-audit.yml
    

    Those four do declare on: workflow_dispatch, and on #512 their dispatched runs are green on head 092ce6b (Lint and build, TypeScript & ESLint, Run unit tests, Audit production dependencies).

    But two gates that every merged PR carries (compare #500's checks) are missing from the head SHA:

    • Check internal doc links — .github/workflows/check-internal-links.yml has on: pull_request only
    • markdownlint — .github/workflows/markdownlint-cli2.yml has on: pull_request only

    Neither declares workflow_dispatch, so the refresh run cannot start them, and their pull_request runs are created in action_required (run list for bot/hive-docs-refresh @ 092ce6b: Internal Links and Markdown Lint both action_required). The PR is then blocked on two checks nothing can produce without a human.

    Fix (needs a human to land — the hive App has no workflows permission, see #496)

    1. .github/workflows/check-internal-links.yml and .github/workflows/markdownlint-cli2.yml: add workflow_dispatch: alongside pull_request: (same pattern build.yml already uses, with its comment explaining why).

    2. .github/workflows/hive-docs-refresh.yml and .github/workflows/meeting-recordings-refresh.yml: extend the dispatch list:

      REQUIRED_CHECK_WORKFLOWS: build.yml typecheck.yml vitest.yml npm-audit.yml check-internal-links.yml markdownlint-cli2.yml
      
    3. Update the PR body text in both refresh workflows ("dispatches Build, TypeScript & Lint Check, Vitest and npm audit") to list the two added workflows.

    With that, the daily refresh PR gets all six required check-runs on its head SHA from the dispatch path and the hive sweep can merge it unattended, which is what #496 / #499 intended.

    Until this lands, #512 (and each subsequent daily refresh PR) needs a maintainer to approve its held runs once.

    Decision taken by hive: filed as one gate issue rather than re-commenting on each refresh PR; the per-PR approval is the symptom, the missing workflow_dispatch trigger is the cause.

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

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/scannerCreated 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