Skip to content

fix(release): check the mac terminal host against the fork's signing team - #126

Merged
zpyoung merged 1 commit into
mainfrom
release-fix/v1.4.231-rc.0.zy01
Oct 19, 2026
Merged

zpyoung merged 1 commit into
mainfrom
release-fix/v1.4.231-rc.0.zy01

Conversation

@zpyoung

@zpyoung zpyoung commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner
Files Added Deleted Net
Test 0 0 0 0
Prod 1 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​9 $\color{#cf222e}{\Huge{\mathbf{−}}}$​3 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​6

ELI5

Fork releases can't build on macOS right now. A check that came in with upstream v1.4.230 insists the app is signed by upstream's Apple developer account. The fork signs with its own account, so the check always fails. This makes the check expect the fork's account instead.

What Changed

config/electron-builder.config.cjs (a permanent fork exception) hardcoded upstream's Developer ID team, 6CX3WHS9HZ, as the team the packaged macOS terminal host must be signed by. It now reads the team from APPLE_TEAM_ID. release-mac-build.yml already passes that variable to the publish step for notarization. A release build (ORCA_MAC_RELEASE=1) without it now throws instead of skipping the check. Local and CI builds are unchanged: they never set an expected team.

Before: every fork mac release fails after signing with [macos-terminal-host] signed team is ***, expected 6CX3WHS9HZ. That happened on run https://github.com/zpyoung/orca/actions/runs/39311063583, the build for v1.4.231-rc.0.zy01. After: the helper is checked against the team the fork's certificate and notarization credentials belong to.

Why

The check is worth keeping, because it catches a helper signed by the wrong identity. Only its expected value is upstream-specific. Hardcoding the fork's team ID in the file would also work, but that ID lives in a repository secret and shows as *** in logs. Reading the variable the notarization step already depends on keeps one source of truth. Failing hard when the variable is missing means the check can never turn itself off.

Linked Issue

N/A (fork release pipeline fix)

Visual Proof

N/A (build configuration only, no UI change)

Testing

node -e "require('./config/electron-builder.config.cjs')" loads cleanly, and oxlint and oxfmt pass on the file. The config tests that load in release mode are unaffected, because the team is read lazily inside the packaging hook. PR CI never runs the mac release build, so the real test is the recut of v1.4.231-rc.0.zy01 after this merges.

…team

v1.4.230 added a signed-team check for the packaged macOS terminal host
with upstream's Developer ID team hardcoded, so every fork release build
fails 'signed team is <fork team>, expected 6CX3WHS9HZ' after signing.
Read the team from APPLE_TEAM_ID, which the publish step already passes
for notarization, and fail a release build that omits it so the check
can never silently turn off.
Copilot AI balanced review requested due to automatic review settings October 19, 2026 19:39

@greptile-apps greptile-apps Bot 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.

Your trial has ended. Reactivate Greptile to resume code reviews.

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.

@zpyoung
zpyoung merged commit 4d57bf4 into main Oct 19, 2026
35 checks passed
@zpyoung
zpyoung deleted the release-fix/v1.4.231-rc.0.zy01 branch October 19, 2026 19:59
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