Skip to content

Commit 233d4c9

Browse files
feat: SOCKS5 proxy, electron-updater, Sentry crash reporting, code signing
- SOCKS5/4 dynamic port forwarding fully implemented in SSH layer - electron-updater replaces manual update check (download + install in-app) - Sentry crash reporting initialized in main and renderer processes - GitHub Actions workflow updated with macOS + Windows code signing support - Update banner now shows download progress bar and "Restart & Install" button - PortForwardDialog enables Dynamic/SOCKS5 with contextual help text Made-with: Cursor
1 parent 85bb99e commit 233d4c9

14 files changed

Lines changed: 1618 additions & 133 deletions

File tree

.github/workflows/release.yml

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,41 @@ jobs:
6060
- name: Install dependencies
6161
run: npm ci
6262

63+
# ── macOS code signing ────────────────────────────────────────────────────
64+
# Requires repository secrets:
65+
# APPLE_CERTIFICATE — base64-encoded .p12 certificate
66+
# APPLE_CERTIFICATE_PASSWORD — password for the .p12
67+
# APPLE_TEAM_ID — your Apple Developer Team ID
68+
# APPLE_ID — Apple ID for notarization
69+
# APPLE_APP_SPECIFIC_PASSWORD — app-specific password for notarization
70+
- name: Import macOS signing certificate
71+
if: matrix.platform == 'mac' && env.APPLE_CERTIFICATE != ''
72+
env:
73+
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
74+
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
75+
run: |
76+
echo "$APPLE_CERTIFICATE" | base64 --decode > certificate.p12
77+
security create-keychain -p "temp-keychain-password" build.keychain
78+
security import certificate.p12 -k build.keychain \
79+
-P "$APPLE_CERTIFICATE_PASSWORD" -T /usr/bin/codesign
80+
security list-keychains -s build.keychain
81+
security default-keychain -s build.keychain
82+
security unlock-keychain -p "temp-keychain-password" build.keychain
83+
security set-key-partition-list \
84+
-S apple-tool:,apple:,codesign: -s -k "temp-keychain-password" build.keychain
85+
rm certificate.p12
86+
6387
- name: Build & package
6488
env:
65-
CSC_IDENTITY_AUTO_DISCOVERY: false
89+
# macOS signing (no-op if secrets absent)
90+
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
91+
APPLE_ID: ${{ secrets.APPLE_ID }}
92+
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
93+
CSC_IDENTITY_AUTO_DISCOVERY: ${{ secrets.APPLE_CERTIFICATE != '' && 'true' || 'false' }}
94+
# Windows signing (no-op if secrets absent)
95+
WIN_CSC_LINK: ${{ secrets.WIN_CSC_LINK }}
96+
WIN_CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }}
97+
# GitHub token for electron-updater publish
6698
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6799
run: npm run build:${{ matrix.platform }}
68100

0 commit comments

Comments
 (0)