Skip to content

pr-pipeline: unblock lane PRs when main is quiet #8447

Closed

Description

@kyle-sexton

Problem (P3)

pr-unblock-dispatch runs only on pushes to main (pr-unblock-dispatch.yml:12-14), so with a quiet main nothing gets unblocked: 0-4 runs/h from 06Z to 11Z on 2026-10-19. Found by GitHub Support's flow-gap sweep.

Fix direction

Add a schedule trigger to the dispatcher. check-trusted-trigger and the broker accept push and workflow_dispatch dispatchers; whether a schedule dispatcher is accepted, and the broker rule, are the owner's call.

🤖 Generated with Claude Code

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 19, 2026
  2. github-actions commented on Oct 19, 2026

    @github-actions
    Contributor

    Proposed work class: work-class: scoped
    Basis: automated intake triage; the lanes App applied this class.

    Size: Medium
    Complexity: Medium
    Uncertainty: Known
    Flags: none
    Blocked by: none

    Decision recorded.

    Question: Accept the schedule event for the pr-unblock dispatcher in the trust gate and the token broker?

    Answer (owner, 2026-10-22, Issue Triage session): "Also go w/ recommendations" (dictated), accepting the recommendation below.

    Recommendation accepted: yes. Accept schedule on the dispatcher in check-trusted-trigger (DISPATCHER_EVENTS, .github/actions/check-trusted-trigger/check-trusted-trigger.mjs:25) and in the melodic-software/azure-iac broker, with the constraints the scheduled reconciler rule already has (:48): default branch and the expected workflow path. Keep the dispatcher's cache restore: GitHub lists schedule among the triggers trusted to write default-branch caches (dependency caching). Built attended by Automation Lanes; trust-boundary change approved here.

    #8447 (comment)

    That decision settles the open questions. I understand the work as adding a schedule trigger to the pr-unblock dispatcher and accepting schedule in the trust gate and the broker, so lane PRs get unblocked when main is quiet. The broker change lives in a separate repository.

    Automated triage, applied by the lanes App.

  3. added
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    and removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 19, 2026
  4. kyle-sexton commented on Oct 22, 2026

    @kyle-sexton
    MemberAuthor

    Decision recorded.

    Question: Accept the schedule event for the pr-unblock dispatcher in the trust gate and the token broker?

    Answer (owner, 2026-10-22, Issue Triage session): "Also go w/ recommendations" (dictated), accepting the recommendation below.

    Recommendation accepted: yes. Accept schedule on the dispatcher in check-trusted-trigger (DISPATCHER_EVENTS, .github/actions/check-trusted-trigger/check-trusted-trigger.mjs:25) and in the melodic-software/azure-iac broker, with the constraints the scheduled reconciler rule already has (:48): default branch and the expected workflow path. Keep the dispatcher's cache restore: GitHub lists schedule among the triggers trusted to write default-branch caches (dependency caching). Built attended by Automation Lanes; trust-boundary change approved here.

  5. added
    status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.
    and removed
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 22, 2026
  6. kyle-sexton commented on Oct 25, 2026

    @kyle-sexton
    MemberAuthor

    Released for re-triage under the owner's 2026-10-24 rule: an issue stops for a person only for an intent or vision question, a security call, a host or attended run, or spend outside prepaid credit. The hold label came off and intake triage runs again now; it re-applies a hold, with a numbered question, when one of those applies.

    To hold this issue again, add needs-human (or status: needs-decision) and say why in a comment.

  7. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.
    status: needs-decisionAwaiting a human or maintainer judgment call.
    and removed
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    on Oct 25, 2026
  8. melodic-automation-lanes commented on Oct 25, 2026

    @melodic-automation-lanes
    Contributor

    Not admitted to the issue lane: no trusted-human acceptance criteria: a listed human must put the confirmed - [ ] criteria in the body or post them as their own comment, or, on an issue a listed human filed, intake's newest refinement comment must hold them unedited. Admission takes the issue once each of those is met, when intake triages it again (.github/actions/resolve-config/admission-rules.json).

  9. melodic-automation-lanes commented on Oct 25, 2026

    @melodic-automation-lanes
    Contributor

    The latest triage verdict holds nothing: admission moved the issue to status: needs-decision; its comment says why.

  10. melodic-automation-lanes commented on Oct 25, 2026

    @melodic-automation-lanes
    Contributor

    Refinement. A read-only run explored this repository, searched its issues and pull requests, and read the allowed docs to draft what follows. On an issue a listed human filed, it counts as the issue's spec once posted, while unedited; it is still model text, so check it.

    Intended outcome: The repo side is already done: the dispatcher has a half-hourly schedule and the trust gate accepts schedule; only the azure-iac broker change remains, outside this repo.

    Related work

    Open questions

    1. Is the issue complete in this repo, so it should be closed, with the melodic-software/azure-iac broker change tracked on its own?
      RECOMMENDED: Yes: close this issue as fixed by 9509 once someone confirms the azure-iac broker accepts schedule for the dispatcher, with default-branch and workflow-path constraints. Basis: .base/.github/workflows/pr-unblock-dispatch.yml:51
    2. Has the azure-iac broker already been changed to accept the schedule dispatcher? That repository cannot be checked from here.
      RECOMMENDED: Have a person check the broker rule; open an issue in azure-iac if it is not done. Basis: judgment

    Sources read

    • .base/.github/workflows/pr-unblock-dispatch.yml:51: schedule trigger with cron "9,39 * * * *" already present; comments at :28-33 and :132 cover scheduled runs and re-runs
    • .base/.github/actions/check-trusted-trigger/check-trusted-trigger.mjs:28: DISPATCHER_EVENTS is push, schedule, workflow_dispatch
    • .base/.github/actions/check-trusted-trigger/check-trusted-trigger.mjs:727: dispatcher check uses DISPATCHER_EVENTS
    • .base/.github/actions/check-trusted-trigger/check-trusted-trigger.test.mjs:701: test that a scheduled dispatcher run on the default branch proceeds, and :718 tests that other branches or workflows are refused
    • .base/.github/actions/check-trusted-trigger/README.md:60: documents schedule as an accepted dispatcher event

    Automated refinement by the lanes App. Answer with a comment whose first line is **Decision recorded.**.

  11. kyle-sexton commented on Oct 26, 2026

    @kyle-sexton
    MemberAuthor

    Closing as done: all three parts are on main. The dispatcher has its schedule trigger (.github/workflows/pr-unblock-dispatch.yml:51, cron 9,39 * * * *, from #9509), the trust gate accepts schedule (.github/actions/check-trusted-trigger/check-trusted-trigger.mjs:28), and the azure-iac broker accepts it (src/lanes-token-broker/src/dispatcher.mjs:32).

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

    priority: mediumReal value, no hard deadline; normal backlog flow.status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.status: needs-decisionAwaiting a human or maintainer judgment call.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Fields

    No fields configured for Feature.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions