Skip to content

fix(release): verify published tags after the staging cleanup - #1622

Merged
rmyndharis merged 1 commit into
mainfrom
fix/release-verify-order
Sep 15, 2026
Merged

rmyndharis merged 1 commit into
mainfrom
fix/release-verify-order

Conversation

@rmyndharis

Copy link
Copy Markdown
Owner

verify-published is the check that catches a release tag that is missing or points at the wrong digest, and the comment above it names the incident it exists for. It only needed docker and promote, so it could run beside cleanup-staging rather than after it. That cleanup deletes the package version when it reads only the staging tag on it, and GHCR's package-versions API is eventually consistent, so the deletion this check guards against could happen after the check had already passed.

  • verify-published now also needs cleanup-staging, and runs whenever promote succeeded, so a best-effort cleanup failure cannot suppress it.
  • The sessions table importer skips a row whose id is not a safe path key, the same way it already skips an unsafe name: the id now names the on-disk auth directory, so an unvalidated one would surface later as a refused start instead of a skipped row with a reason.
  • Two engine-interface comments still described the credential-teardown removal as targeting the session name's directory; they now say the directory is keyed by the id while the fence stays keyed by the unique name.

Verification: actionlint is clean, the new importer spec fails without the id guard, and lint, tsc --noEmit, format:check, test:cov (6382 tests) and test:docs pass locally.

The verify-published job only needed docker and promote, so it could run
beside cleanup-staging instead of after it. That cleanup deletes the
package version when it reads only the staging tag on it, and GHCR's
package-versions API is eventually consistent, so the check that exists
to catch a deleted release tag could pass before the deletion happened.

Also skips an imported sessions row whose id is not a safe path key: the
id now names the on-disk auth directory, so an unvalidated one would
only surface later as a refused start.
@rmyndharis
rmyndharis merged commit b4d3754 into main Sep 15, 2026
16 checks passed
@rmyndharis
rmyndharis deleted the fix/release-verify-order branch September 15, 2026 12:54
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.

1 participant