Skip to content

chore(release): pre-bump version artifacts to 1.6.0 (un-stall the release train)#583

Merged
claude-dataviking merged 1 commit into
mainfrom
release/v1.6.0
Jul 18, 2026
Merged

chore(release): pre-bump version artifacts to 1.6.0 (un-stall the release train)#583
claude-dataviking merged 1 commit into
mainfrom
release/v1.6.0

Conversation

@claude-dataviking

Copy link
Copy Markdown
Contributor

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:minor and 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.0
  • site/index.html, site/index.md — re-rendered via scripts/render_site.py / render_site_markdown.py
  • site/.well-known/mcp/server-card.json + server.json — re-rendered via scripts/render_server_card.py (note: server.json is rewritten by the render script but is not in auto-tag's git add list — 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

  • All three render scripts run clean; 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.
  • No v1.6.0 tag exists yet (checked local + git ls-remote).

🤖 Generated with Claude Code

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>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 18, 2026

Copy link
Copy Markdown

Deploying synthpanel with  Cloudflare Pages  Cloudflare Pages

Latest commit: a2cd029
Status: ✅  Deploy successful!
Preview URL: https://44f88130.synthpanel.pages.dev
Branch Preview URL: https://release-v1-6-0.synthpanel.pages.dev

View logs

@claude-dataviking claude-dataviking added the semver:minor Bump minor version on merge label Jul 18, 2026
@claude-dataviking claude-dataviking added the semver:minor Bump minor version on merge label Jul 18, 2026
@claude-dataviking
claude-dataviking merged commit c44fdcb into main Jul 18, 2026
22 of 23 checks passed
@claude-dataviking
claude-dataviking deleted the release/v1.6.0 branch July 18, 2026 18:19
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver:minor Bump minor version on merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant