Enforce a current pre-tag release QA gate - #92
Merged
Conversation
janicduplessis
force-pushed
the
codex/release-qa-gate
branch
from
August 29, 2026 04:23
fa6d4fd to
4c6e83f
Compare
janicduplessis
marked this pull request as ready for review
August 29, 2026 04:23
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.
Description
PR #77 proposed a useful pre-tag QA gate, but its branch and protocol had fallen behind the current CLI, package layout, runtime state, cache suites, and launch-status contracts. This rebuilds that gate from current
mainand closes #91.Solution
The release process now prepares the final version, lockfile, skill stamp, and tarballs before running the repository's complete preflight and native/manual QA. It pushes the proven release commit without a tag, waits for blocking CI on that exact SHA, and only then creates the publishing tag.
The preflight includes formatting, linting, build, type checking, dead-code checks, unit and fast E2E tests, runtime-floor smoke coverage, and CLI loading checks.
A change-sensitive pre-tag matrix maps lifecycle, cache, project-shape, remote, release-swap, Android flavor, and launch-status changes to the native or manual evidence they require. The field protocol delegates cache assertions to the machine-readable cache suite and keeps manual work focused on real repositories, authenticated providers, release swaps, flavors, and launch UX. It also documents the current four-state launch contract, safe throwaway-fixture preparation, severity gates, skip reporting, and evidence requirements.
The native loop now accepts the valid
"bundling"launch state and fails closed when its cached-build no-compile log evidence is missing.The supporting E2E/CI documentation now matches the current pnpm/Vitest workspace, Node 22/24 repository matrix, exact Node 20.19.4 published-runtime job, and resolved cache findings.
Closes #91.
Test plan
pnpm run format:check.pnpm run lint.pnpm run build.pnpm run typecheck.pnpm run knip.pnpm run test:runtime.node packages/stim-cli/dist/cli.mjs --helpand--version.pnpm test(2,256 passing; one timing-sensitive lock-race test passed on isolated and full rerun).pnpm run test:e2e(12 passing).--dry-run.git diff --check.