From 23e6083162a348fb82324a4d2a502fd0b505c2cb Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Tue, 28 Jul 2026 14:56:15 +0300 Subject: [PATCH] fix: report authoritative Electron architecture --- packages/electron/preload.mjs | 1 + packages/ui/src/lib/desktop.ts | 1 + packages/ui/src/stores/useUpdateStore.ts | 6 ++++++ packages/ui/src/types/desktop.d.ts | 2 +- 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/electron/preload.mjs b/packages/electron/preload.mjs index 74ac1a95..33a9a6c9 100644 --- a/packages/electron/preload.mjs +++ b/packages/electron/preload.mjs @@ -96,6 +96,7 @@ if (Number.isFinite(macosMajor) && macosMajor > 0) { contextBridge.exposeInMainWorld('__OPENCHAMBER_ELECTRON__', { runtime: 'electron', + arch: process.arch, macVibrancy: hasMacVibrancy, macVibrancySupported, trayEnabled, diff --git a/packages/ui/src/lib/desktop.ts b/packages/ui/src/lib/desktop.ts index d8b41983..8a4075e1 100644 --- a/packages/ui/src/lib/desktop.ts +++ b/packages/ui/src/lib/desktop.ts @@ -227,6 +227,7 @@ type DesktopBridgeGlobal = { type ElectronRuntimeGlobal = { runtime?: string; + arch?: string; macVibrancy?: boolean; macVibrancySupported?: boolean; trayEnabled?: boolean; diff --git a/packages/ui/src/stores/useUpdateStore.ts b/packages/ui/src/stores/useUpdateStore.ts index 18a24875..703caa39 100644 --- a/packages/ui/src/stores/useUpdateStore.ts +++ b/packages/ui/src/stores/useUpdateStore.ts @@ -67,6 +67,12 @@ function detectDeviceClass(): 'mobile' | 'tablet' | 'desktop' | 'unknown' { } function detectArch(): 'arm64' | 'x64' | 'unknown' { + const electronArch = typeof window !== 'undefined' + ? window.__OPENCHAMBER_ELECTRON__?.arch?.toLowerCase?.() + : undefined; + if (electronArch === 'arm64' || electronArch === 'aarch64') return 'arm64'; + if (electronArch === 'x64' || electronArch === 'amd64' || electronArch === 'x86_64') return 'x64'; + const vscodeArch = typeof window !== 'undefined' ? (window as { __VSCODE_CONFIG__?: { arch?: string } }).__VSCODE_CONFIG__?.arch?.toLowerCase?.() : undefined; diff --git a/packages/ui/src/types/desktop.d.ts b/packages/ui/src/types/desktop.d.ts index 069dd056..37f5fbdf 100644 --- a/packages/ui/src/types/desktop.d.ts +++ b/packages/ui/src/types/desktop.d.ts @@ -5,7 +5,7 @@ declare global { __OPENCHAMBER_HOME__?: string; __OPENCHAMBER_MACOS_MAJOR__?: number; __OPENCHAMBER_LOCAL_ORIGIN__?: string; - __OPENCHAMBER_ELECTRON__?: { runtime?: string; macVibrancy?: boolean; macVibrancySupported?: boolean; trayEnabled?: boolean }; + __OPENCHAMBER_ELECTRON__?: { runtime?: string; arch?: string; macVibrancy?: boolean; macVibrancySupported?: boolean; trayEnabled?: boolean }; __OPENCHAMBER_PLATFORM__?: string; __OPENCHAMBER_DESKTOP_BOOT_OUTCOME__?: DesktopBootOutcome; }