Skip to content

🚨 DO NOT MERGE — canary for merge-gate timing (#943) - #946

Closed
thekevinbot wants to merge 1 commit into
mainfrom
claude/943-canary-gate-timing
Closed

thekevinbot wants to merge 1 commit into
mainfrom
claude/943-canary-gate-timing

Conversation

@thekevinbot

@thekevinbot thekevinbot commented Aug 14, 2026 •

Copy link
Copy Markdown
Collaborator

Do not merge. Close after reading. Throwaway observation PR for #943.

Verifies that after #945 the Mergify Merge Protections check stays pending until every other check completes, rather than going green ~25s in.

Touches five trigger surfaces (comment lines / trailing newline only) so most workflows fire:

File Triggers
testing-conventions.toml python CI, ts CI, rust CI, internals-distcheck
putitoutthere.toml putitoutthere-config-check, release-ci
internals/checks/testing-conventions.toml internals-checks
plugins/dirsql-plugin-embeddings/testing-conventions.toml plugin CI
docs/index.md docs-ci

Not covered: changelog-check. Triggering it needs a packages/** change, and putitoutthere's globs are bare packages/rust/** etc., so any such touch also fires the full release build matrix. Not worth the flake risk for a timing observation.

Pass criterion

Mergify Merge Protections's completed_at is later than every other check's. Before #945 it was ~2m21s earlier.

E2E Verification

N/A - canary, no source change


Touches five trigger surfaces so most workflows fire, to observe whether the
Mergify protection now stays pending until every other check completes.

skip-changelog: CI trigger canary
thekevinbot added a commit that referenced this pull request Aug 17, 2026
Merge gating returns to pr-monitor's CI Gate check. Mergify's check-run
condition vocabulary cannot express "everything expected has finished":
`#check-failure = 0` alone is vacuously green before and during CI (#943),
adding `#check-pending = 0` deadlocks on Mergify's own in-progress check
(#832, confirmed by canary #946), and named anchors died with path
filtering (#834). pr-monitor polls workflow runs instead, so path-filtered
workflows need no enumeration, in-flight runs hold the gate, and
startup_failure is visible.

The restored workflow differs from the pre-#830 one: minimum-checks: 0
(zero-check PRs are legitimate post-#834 and the old floor of 1 burned the
timeout as a false red), pre-sleep: 30 (sole dispatch-race guard once the
floor is 0; observed fan-out is ~2s), timeout: 20 (full fan-out completes
in ~3 min, so a timeout means a hang), and the deprecated job-name input
is dropped in favor of the action's run-ID self-exclusion.

Requires maintainer follow-up outside the repo: require CI Gate in branch
protection instead of Mergify Merge Protections, enable native auto-merge,
uninstall the Mergify app.

Fixes #948

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015NeVzsUB4JoenXCCXBfwR3
thekevinbot added a commit that referenced this pull request Aug 17, 2026
Merge gating returns to pr-monitor's CI Gate check. Mergify's check-run
condition vocabulary cannot express "everything expected has finished":
`#check-failure = 0` alone is vacuously green before and during CI (#943),
adding `#check-pending = 0` deadlocks on Mergify's own in-progress check
(#832, confirmed by canary #946), and named anchors died with path
filtering (#834). pr-monitor polls workflow runs instead, so path-filtered
workflows need no enumeration, in-flight runs hold the gate, and
startup_failure is visible.

The restored workflow differs from the pre-#830 one: minimum-checks: 0
(zero-check PRs are legitimate post-#834 and the old floor of 1 burned the
timeout as a false red), pre-sleep: 30 (sole dispatch-race guard once the
floor is 0; observed fan-out is ~2s), timeout: 20 (full fan-out completes
in ~3 min, so a timeout means a hang), and the deprecated job-name input
is dropped in favor of the action's run-ID self-exclusion.

Requires maintainer follow-up outside the repo: require CI Gate in branch
protection instead of Mergify Merge Protections, enable native auto-merge,
uninstall the Mergify app.

Fixes #948

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
thekevinbot added a commit that referenced this pull request Aug 17, 2026
Merge gating returns to pr-monitor's CI Gate check. Mergify's check-run
condition vocabulary cannot express "everything expected has finished":
`#check-failure = 0` alone is vacuously green before and during CI (#943),
adding `#check-pending = 0` deadlocks on Mergify's own in-progress check
(#832, confirmed by canary #946), and named anchors died with path
filtering (#834). pr-monitor polls workflow runs instead, so path-filtered
workflows need no enumeration, in-flight runs hold the gate, and
startup_failure is visible.

The restored workflow differs from the pre-#830 one: minimum-checks: 0
(zero-check PRs are legitimate post-#834 and the old floor of 1 burned the
timeout as a false red), pre-sleep: 30 (sole dispatch-race guard once the
floor is 0; observed fan-out is ~2s), timeout: 20 (full fan-out completes
in ~3 min, so a timeout means a hang), and the deprecated job-name input
is dropped in favor of the action's run-ID self-exclusion.

Requires maintainer follow-up outside the repo: require CI Gate in branch
protection instead of Mergify Merge Protections, enable native auto-merge,
uninstall the Mergify app.

Fixes #948
@thekevinbot

Copy link
Copy Markdown
Collaborator Author

Closing: this was a deliberate timing canary for #943, never intended to merge. The merge-gate question it probed is settled — the fleet now runs the dirsql ruleset with 'CI Gate' as the single required check, and the wait-for-checks behaviour lives in pr-monitor itself.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants