chore: release main - #4028
Open
ryanrozich wants to merge 1 commit into
Open
Conversation
ryanrozich
force-pushed
the
release-please--branches--main
branch
3 times, most recently
from
August 28, 2026 22:00
918055e to
add249a
Compare
This was referenced Aug 28, 2026
ryanrozich
added a commit
that referenced
this pull request
Aug 28, 2026
…st (#4079) ## Summary Phases 2–3 of the [CTL-2266 plan](thoughts/shared/plans/2026-08-28-CTL-2266-mergify-merge-queue-catalyst.md) — extends the catalyst-cloud Mergify merge-queue trial to `coalesce-labs/catalyst`. Phase 1 (the monotonic version guard) already merged as #4077, so AC2's silent version-collision case is already covered by `check-versions` on `main` — this PR does not touch that logic again. - **Phase 2** — `queue:ready` and `hold:hand-steps` labels created on the repo (colors/descriptions match the catalyst-cloud trial); `AGENTS.md` documents queue-merge as the PR default once activated. - **Phase 3** — `.mergify.yml`, validated and simulated against real open PRs below. **This PR does not activate the queue and is not merged by the queue itself** (it touches `.mergify.yml`, which the config's own path exclusion routes to hand-merge). The coordinator merges this by hand, then runs the live `@Mergifyio` probe per plan Phase 4 — Ryan has already activated the repo in the Mergify dashboard. ## One deliberate deviation from the plan: `max_parallel_checks: 3` The plan as researched specified `max_parallel_checks: 1` (in-place checks, matching the catalyst-cloud shape). Per Ryan's direction from today's catalyst-cloud experience, this PR ships with **`max_parallel_checks: 3`** instead. **Measured caveat, not fixed by this PR:** `gh api repos/coalesce-labs/catalyst/rulesets/13503799` still reports the "main branch protection" ruleset's `required_status_checks.strict_required_status_checks_policy: true` (verbatim, re-checked just before opening this PR). Mergify computes `allow_inplace_checks` automatically, and only enables it when `max_parallel_checks == 1` + `batch_size == 1` + `merge_conditions == queue_conditions` for every queue — setting `max_parallel_checks: 3` opts OUT of in-place checks, so Mergify will run CI on temporary merge-queue branches instead of pushing update commits onto the PR branch. Separately, with `strict_required_status_checks_policy: true`, each queued PR's required checks are only valid against the exact current `main`, so **real parallel throughput still needs that ruleset setting turned off** — otherwise batches serialize behind rebase-and-recheck regardless of the configured slot count. **I have not touched branch protection** — that's explicitly out of scope for me per the dispatch instructions; it's a call for Ryan. The config comments in `.mergify.yml` spell this out inline so it isn't only in this PR description. ## Validation ### `mergify config validate` ``` $ mergify config validate -f .mergify.yml Fetching schema from https://docs.mergify.com… Configuration file '.mergify.yml' is valid. ``` ### `mergify config simulate` — real open PRs, both polarities **#4070** (`CTL-2240`, Ryan's own PR, all required + non-required checks green) — real state, no `queue:ready` label: ``` ### Rule: enqueue when a lane marks a PR ready (queue) - [ ] `label=queue:ready` - [ ] any of: [🔀 queue conditions] - [ ] all of: [📌 queue conditions of queue rule `default`] - [ ] `#review-threads-unresolved = 0` [🛡 GitHub repository ruleset rule `main branch protection`] ... - [X] `-check-failure=quality` - [X] `-draft` - [X] `-files~=^\.github/workflows/publish-` - [X] `-files~=^\.mergify\.yml$` - [X] `-files~=^plugins/dev/scripts/db-migrations/` - [X] `-head~=^release-please--` - [X] `base=main` - [X] all six required checks (success/neutral/skipped) - [X] all three non-required always-on gates ``` Every guard is TRUE except the label — as expected for an unlabeled PR. **While testing this** (toggling `queue:ready` on and off on #4070 to get the positive-polarity read, see below), I discovered #4070 genuinely has unresolved Codex P1 review threads right now (`#review-threads-unresolved = 0` reads `[ ]` false) — real, not caused by my testing. That's a live negative-polarity data point for that specific condition, not a config defect: the guard correctly refuses to admit a PR with unresolved review threads. Ryan/coordinator: #4070 is not actually `queue:ready`-eligible today for that reason, independent of this PR. **#4066** (`dependabot/bun/eslint-10.9.1`) — I temporarily applied `queue:ready` (removed immediately after, confirmed back to `["dependencies","javascript"]`), to get the positive polarity on a real PR: ``` $ mergify config simulate -f .mergify.yml #4066 1 rule matches ### ✅ Rule: enqueue when a lane marks a PR ready (queue) - [X] `-closed` [📌 queue requirement] - [X] `-conflict` [📌 queue requirement] - [X] `-draft` [📌 queue requirement] - [X] `base=main` - [X] `label=queue:ready` - [X] any of: [🔀 queue conditions] - [X] all of: [📌 queue conditions of queue rule `default`] - [X] `#review-threads-unresolved = 0` [🛡 GitHub repository ruleset rule `main branch protection`] - [X] all path exclusions, all six required checks, all three non-required gates, all TRUE ``` Full green — this dependabot PR would actually enter the queue with the label applied. This is the genuine positive control the plan's Phase 3 step 3 asks for (not a list of ticks on a PR that was never going to queue). **#4028** (`release-please--branches--main`) — real state, read-only, no label change — negative control for the outward-facing exclusion: ``` - [ ] `-head~=^release-please--` ``` Confirms the head-branch regex correctly refuses a real release-please PR (this repo has one live right now, since CTL-2263 reinstated release-please — landed on `main` between this branch's original cut and this rebase; the `-head~=^release-please--` exclusion already covers it, no config change needed, matching the plan's "correct under both futures" claim in decision 3). ### Required-check population, re-confirmed live `gh api .../commits/<sha>/check-runs` on both #4070 and #4066 shows all six ruleset-required contexts plus `packaging-gate`, `skills-gate`, `check-plugin-manifest-parity`, and `quality` present and green on both — consistent with the plan's check-population table. ## What's not in this PR - Queue activation (Ryan's one Mergify-dashboard click, plan Phase 4). - The first end-to-end live merge and post-merge trigger verification (Phase 4, after activation). - Negative-control drills (Phase 5) — path-exclusion refusal, `hold:hand-steps` refusal, pause behavior — run live after activation. - Any change to branch-protection / the ruleset's `strict_required_status_checks_policy` — that's Ryan's call, not made here. ## Linear CTL-2266 → In Review. --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Contributor
Author
|
@Mergifyio queue |
Merge Queue Status
Waiting for
All conditions
|
ryanrozich
force-pushed
the
release-please--branches--main
branch
8 times, most recently
from
August 29, 2026 05:01
4eea631 to
17dfc93
Compare
ryanrozich
force-pushed
the
release-please--branches--main
branch
from
August 29, 2026 14:47
17dfc93 to
9f905b3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This release is too large to preview in the pull request body. View the full release notes here: https://github.com/coalesce-labs/catalyst/blob/release-please--branches--main--release-notes/release-notes.md