Skip to content

ci: three guards on the snapshot prune, and why it is asset by asset - #531

Merged
bernardladenthin merged 1 commit into
mainfrom
claude/hopeful-pascal-9jlbqb
Oct 12, 2026
Merged

bernardladenthin merged 1 commit into
mainfrom
claude/hopeful-pascal-9jlbqb

Conversation

@bernardladenthin

Copy link
Copy Markdown
Owner

Summary

Test plan

  • Affected unit / integration tests pass locally -- the script, extracted verbatim from the workflow, against a gh stub in eight cases (empty upload refused with nothing deleted; empty release and equal sets are no-ops; stale assets removed; an asset gone under us tolerated; a real deletion failure reported after the rest were tried; a failed re-read reported; a failed release view fails before anything is deleted); check-run-scripts.py (bash -n over every run script), check-shared-files.py, check-release-gate.py, the 122 buildcheck unit tests
  • CI is green on this branch
  • Docs / CHANGELOG updated where applicable

Related issues / PRs

Follow-up of #529. Siblings: bernardladenthin/BitcoinAddressFinder#386, bernardladenthin/srcmorph#224, bernardladenthin/streambuffer#178; policy: bernardladenthin/workspace#54.

Checklist

  • I have read CONTRIBUTING.md and CODE_OF_CONDUCT.md
  • My commits follow Conventional Commits
  • No security-sensitive changes (if there are, I have notified the maintainer privately per SECURITY.md)

🤖 Generated with Claude Code

https://claude.ai/code/session_01AytmJF9faEiQEVt6eetQS2


Generated by Claude Code

The step that removes the assets a snapshot run did not upload now refuses an
empty upload (every asset of the release would count as stale), treats an asset
that is already gone as removed (one re-read of the release after a failed
delete-asset), and reports a failed deletion while trying the rest, failing only
afterwards -- the assets of this upload are on the release either way, so this is
"attach first, then red" like the signature check.

The guards come from the job's own history, dug up from git and the Actions API:
its first form (2026-05-07) deleted and recreated the whole snapshot release, and
on 2026-05-10 the runs of several main pushes minutes apart deleted it under each
other -- every job of each burst but the last failed in that step with its
artifacts present. The job went with the Central migration the next morning and
came back as view-or-create plus upload --clobber without any cleanup, which is
how the backlog grew; no commit named the failures. The step comment, CLAUDE.md
and the CHANGELOG bullet say so now, and the runs are recorded in
workspace/policies/fat-jar-release-assets.md.

The step is the same text as the siblings' shared github-snapshot job.

Verified: the script, extracted verbatim from the workflow, against a gh stub in
eight cases (empty upload refused with nothing deleted; empty release and
equal sets are no-ops; stale assets removed; an asset gone under us tolerated;
a real deletion failure reported after the rest were tried; a failed re-read
reported; a failed release view fails before anything is deleted), bash -n over
every run script, the shared-files and release-gate checks, the buildcheck
unit tests.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AytmJF9faEiQEVt6eetQS2
@sonarqubecloud

Copy link
Copy Markdown

@bernardladenthin
bernardladenthin merged commit 44a8768 into main Oct 12, 2026
49 of 68 checks passed
@bernardladenthin
bernardladenthin deleted the claude/hopeful-pascal-9jlbqb branch October 12, 2026 12:25

This branch had an error being deployed

1 failed and 1 active deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants