Two related pain points surfaced while merging the 0.10.0 work (#157, #159/#160, #161, #162). Both forced manual intervention.
1. The Workflows (zizmor) check reports pending after its run succeeds
The workflows job in ci.yml (name: Workflows, runs zizmor) reliably shows as pending in gh pr checks and keeps the PR mergeStateStatus: BLOCKED even after its workflow run has concluded success (the job has conclusion=success and a completedAt, but the check status never reconciles). Observed on every PR in the 0.10.0 batch, each requiring an --admin merge.
Effect: no PR can auto-merge on green; the required check never reports green to branch protection.
Directions to investigate:
- The job runs on
push with no needs/paths filter, so it may register a check context that branch protection tracks differently from the PR head SHA (duplicate/hung context).
- Confirm whether the required-check name in branch protection matches exactly one context.
- Consider gating it behind the
changes filter or giving it a stable check name, or moving the workflow-audit into the fmt/clippy fast job.
2. Deleting a base branch on merge closes stacked PRs instead of retargeting
Merging #157 with --delete-branch while #159 was stacked on feat/waf-response-phase closed #159 rather than retargeting it to main; it had to be reopened as a fresh PR (#160) after rebasing off the now-merged base. GitHub retargets dependent PRs only in some cases; a deleted base branch generally closes them.
Mitigations:
- Open stacked PRs against
main from the start, or
- Merge the base PR without
--delete-branch until the stacked PR is retargeted, then delete, or
- Document the sequence in
CONTRIBUTING/release notes.
Neither is a correctness bug in the gateway; both are CI/release-process hygiene that cost time this cycle.
Two related pain points surfaced while merging the 0.10.0 work (#157, #159/#160, #161, #162). Both forced manual intervention.
1. The
Workflows(zizmor) check reports pending after its run succeedsThe
workflowsjob inci.yml(name:Workflows, runs zizmor) reliably shows aspendingingh pr checksand keeps the PRmergeStateStatus: BLOCKEDeven after its workflow run has concludedsuccess(the job hasconclusion=successand acompletedAt, but the check status never reconciles). Observed on every PR in the 0.10.0 batch, each requiring an--adminmerge.Effect: no PR can auto-merge on green; the required check never reports green to branch protection.
Directions to investigate:
pushwith noneeds/paths filter, so it may register a check context that branch protection tracks differently from the PR head SHA (duplicate/hung context).changesfilter or giving it a stable check name, or moving the workflow-audit into thefmt/clippyfast job.2. Deleting a base branch on merge closes stacked PRs instead of retargeting
Merging #157 with
--delete-branchwhile #159 was stacked onfeat/waf-response-phaseclosed #159 rather than retargeting it tomain; it had to be reopened as a fresh PR (#160) after rebasing off the now-merged base. GitHub retargets dependent PRs only in some cases; a deleted base branch generally closes them.Mitigations:
mainfrom the start, or--delete-branchuntil the stacked PR is retargeted, then delete, orCONTRIBUTING/release notes.Neither is a correctness bug in the gateway; both are CI/release-process hygiene that cost time this cycle.