JSON Analyzer v0.1.14 - The Release Bell Finds Its Rope
JSON Analyzer v0.1.14 - The Release Bell Finds Its Rope
The Quest
The forge could build a release when the right tag arrived, but a missed GitHub release had no clean path back. This release gives the release bell a visible rope: an existing tag can now be sent through the Release workflow from GitHub Actions, while the normal tag-push path remains unchanged.
What Awoke
- The Release workflow can now be run manually with an existing
vX.Y.Ztag. - Release jobs now resolve and reuse one
RELEASE_TAGvalue across validation, draft creation, asset uploads, and final publishing. - Manual recovery now checks that the requested tag exists and still has a successful
CIrun with the required release artifacts. - Existing releases are no longer forced back to draft when a recovery run updates notes or uploads missing assets.
- The release checklist now explicitly includes pushing the version tag and describes the CI artifact requirement for manual recovery.
Runes of Assurance
pnpm -C frontend run typecheckpassed.pnpm -C frontend run lintpassed.pnpm -C frontend run testpassed with 127 tests.ruby -e 'require "yaml"; YAML.load_file(".github/workflows/release.yml"); puts "release workflow YAML parsed"'passed.git diff --checkpassed.- The release workflow diff was reviewed after the draft-preservation fix.
Known Boundaries
- Manual release recovery still depends on non-expired CI artifacts for the tagged commit.
- If release artifacts have expired, a fresh release commit or CI artifact rebuild is still required.
actionlintwas not available on this workstation, so GitHub Actions semantic linting was not run locally.- Rust format, clippy, and test checks could not be run on this workstation because
cargoandrustfmtwere not available onPATH.