mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-14 02:01:19 +02:00
publish-release.sh took update.json's "page" from the draft's url, which is releases/tag/untagged-... and dies on publishing; 0.4.0's manifest shipped that dead link. It also looked the draft up with `gh release view <tag>`, which reports "release not found" while a draft's tag_name still reads untagged-... (and uses rate-limited GraphQL). - publish-release.sh: REST only. Checks the tag exists, finds the release by tag_name or else the one untagged draft titled "Frame Control X.Y.Z", keeps the 8-installer digest check, replaces update.json via the uploads API, then PATCHes tag_name/draft/prerelease/make_latest. Adds --dry-run. - updater.js: trust only this repo's releases/tag/<tag> pages (never untagged-...); otherwise link to releases/tag/v<version>. - release.yml: one draft job before the matrix (no racing creates), with --verify-tag and tag_name set explicitly. - Tests: tests/test_publish_release.py with a stand-in gh (tests/fakegh/gh), and an updater test for the page. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>