Require both platform artifacts for releases
All checks were successful
Release builds / Linux x64 artifact (push) Successful in 2m17s
Release builds / Windows x64 artifact (push) Successful in 1m19s
Release builds / Publish tagged Gitea release (push) Has been skipped
Core validation / Linux core gate (push) Successful in 1m17s

This commit is contained in:
gamer147
2026-08-03 22:35:43 -04:00
parent 4799b48b9c
commit d657c63e57
7 changed files with 473 additions and 129 deletions

View File

@@ -1085,6 +1085,16 @@ do not mix mechanical moves with semantic changes.
completed both platform artifact jobs and skipped tag-only promotion, accepting the runner/toolchain/cache/
build/upload path and the non-tag authority boundary. Slice 4 is now active.
**Slice 4 implementation completed 2026-08-03; hosted acceptance pending:** tag promotion now requires both
successful platform jobs and downloads their already-built artifacts into separate directories. The helper
binds both archives to the same clean tag commit/RID, verifies their external hashes, compares external build
metadata and payload ledgers with the copies inside each archive, requires Linux's dynamic smoke and Windows's
AMD64/ABI/import report, and generates combined release checksums. Creation and retry expose exactly three
public assets—Linux archive, Windows archive, and `RELEASE-SHA256SUMS`—while unexpected assets, release
mismatches, and same-name/different-size collisions fail without mutation. Synthetic paired-artifact,
creation/resume/refusal, and workflow-dependency tests pass. The next gate is a hosted develop run with both
builds green and promotion skipped; only after that proof may the user deliberately select a future tag.
**Completion gate:** one deliberately selected future tag produces a single Gitea release containing the
Linux `.tar.gz`, Windows `.zip`, and combined archive checksums; both archives bind to the tag commit, Linux
retains its dynamic packaged smoke, Windows passes all structural PE/payload gates, and neither platform job