Skip to content

fix: resolve open issues #3-#9 (release gates, script intent, contracts) - #18

Merged
systemfsoftware-maker merged 1 commit into
masterfrom
feature/fix-open-issues-3-9
Aug 21, 2026
Merged

fix: resolve open issues #3-#9 (release gates, script intent, contracts)#18
systemfsoftware-maker merged 1 commit into
masterfrom
feature/fix-open-issues-3-9

Conversation

@systemfsoftware-maker

Copy link
Copy Markdown
Collaborator

Fixes all seven open triage issues

Issue Verdict Fix
#3 tag gate false-ancestor full-history fetch of the default branch before merge-base --is-ancestor
#4 BinaryNotFound on direct install platform manifests emit peerDependencies on the launcher at the same version; metadata gate (was a vacuously-passing jq) now asserts version + os/cpu/libc + peer
#5 concurrency lane races force-moved tags concurrency.group keyed on github.sha, not github.ref
#6 exit-code contract duplicated in YAML black-box tests/exit_codes.rs pins exit 0 (clean) and exit 2 (blocked) via the real binary
#7 sidecar never written; guard inoperative staging writes binary-<suffix>.sha256; cross-check also re-fetches the GitHub release asset and verifies recorded == released == published digest; root publish ordered after asset upload
#8 check-matrix regex, passes vacuously scripts/lib/matrix-rows.ts parses release.yml as YAML; malformed YAML and empty-matrix fail loudly; flow-style fixtures in check-matrix.test.ts
#9 workflow YAML never validated in CI npm job runs rhysd/actionlint over ci.yml + release.yml; also runs the new deno task test

Verification (this branch, local run)

  • cargo fmt --check, clippy -D warnings, full test suite: green (exit_codes 2/2, classify 61, context 10, f1 6, pipeline 13)
  • deno test 4/4 (flow-style + malformed-YAML regression), deno lint, check-matrix: ok
  • pnpm lint / build / typecheck: ok (turbo cache)
  • classify.rs untouched: classifier mutation gate not required

Also fixes a latent vacuous gate found while editing: the publish metadata gate's jq invocation never received input and always exited 0; it now actually asserts the metadata it claims to.

#3 tag gate: fetch default branch with full history so force-pushed tag
   commits get an honest merge-base answer.
#4 platform packages emit peerDependencies on the launcher at the same
   version; npm auto-installs the peer on direct installs, and the publish
   metadata gate now asserts the cross-link (the old gate was a vacuous
   pass and never checked anything).
#5 concurrency group keyed on github.sha so a force-moved tag runs in a
   fresh lane instead of behind the stale run for the old ref.
#6 black-box exit_codes.rs pins the blocked-verdict exit code 2 contract
   the release smoke step asserts.
#7 staging writes the binary sha sidecar; the cross-check now re-fetches
   the GitHub release asset and verifies recorded vs released vs published
   digests (root publish ordered after asset upload).
#8 check-matrix parses release.yml as YAML (typed matrix rows) instead of
   regex-scraping lines; flow-style fixtures + malformed-input tests added
   so the gate fails loudly instead of passing vacuously.
#9 ci npm job runs actionlint over ci.yml and release.yml plus deno tests.

Verification (local, zig cc toolchain): cargo fmt/clippy/test all green
(exit_codes 2/2, classify 61, context 10, f1 6, pipeline 13); deno test
4/4, lint, check-matrix ok; pnpm lint/build/typecheck cached-ok.
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