Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
fe5ad84
Merge pull request #66 from OpenConduit/main
andrewchumchal May 18, 2026
b364913
feat(#37): wire settings:open-file IPC
andrewchumchal May 19, 2026
e13cad9
fix(#37): remove encryption from settings store + decrypt-then-migrate
andrewchumchal May 19, 2026
a7e4ce2
fix(#37): resolve TS errors — string literal for SETTINGS_OPEN_FILE, …
andrewchumchal May 19, 2026
343a643
Merge pull request #67 from OpenConduit/feat/settings-open-file
andrewchumchal May 19, 2026
2191d52
feat: stamp durationMs on MCP tool call results (#18)
andrewchumchal May 19, 2026
c8b9a5b
fix: align CSS custom properties with #25 theme schema
andrewchumchal May 19, 2026
5c601b9
feat: add activeThemeId to default AppSettings
andrewchumchal May 19, 2026
12c894e
feat(extensions): Phase 2 client — IPC handler, preload bridge, env t…
andrewchumchal May 20, 2026
ee43a91
chore: update @openconduit/core to 2.0.0-alpha.01
andrewchumchal May 20, 2026
8284925
chore: fix @openconduit/core version to 2.0.0-alpha.1
andrewchumchal May 20, 2026
fde1c84
chore: lock @openconduit/core to 2.0.0-alpha.1
andrewchumchal May 20, 2026
7f9150f
chore: update @openconduit/core to 2.0.0-alpha.1
andrewchumchal May 20, 2026
3c718f2
Merge pull request #68 from OpenConduit/feat/bottom-panel
andrewchumchal May 20, 2026
c987352
Merge pull request #69 from OpenConduit/feat/theme-css-vars
andrewchumchal May 20, 2026
e32e747
feat(extensions): Phase 3 client — update to core 2.0.0-alpha.2, expa…
andrewchumchal May 20, 2026
b8c3fc2
Merge pull request #70 from OpenConduit/feat/extension-platform-phase3
andrewchumchal May 20, 2026
e6f5f6b
feat(extensions): populate manifest field + OPENCONDUIT_DEV_EXTENSIONS
andrewchumchal May 20, 2026
c417364
fix: remove tool field from osxNotarize (not in ForgePackagerOptions …
andrewchumchal May 20, 2026
c9252fb
Merge pull request #71 from OpenConduit/feat/extension-platform-phase5
andrewchumchal May 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 29 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,40 @@ jobs:
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Import signing certificate
if: ${{ secrets.APPLE_CERTIFICATE != '' }}
env:
CERTIFICATE_BASE64: ${{ secrets.APPLE_CERTIFICATE }}
CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
run: |
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
KEYCHAIN_PASSWORD=$(openssl rand -base64 32)
security create-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
security set-keychain-settings -lut 21600 "$KEYCHAIN_PATH"
security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
echo "$CERTIFICATE_BASE64" | base64 --decode > $RUNNER_TEMP/certificate.p12
security import "$RUNNER_TEMP/certificate.p12" -P "$CERTIFICATE_PASSWORD" -A -t cert -f pkcs12 -k "$KEYCHAIN_PATH"
security list-keychain -d user -s "$KEYCHAIN_PATH"
security set-key-partition-list -S apple-tool:,apple: -s -k "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
echo "KEYCHAIN_PATH=$KEYCHAIN_PATH" >> $GITHUB_ENV
echo "KEYCHAIN_PASSWORD=$KEYCHAIN_PASSWORD" >> $GITHUB_ENV

- name: Build macOS arm64
run: npm run make -- --platform darwin --arch arm64
env:
# Code signing (optional)
# APPLE_ID: ${{ secrets.APPLE_ID }}
# APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
# APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
# CSC_LINK: ${{ secrets.CSC_LINK }}
# CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
APPLE_IDENTITY: ${{ secrets.APPLE_CERTIFICATE != '' && 'Developer ID Application: Andrew Chumchal (2TT36YTB8P)' || '' }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
NODE_ENV: production

- name: Clean up keychain
if: always()
run: |
if [ -n "$KEYCHAIN_PATH" ]; then
security delete-keychain "$KEYCHAIN_PATH" || true
fi

- uses: actions/upload-artifact@v4
with:
name: openconduit-mac-arm64-${{ github.ref_name }}
Expand Down
143 changes: 138 additions & 5 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions packages/desktop/entitlements.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key><true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key><true/>
<key>com.apple.security.cs.disable-library-validation</key><true/>
<key>com.apple.security.network.client</key><true/>
</dict>
</plist>
17 changes: 17 additions & 0 deletions packages/desktop/forge.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,30 @@ import { VitePlugin } from '@electron-forge/plugin-vite';
import { FusesPlugin } from '@electron-forge/plugin-fuses';
import { FuseV1Options, FuseVersion } from '@electron/fuses';

const isMac = process.platform === 'darwin';

const config: ForgeConfig = {
packagerConfig: {
asar: true,
extraResource: ['icons'],
name: 'OpenConduit',
executableName: 'openconduit',
icon: 'icons/icon', // .icns on macOS, .ico on Windows, .png on Linux
...(isMac && process.env.APPLE_IDENTITY && {
osxSign: {
identity: process.env.APPLE_IDENTITY,
optionsForFile: () => ({
entitlements: 'entitlements.plist',
entitlementsInherit: 'entitlements.plist',
hardenedRuntime: true,
}),
},
osxNotarize: {
appleId: process.env.APPLE_ID!,
appleIdPassword: process.env.APPLE_APP_SPECIFIC_PASSWORD!,
teamId: process.env.APPLE_TEAM_ID!,
},
}),
},
rebuildConfig: {},
makers: [
Expand Down
4 changes: 2 additions & 2 deletions packages/desktop/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "openconduit",
"productName": "OpenConduit",
"version": "1.2.2",
"version": "2.0.0-alpha.1",
"description": "Cross-platform desktop AI chat client — OpenAI, Anthropic, LM Studio, and MCP tool servers",
"main": ".vite/build/main.js",
"private": true,
Expand Down Expand Up @@ -57,7 +57,7 @@
"@anthropic-ai/sdk": "^0.96.0",
"@google/genai": "^2.3.0",
"@modelcontextprotocol/sdk": "^1.29.0",
"@openconduit/core": "^1.2.0",
"@openconduit/core": "^2.0.0-alpha.3",
"@types/pdf-parse": "^1.1.5",
"electron-squirrel-startup": "^1.0.1",
"electron-store": "^11.0.2",
Expand Down
Loading
Loading