You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The reconcile-stale-releases self-heal (#7149) creates a missing tag for a merged-but-untagged release PR at the current main head, not at the release PR's own merge commit.
Observed live today (2026-07-24): the ui-kit v1.1.2 release PR (#8342) merged as 962fa08 during the afternoon's Actions runner starvation, so its release-please tagging run was cancelled before executing (ten consecutive Package Release Please runs were cancelled while queued). When the self-heal finally ran, it created ui-kit-v1.1.2 + the GitHub release at 16:37 pointing at d09fbe2 — main head, two commits later — which silently swept ddb674e (fix(ui-kit): declare react-hook-form as a dependency, #8494) into the 1.1.2 tag and the published artifact.
Consequences
Version-content drift: published 1.1.2 contains a commit that semantically belonged to 1.1.3. Harmless this time (a dependency declaration), but the same mechanism would happily sweep a breaking change into a patch tag.
Zombie release PR: the already-open v1.1.3 PR (chore(release): cut ui-kit v1.1.3 #8506) became permanently unreleaseable — release-please logs No commits for path: packages/loopover-ui-kit, skipping (the swept commit is now behind the tag) and neither regenerates nor prunes the PR, so its stale shared-manifest copy sat CONFLICTING with no self-heal path. Closed manually.
Fix
When reconciling a merged-but-untagged release PR, resolve the PR's merge_commit_sha and create the tag there, not at the branch head. If the merge commit can't be resolved, fail loudly rather than tagging head.
Acceptance criteria
The reconcile path tags the release PR's merge_commit_sha.
A regression test pins that the tag ref sent to the API equals the resolved merge commit, and that an unresolvable merge commit aborts without creating a tag.
What happened
The
reconcile-stale-releasesself-heal (#7149) creates a missing tag for a merged-but-untagged release PR at the current main head, not at the release PR's own merge commit.Observed live today (2026-07-24): the ui-kit v1.1.2 release PR (#8342) merged as 962fa08 during the afternoon's Actions runner starvation, so its release-please tagging run was cancelled before executing (ten consecutive
Package Release Pleaseruns were cancelled while queued). When the self-heal finally ran, it createdui-kit-v1.1.2+ the GitHub release at 16:37 pointing at d09fbe2 — main head, two commits later — which silently swept ddb674e (fix(ui-kit): declare react-hook-form as a dependency, #8494) into the 1.1.2 tag and the published artifact.Consequences
No commits for path: packages/loopover-ui-kit, skipping(the swept commit is now behind the tag) and neither regenerates nor prunes the PR, so its stale shared-manifest copy sat CONFLICTING with no self-heal path. Closed manually.Fix
When reconciling a merged-but-untagged release PR, resolve the PR's
merge_commit_shaand create the tag there, not at the branch head. If the merge commit can't be resolved, fail loudly rather than tagging head.Acceptance criteria
merge_commit_sha.