chore(release): pre-bump version artifacts to 1.6.0 (un-stall the release train)#583
Merged
Conversation
PR #581 merged without a semver label, so its Auto Semver Tag run failed (as designed). The recovery rerun — after labeling semver:minor — got as far as pushing the bump commit, but the rerun replays the original event payload: its checkout pinned main at PR #581's merge, and main has since advanced (PR #582), so the push was rejected non-fast-forward. Reruns always replay the same stale SHA, so that path cannot succeed anymore. This PR takes auto-tag.yml's documented escape hatch instead: pre-bump every version artifact to 1.6.0 in the PR itself. On merge, the auto-tag run finds the artifacts already at the new version, skips the release-bot push, and proceeds straight to tag + GitHub Release + publish dispatch. Rendered via the same scripts auto-tag runs (render_site.py, render_site_markdown.py, render_server_card.py). Also picks up server.json, which render_server_card.py rewrites but auto-tag's git-add list does not stage. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Deploying synthpanel with
|
| Latest commit: |
a2cd029
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://44f88130.synthpanel.pages.dev |
| Branch Preview URL: | https://release-v1-6-0.synthpanel.pages.dev |
claude-dataviking
requested review from
openclaw-dv and
the-data-viking
as code owners
July 18, 2026 18:15
claude-dataviking
added a commit
that referenced
this pull request
Jul 18, 2026
…uto-tag can verify the SHA (#584) The first cut of this check read labels from the event payload and used cancel-in-progress concurrency. Both interact badly with auto-tag.yml's "Verify CI checks passed" step, which refuses to tag while ANY non-green check run sits on the merged head SHA: - Label events don't move the head SHA, so the opened-event run that (correctly) failed or was cancelled before the label landed lingers non-green on the very SHA auto-tag verifies. This exact interaction blocked the v1.6.0 recovery: PR #583's auto-tag run refused to tag because the superseded Semver Label run sat cancelled on its head SHA. - Payload-based runs can never be healed: a rerun replays the original payload, so it stays red even after the label is added. Now the check fetches labels fresh from the API (rerunnable to green), drops concurrency cancellation (a cancelled conclusion is just another way to poison the SHA; runs take ~2s), and — once green — re-runs any superseded non-green runs of itself on the same SHA so they re-fetch labels and flip green, leaving the SHA clean for auto-tag. Co-authored-by: njord <njord@njords-Mac-mini.localdomain> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
claude-dataviking
added a commit
that referenced
this pull request
Jul 18, 2026
The "Verify CI checks passed" step counted EVERY check run on the merged head SHA. The check-runs API returns runs from every check suite ever started there, and label events don't move the head — so superseded red/cancelled runs (e.g. the pre-label `opened` Semver Label run) parked on the SHA forever and blocked tagging. This blocked the first v1.6.0 attempt. Fix: extract the logic into .github/scripts/verify-ci-checks.sh and collapse to the latest run per (app, name) — started_at with id as same-second tiebreak — before judging, mirroring GitHub's own merge-box collapse. The script runs standalone (read-only) against any SHA. Also: - Stage root server.json in the version-bump commit. render_server_card.py rewrites it alongside the server card, but it was missing from git add and drifted on main (bit PR #583). - Remove semver-label.yml's self-heal rerun step (added in PR #584): it existed only to flip superseded runs green for the old count-everything verify. With latest-per-name evaluation it is dead weight; dropping it also drops the actions:write permission. Validated read-only against 9ebceaa (PR #584 head, filter=all to reconstruct the pre-self-heal state): old logic refuses (stale in_progress Cloudflare Pages attempt + failed pre-label Semver Label run), new logic ignores the 3 superseded runs and passes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
claude-dataviking
added a commit
that referenced
this pull request
Jul 18, 2026
The "Verify CI checks passed" step counted EVERY check run on the merged head SHA. The check-runs API returns runs from every check suite ever started there, and label events don't move the head — so superseded red/cancelled runs (e.g. the pre-label `opened` Semver Label run) parked on the SHA forever and blocked tagging. This blocked the first v1.6.0 attempt. Fix: extract the logic into .github/scripts/verify-ci-checks.sh and collapse to the latest run per (app, name) — started_at with id as same-second tiebreak — before judging, mirroring GitHub's own merge-box collapse. The script runs standalone (read-only) against any SHA. Also: - Stage root server.json in the version-bump commit. render_server_card.py rewrites it alongside the server card, but it was missing from git add and drifted on main (bit PR #583). - Remove semver-label.yml's self-heal rerun step (added in PR #584): it existed only to flip superseded runs green for the old count-everything verify. With latest-per-name evaluation it is dead weight; dropping it also drops the actions:write permission. Validated read-only against 9ebceaa (PR #584 head, filter=all to reconstruct the pre-self-heal state): old logic refuses (stale in_progress Cloudflare Pages attempt + failed pre-label Semver Label run), new logic ignores the 3 superseded runs and passes. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
No release has shipped since v1.5.7 (Jun 5): every merge since then lacked a
semver:*label, so every post-merge Auto Semver Tag run failed loud (23/23). #582 added the pre-merge Semver Label check to stop the bleeding; this PR cuts the stalled release itself.The prescribed recovery — label the last merged PR (#581)
semver:minorand rerun its failed auto-tag run — was attempted and got all the way to the bump-commit push, which was rejected non-fast-forward: a rerun replays the original event payload, so its checkout pins main at #581's merge, and main has since advanced (#582). Every rerun replays the same stale SHA, so that path is permanently dead.What
Take auto-tag.yml's documented escape hatch: pre-bump every version artifact in the PR. On merge, the auto-tag run (this PR carries
semver:minor) computes v1.6.0, finds the artifacts already there, skips the release-bot push, and goes straight to tag + GitHub Release + PyPI publish dispatch.src/synth_panel/__version__.py→ 1.6.0site/index.html,site/index.md— re-rendered viascripts/render_site.py/render_site_markdown.pysite/.well-known/mcp/server-card.json+server.json— re-rendered viascripts/render_server_card.py(note:server.jsonis rewritten by the render script but is not in auto-tag'sgit addlist — the pre-bump path covers it; worth adding to the staged paths in the pending dataviking-infra auto-tag fix)v1.6.0 (minor) matches the label added to #581 — the window since v1.5.7 includes features (v3 branching dispatch, MCP
max_cost, synthesis failure-recovery ladder, ...).Verification
tests/test_version_artifacts_in_sync.py,tests/test_site_markdown.py,tests/test_well_known_server_card.py,tests/test_site_version.py— 32/32 pass locally on Python 3.12.v1.6.0tag exists yet (checked local +git ls-remote).🤖 Generated with Claude Code