From 8f8bbbc43502d2b68639ea7812c8ea5858d91915 Mon Sep 17 00:00:00 2001 From: "Vincent (Wen Yu) Ge" <29069505+gewenyu99@users.noreply.github.com> Date: Wed, 15 Jul 2026 19:29:21 -0400 Subject: [PATCH] Draft release until all assets upload, then publish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The release was created published (draft: false) before any assets were uploaded. Since the wizard resolves releases/latest, the release went live pointing at the new version while skill-menu.json — uploaded last — was still minutes away, 404ing the wizard for that window. Create the release as a draft, upload every asset, then flip it to published as the final step. releases/latest ignores drafts, so it keeps pointing at the previous complete release until the new one is fully populated. Generated-By: PostHog Code Task-Id: 58d8e9e2-5c34-49cb-a53e-f0d51d2079c4 --- .github/workflows/build-release.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 882de04b..d89edead 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -143,7 +143,12 @@ jobs: **Version:** ${{ steps.version.outputs.version }} **SHA:** ${{ github.sha }} - draft: false + # Publish as a draft so `releases/latest` keeps pointing at the previous + # complete release while assets upload. Uploading takes a few minutes and + # skill-menu.json lands last, so a live release here would 404 the wizard + # for that window. Flipped to published in "Publish release" once every + # asset is uploaded. + draft: true prerelease: false - name: Upload skills bundle @@ -178,6 +183,15 @@ jobs: gh release upload "$RELEASE_TAG" "$file" --clobber done + - name: Publish release + # Every asset (bundle, skill ZIPs, skill-menu.json, docs) is now uploaded, + # so flip the draft to published atomically. This is the point `releases/latest` + # moves to the new version — the wizard never sees it without skill-menu.json. + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RELEASE_TAG: ${{ steps.version.outputs.tag }} + run: gh release edit "$RELEASE_TAG" --draft=false --latest + - name: Update latest tag env: RELEASE_TAG: ${{ steps.version.outputs.tag }}