fix(swift): repair release build, signing, and draft paths - #20
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
Codex review: found issues before merge. Reviewed August 10, 2026, 5:55 PM ET / 21:55 UTC. ClawSweeper reviewWhat this changesThis PR repairs the reusable Swift release workflow’s Linux shell, macOS signing import, and draft-release creation paths, with matching contract assertions. Merge readinessKeep open: the signing repair still replaces the macOS user keychain search list without restoring it after deleting the ephemeral keychain. Likely related people: steipete (high-confidence original Swift workflow author) and vincentkoc (medium-confidence recent release-workflow contributor). Priority: P1 Review scores
Verification
How this fits togetherThe reusable Swift release workflow builds tagged macOS and Linux archives, imports a signing identity to sign and notarize macOS assets, then creates and verifies a draft release. It consumes caller release inputs and secrets and produces signed artifacts for publication and Homebrew handoff. flowchart LR
A[Release inputs and frozen tag] --> B[Swift build jobs]
B --> C[Signing keychain setup]
C --> D[Sign and notarize assets]
D --> E[Create draft release]
E --> F[Independent verification]
F --> G[Publish and handoff]
Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Preserve the previous user keychain search list before selecting the ephemeral keychain and restore it in always-run cleanup, with a focused workflow contract assertion. Do we have a high-confidence way to reproduce the issue? Yes — source inspection shows that the workflow replaces the user keychain search list and its cleanup deletes the replacement without restoring the prior list. Is this the best way to solve the issue? No — the import repair is appropriate, but it must restore the prior runner keychain state in guaranteed cleanup to be upgrade-safe. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: not found in the target repository. Codex review notes: model internal, reasoning high; reviewed against 4abeffbc697a. LabelsLabel justifications:
EvidenceWhat 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
HistoryReview history (11 earlier review cycles; latest 8 shown)
|
|
Real after-fix container proof on
Observed terminal result: This exercises the affected dependency-preparation and archive-build steps in the actual Swift release container, including the Bash-only @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
Addressed the sole re-review finding in Focused proof remains green: actionlint, the Swift CLI workflow contract test, |
|
Land-ready on Verification:
No known proof gaps remain. After merge, the fix will be released as backward-compatible |
|
@clawsweeper automerge |
|
🦞🧹
Draft PRs stay fix-only until GitHub marks them ready for review. Pause with Automerge progress:
|
|
@openclaw/openclaw-secops independent code-owner approval is the only remaining gate. The exact head has green CI, full workflow validation, accepted real |
|
🦞✅ Source: Why human review is needed: What the maintainer can do as a next step: I added |
|
🦞✅ Source: Why human review is needed: What the maintainer can do as a next step: I added |
|
🦞✅ Source: Why human review is needed: What the maintainer can do as a next step: I added |
|
🦞✅ Source: Why human review is needed: What the maintainer can do as a next step: I added |
What Problem This Solves
The first production Swift CLI release uncovered several broken paths in the reusable workflow:
/bin/sh.set -u.codesigncould not access an imported identity.gh release create --verify-tagwithout a Git checkout.Why This Change Was Made
Repair each failure at the shared workflow boundary without changing caller inputs, permissions, signing identity, artifact names, verification gates, publication binding, or Homebrew handoff:
gh release view.Contract tests cover every repaired invariant.
Evidence
scripts/validate-workflows.shsuite passes, including actionlint, YAML parsing, tag-freeze, signing, draft-binding, verifier, and Homebrew adversarial scenarios.swift:6.3.3-noblelinux/amd64proof resolves dependencies, patches them, buildsimsg-linux-x86_64.tar.gz, runs the ELF binary, and reports 0.14.0.