Skip to content

Prepare signed macOS release path - #81

Merged
FernandoAbishai merged 1 commit into
mainfrom
hardening/signed-release-path
Oct 14, 2026
Merged

FernandoAbishai merged 1 commit into
mainfrom
hardening/signed-release-path

Conversation

@FernandoAbishai

Copy link
Copy Markdown
Owner

Problem

The repository exposed release:trust:signed, but that check loaded the ad-hoc candidate config. There was no concrete Developer ID/Hardened Runtime/notarization packaging path, and no verifier that proved Apple trust on the exact signed app.

Change

  • add a separate electron-builder.signed.cjs for Developer ID distribution signing, Hardened Runtime, minimal Electron JIT entitlements, and electron-builder notarization
  • add release:signed:arm64, which hard-fails on missing credentials before clearing/building anything
  • keep the existing public ad-hoc alpha config/workflow unchanged
  • rebuild the self-contained artifact with publishing explicitly disabled and rerun packaged runtime, identity, FFmpeg, backend, renderer, creator, optional-capability, and transcription gates against the exact signed app
  • verify strict code signing, Developer ID authority/team, Hardened Runtime, Gatekeeper acceptance, and the app notarization staple; verify the DMG container separately with hdiutil
  • support API-key, Apple-ID, or keychain-profile notarization credentials and certificate-file/keychain signing inputs

Verification

  • signed config static contract: PASS
  • primary/inherited entitlements plutil -lint: PASS
  • unsigned candidate trust check: PASS and unchanged
  • public release/workflow smokes: PASS
  • git diff --check: PASS
  • no-credential release:signed:arm64: correctly FAILS before artifact mutation with Developer ID credentials configured: No and Notary credentials configured: No
  • existing ad-hoc app is correctly rejected by the signed-artifact verifier

Current limitation

A real signed artifact cannot be produced on this machine because there is no valid Developer ID Application identity and no notarization credentials. This PR prepares and verifies the credentialed path; it does not claim that Apple signing/notarization has already succeeded.

The DMG container is integrity-checked but is not described as independently signed/notarized. The Apple trust claims apply to ScriptCut.app inside it, matching electron-builder 26.15.3 behavior.

Add a credentialed Developer ID/Hardened Runtime/notarization configuration and exact-artifact verification path without changing the existing ad-hoc public alpha workflow.\n\nThe signed path reruns packaged runtime/backend/renderer/transcription gates, verifies the trusted app inside the DMG, disables publishing, and fails before mutation when signing or notary credentials are unavailable.
Copilot AI balanced review requested due to automatic review settings October 14, 2026 04:30
@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.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@FernandoAbishai
FernandoAbishai merged commit 1ec5a0a into main Oct 14, 2026
2 checks passed
@FernandoAbishai
FernandoAbishai deleted the hardening/signed-release-path branch October 14, 2026 04:31
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.

2 participants