* feat: add Windows ARM64 support with x64-baseline CLI workaround Windows ARM64 native opencode.exe fails with a Bun FFI/TinyCC dlopen error (anomalyco/opencode#19130). As a temporary workaround: - Bundle x64-baseline OpenCode CLI on ARM64 instead of native ARM64 (prepare-opencode-cli.mjs, env-runtime.js) - Disable OpenCode self-upgrade on ARM64 in server, VS Code, and UI (upgrade-capability.js, opencode-upgrade-runtime.ts, useUIStore.ts, OpenCodeCliSettings.tsx, search.ts, SettingsView.tsx, platform.ts) - Add ARM64 Windows cross-compile builds to release and smoke workflows (release.yml, release-desktop-smoke.yml) - Refactor Windows latest.yml to use combine-electron-manifests pattern matching macOS, since two arches now produce per-arch manifests The CI ARM64 build itself is permanent; only the x64-baseline CLI bundling and upgrade disablement are temporary and should be reverted when the upstream issue is resolved. * fix(desktop): select Windows updater by architecture --------- Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
14 lines
660 B
JavaScript
14 lines
660 B
JavaScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import { resolveUpdaterChannel } from './updater-channel.mjs';
|
|
|
|
test('uses an architecture-specific Windows ARM64 update channel', () => {
|
|
assert.equal(resolveUpdaterChannel({ platform: 'win32', architecture: 'arm64' }), 'latest-arm64');
|
|
});
|
|
|
|
test('keeps the default channel for other desktop targets', () => {
|
|
assert.equal(resolveUpdaterChannel({ platform: 'win32', architecture: 'x64' }), null);
|
|
assert.equal(resolveUpdaterChannel({ platform: 'darwin', architecture: 'arm64' }), null);
|
|
assert.equal(resolveUpdaterChannel({ platform: 'linux', architecture: 'arm64' }), null);
|
|
});
|