fix: sign and notarize macOS release binaries - #12
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: blocked before merge. Reviewed September 14, 2026, 11:20 AM ET / 15:20 UTC. ClawSweeper reviewWhat this changesMoves releases to a pinned workflow that signs and notarizes macOS binaries, preserves archive formats, updates Homebrew, and checks the macOS 13 deployment target. Merge readiness⛔ Blocked before merge - 3 items remain The signing work remains useful: current main and v0.2.0 use the unsigned release path. This owner-authored PR should remain open, with one correction to the release guide’s native-execution claim. Priority: P2 Review scores
Verification
How this fits togetherOrdercli’s release pipeline turns a versioned source revision into downloadable binaries and Homebrew updates. The shared workflow builds those binaries, applies Apple signing credentials, verifies the resulting artifacts, and publishes them. flowchart LR
A[Version dispatch] --> B[Protected source and metadata checks]
B --> C[Build six platform binaries]
C --> D[Check macOS deployment target]
D --> E[Sign and notarize macOS binaries]
E --> F[Independent artifact verification]
F --> G[GitHub release]
G --> H[Homebrew update]
Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Preserve the signed-artifact and archive-compatibility design, verify release prerequisites before switching workflows, and explicitly assign quarantined native execution checks on both architectures. Do we have a high-confidence way to reproduce the issue? Yes for the review finding: the pinned verifier job can be inspected end-to-end and contains no CLI execution. The original Gatekeeper rejection was not reproduced during this read-only review. Is this the best way to solve the issue? Yes, the shared signing workflow is a suitable bounded solution and preserves distribution contracts; the release guide must distinguish artifact verification from native execution. Full review comments:
Overall correctness: patch is correct AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 0bb449112ed7. LabelsLabel changes:
Label justifications:
EvidenceAcceptance criteria:
What I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
|
Direct macOS downloads currently carry only the Go linker's ad-hoc signature and fail Gatekeeper. Move releases to the shared Go CLI workflow pinned at v1.9.0 (f613cbfed2b043159c850c353e7facb8c89833b0), using Peter Steinberger's personal Developer ID policy (Y5PE65HELJ).
The caller maps the existing signing/notary secrets, preserves all six native archive names, archive documentation, and checksums.txt, and hands the verified binary assets to steipete/homebrew-tap. Signing and notarization happen before independent arm64/Intel verification and publication. Workflow dispatch now owns annotated tag creation.
A GoReleaser post-build check rejects Darwin binaries unless LC_BUILD_VERSION targets macOS 13.0. The same release matrix and regression checks run in macOS CI. Release docs cover the new lifecycle, quarantine/Gatekeeper verification, secret names, and the cgo deployment-flag requirement if cgo is introduced. Remove the unused source-archive Homebrew helper.
Validation: actionlint; GoReleaser config and full snapshot build; deployment-target regression tests; Go build and tests (80.3% coverage); golangci-lint; Docker build/smoke; independent review through P2. Formatting inspection found four pre-existing files outside this change.