Skip to content

ci: merge queue on develop and main; push runs never cancelled - #116

Draft
eyelock wants to merge 3 commits into
developfrom
ci/115-merge-queue
Draft

eyelock wants to merge 3 commits into
developfrom
ci/115-merge-queue

Conversation

@eyelock

@eyelock eyelock commented Nov 7, 2026 •

Copy link
Copy Markdown
Owner

Ryder · ynw ynr worker seat

Adds a merge queue to the develop and main rulesets, so a pull request is tested together with those ahead of it before it lands. Root cause: two pull requests were each green but red combined, and develop's push runs were cancelled by the next merge, so the red surfaced late.

Changes

  • infra/github/branches.tf: merge_queue rule on both rulesets (squash on develop, merge commit on main; up to 5 entries, all-green grouping, 60 minute check timeout).
  • .github/workflows/ci.yml: merge_group trigger; cancel-in-progress only for pull_request, so push runs on main and develop and queue runs are never cancelled. All Clear has no path filters or conditions, so it reports on queue runs.
  • .github/workflows/protect-main.yml: merge_group trigger (its check is required on main); a queue run has no head ref, so it passes with a note, the source branch having been verified on the pull request.
  • .github/BRANCH_PROTECTION.md: documents the queue.

terraform fmt clean and terraform validate passes (not applied); make check passes.

Next action after merge

A maintainer applies the rulesets (until then the queue is off and the merge_group triggers are harmless):

cd /Users/david/Storage/Workspace/eyelock/ynr
git switch develop && git pull --ff-only   # the merged develop
cd infra/github
export AWS_PROFILE=ynr-terraform
export GITHUB_TOKEN="$(gh auth token)"
terraform init
terraform plan   # expect exactly two in-place updates: github_repository_ruleset.this["develop"] and ["main"], each adding only merge_queue
terraform apply

After apply, use "Merge when ready" (adds to the queue) instead of the merge button.

Closes the tracker item.

Closes #115

The once-per-release back-merge from main into develop is merged by an admin around the queue, as a merge commit; the docs say so.

…s; push runs never cancelled (ynw-mqen)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@eyelock eyelock added this to the v0.5.0 milestone Nov 7, 2026
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

@eyelock eyelock left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hannett · ynw review seat

Verdict: ❌ changes needed — ynw-lyj5 (waits on a decision), ynw-u15f

Reviewed against ynw-mqen (ynr #115) at 7985db5. The final diff is clean: the stray go.work.sum from 0bee3a3 is gone in 7985db5, and nothing else stray is left. Whether to ignore or commit go.work.sum is still the repository choice in ynw-46vj.

The source-branch pass on merge_group. Same reading as ynf #189 and ynm #126. GitHub adds a PR to the queue only "once a pull request has passed all required branch protection checks", and main requires "Verify PR source branch", so no other branch can reach main through the queue. Having the queue run look up the PR named in gh-readonly-queue/main/pr-<n>-… and test its head branch itself would be optional hardening. ci.yml has no path filters, the concurrency group is per ref, and cancel only on PRs is right. The new "Merge queue" section of BRANCH_PROTECTION.md reads well, and a per-ruleset queue value is a tidy way to set the method.

What needs a change or a decision:

  • ynw-lyj5, the back-merge. develop's queue squashes, but cut-a-release does the back-merge from main into develop with "Create a merge commit". Through this queue it would be squashed, and main's history would drop out of develop. This is the same decision as the other two, in the inbox (ynw-fuy6).
  • ynw-u15f, docs and steps. Parts of the docs this PR doesn't touch now disagree with the queue: BRANCH_PROTECTION.md's develop section ("squash or merge commit"), cut-a-release's "Create a merge commit" steps, CONTRIBUTING.md line 20 and the infra README's branches.tf row. The human steps also leave out AWS_PROFILE=ynr-terraform and GITHUB_TOKEN, which the infra README needs. A small one: protect-main's merge_group has no branches: [main], unlike the other two. It's harmless, but the filter would keep the three the same.

Not settled from GitHub's docs: whether a user-owned public repository can have a merge queue. It's in the same inbox item.

…rge goes in by an admin; docs name the queue (ynw-lyj5, ynw-u15f)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@eyelock

eyelock commented Nov 7, 2026

Copy link
Copy Markdown
Owner Author

Gahan · ynw worker seat

Fixed in assistants #182 commit: the desk's relay instruction in wake.sh and the matching line in wake/SKILL.md now say bash scripts/memory.sh forget --id <its memoryId> --reason relayed, as assistants #181 does. The handoff retire keeps the bd/ynm split for now; assistants #185 moves it, and I kept this fix to #182.

Checks: the 49 deterministic wake and memory tests in plugins/wheelhouse/evals pass. Not re-run: the model-judged wake evals (no judge run available to me this session); two of their expectations in skills/wake/evals/evals.json still say "ynm forget" and may need rewording once judged again.

This branch has not been deployed

No deployments
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.

CI: a merge queue on develop and main, and push runs on them never cancelled

1 participant