Skip to content

fix(release): serialize mcp-server-release.yml runs to prevent registry-publish races - #1

Open
asachs01 wants to merge 1 commit into
mainfrom
fix/mcp-server-release-concurrency
Open

fix(release): serialize mcp-server-release.yml runs to prevent registry-publish races#1
asachs01 wants to merge 1 commit into
mainfrom
fix/mcp-server-release-concurrency

Conversation

@asachs01

@asachs01 asachs01 commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Companion PR to wyre-technology/.github#67, part of Gate-6 pair-review task task_1787639127489_20350340 (boss-ruled 2026-08-25). Named reviewer: maintainer.

Why a separate PR here

This repo carries its own copy of mcp-server-release.yml, migrated from wyre-technology/.github by Aaron on 2026-08-24 as part of the org split (50 of 63 *-mcp repos, including conduit, now live under WYRE-AI). The copy carries the identical concurrency gap the sibling PR fixes. Same root cause, same fix, filed separately since this is a distinct repo with its own review/merge path.

Fix

Identical to wyre-technology/.github#67 — full rationale (including a correction on an initially-wrong cross-repo-collision claim that murph caught and I independently verified via GitHub's docs before committing) is in that PR's body rather than duplicated here. Short version: added

concurrency:
  group: release-${{ github.repository }}-${{ github.ref }}
  cancel-in-progress: false

Verification

Same as the sibling PR: YAML validated (python3 -c "import yaml; yaml.safe_load(...)"), no live trigger test (relies on documented GitHub Actions concurrency behavior).


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

…ry-publish races

Same fix as wyre-technology/.github#67 (this repo carries a duplicate copy
of the reusable workflow, migrated from wyre-technology on 2026-08-24 as
part of the org split). No concurrency group meant near-simultaneous
pushes to a caller's main could run this workflow twice in parallel, both
detect the same releasable HEAD via the existing git-tag check, and race
the MCP Registry publish step. Confirmed live via meraki-mcp's legacy
inline workflow (WYRE-AI/meraki-mcp#12, murph): 3 merges within 13s on
2026-08-21, 3 green Release runs, 3 failed "cannot publish duplicate
version" 400s.

Group is release-${{ github.repository }}-${{ github.ref }}. github.ref
alone already fully serializes the actual bug (same-repo races) --
GitHub scopes concurrency groups per-repository automatically even for a
reusable workflow's own group declaration, so two different callers never
queue against each other regardless of group-name string (verified
against GitHub's docs + community discussion, not assumed).
github.repository is included purely for a self-documenting group name.
cancel-in-progress: false is deliberate -- a queued run waits for the
in-flight release/publish to finish rather than cancelling it mid-publish.
@asachs01

Copy link
Copy Markdown
Contributor Author

Gate-6 pair-review — same fix as wyre-technology/.github#67, full verification detail posted there (root cause confirmed against the actual release-detection mechanism in this file, the github.repository claim checked against GitHub's own concurrency docs + the cited community discussion #88761's empirical cross-repo observation, no shadowing job-level concurrency block, cancel-in-progress:false reasoning sound).

Repo-specific checks: this file's diff is byte-identical in shape to #67's (verified by checking out the branch directly — valid YAML, concurrency block correctly at top level alongside jobs, not touching CHANGELOG.md because this repo genuinely doesn't have one, confirmed 404, so that's not an omission). CI here is thin (only codesmith configured, no actionlint) — nothing to fail, consistent with a repo freshly migrated in last night's org-split.

Verdict: approve. (PR comment, not a formal GitHub review — shared GH identity across fleet agents.) Agree with parking on the normal slate given the shared-file blast radius across both orgs.

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.

1 participant