Skip to content

[codex] Align release security - #36

Merged
ygsgdbd merged 1 commit into
mainfrom
codex/align-release-security
Jul 24, 2026
Merged

[codex] Align release security#36
ygsgdbd merged 1 commit into
mainfrom
codex/align-release-security

Conversation

@ygsgdbd

@ygsgdbd ygsgdbd commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Issue

ListenBar's release workflow regenerated the entire Homebrew cask on every release. The Homebrew tap now owns a custom postflight step that removes the quarantine attribute after installation, together with explicit unsigned and notarization caveats. A subsequent ListenBar release would have replaced those tap-managed sections with the older cask template.

The release zip also had SHA-256 and Sparkle EdDSA protection but no GitHub Artifact Attestation, and the project READMEs did not explain the different trust boundaries for Homebrew and manual downloads.

User impact

Without this change, a new release could silently remove the Homebrew quarantine handling and restore outdated installation guidance. Users would also lack a repository-backed provenance check for newly published release zips.

Root cause

The workflow treated the full Homebrew cask as generated output even though installation policy is maintained in ygsgdbd/homebrew-tap. This duplicated the cask definition across repositories and allowed the release automation to overwrite unrelated tap changes.

Changes

  • Grant the permissions required by actions/attest@v4 and attest only ListenBar-macOS-universal.zip before publishing the GitHub Release.
  • Update only the existing cask's version, sha256, and url fields.
  • Fail the release if the cask is missing or any release-controlled field does not appear exactly once.
  • Preserve tap-managed postflight, caveats, uninstall, and zap content.
  • Document in both READMEs that brew trust authorizes the third-party cask, while the cask's custom postflight removes quarantine without signing or notarizing ListenBar.
  • Document SHA-256, Sparkle EdDSA, and GitHub Artifact Attestation verification, with an explicit boundary that v0.4.0 and earlier releases do not have attestations.

Validation

  • rtk just check
  • Workflow YAML parse
  • actionlint for the changed workflow configuration, excluding the existing SC2129 and softprops/action-gh-release@v1 baseline findings
  • rtk git diff --check
  • Temporary cask update test confirming only version, sha256, and url change, tap-managed content remains intact, and a missing release field aborts the update

@ygsgdbd
ygsgdbd marked this pull request as ready for review July 24, 2026 07:12
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

1 similar comment
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@ygsgdbd
ygsgdbd merged commit 48e2cf4 into main Jul 24, 2026
2 checks passed
@ygsgdbd
ygsgdbd deleted the codex/align-release-security branch July 24, 2026 07:12
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