Build for Windows ARM#2080
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: dae12d5e6b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
ApprovabilityVerdict: Approved This PR adds Windows ARM64 build support through CI/CD workflow changes and generalizing existing Mac manifest-merging scripts to handle both platforms. All changes are build-time infrastructure with no impact on runtime application behavior. The refactoring is mechanical, adding platform parameters to existing logic, and includes comprehensive tests. You can customize Macroscope's approvability policy. Learn more. |
|
CI failing |
fixed, it was the bun lock |
Dismissing prior approval to re-evaluate e4361c3
Co-authored-by: Julius Marminge <julius0216@outlook.com>
|
This broke the CLAUDE.md symlink again by adding the newline back after the AGENTS.md |
Integrates upstream/main (9df3c64) on top of fork's main (9602c18). Upstream features adopted: - Claude Opus 4.5 and 4.7 built-in models (pingdotgg#2072, pingdotgg#2143) - Node-native TypeScript migration across desktop/server (pingdotgg#2098) - Configurable project grouping with client-settings overrides (pingdotgg#2055, pingdotgg#2099) - Thread status in command palette (pingdotgg#2107) - Responsive composer / plan sidebar on narrow windows (pingdotgg#1198) - Capture-phase CTRL+J keydown for Windows terminal toggle (pingdotgg#2113/pingdotgg#2142) - Bypass xterm for global terminal shortcuts (pingdotgg#1580) - Windows ARM build target (pingdotgg#2080) - Windows PATH hydration + repair (pingdotgg#1729) - Gitignore-aware workspace search (pingdotgg#2078) - Claude process leak fix + stale session monitoring (pingdotgg#2042) - Preserve provider bindings when stopping sessions (pingdotgg#2084) - Clean up invalid pending-approval projections (pingdotgg#2106) — new migration - Extract backend startup readiness coordination - Drop stale text-gen options on reset (pingdotgg#2076) - Extend negative repository identity cache TTL (pingdotgg#2083) - Allow deleting non-empty projects from warning toast (pingdotgg#1264) - Restore defaults only on General settings (pingdotgg#1710) - Release workflow modernization (blacksmith runners, GitHub App token guards, v0.0.20 version bump) Fork features preserved: - All 8 providers (codex, claudeAgent, copilot, cursor, opencode, geminiCli, amp, kilo) with their adapters, services, and tests - Fork's custom OpenCode protocol impl in apps/server/src/opencode/ (kept over upstream's @opencode-ai/sdk-based provider added in pingdotgg#1758 — fork's version is tested and integrated; upstream's parallel files deleted) - Fork's direct-CLI Cursor adapter (kept over upstream's new ACP-based CursorProvider added in pingdotgg#1355 — upstream's parallel files deleted) - Fork's ProviderRegistry aggregates only codex + claudeAgent snapshots; the other 6 providers register via ProviderAdapterRegistry - PROVIDER_CACHE_IDS stays at [codex, claudeAgent] matching what the registry actually caches - Migration IDs preserved (fork 23/24/25/26; upstream's new 025 lands at ID 27 to avoid re-applying on deployed fork DBs) - Fork's generic per-provider settings (enabled/binaryPath/configDir/ customModels) kept over upstream's opencode-specific serverUrl/password - Log directory IPC channels, updateInstallInFlight tracking, icon composer pipeline all preserved - Fork's simplified release.yml (no npm CLI publish, no nightly infra) - composerDraftStore normalizeProviderKind widened to accept all 8 kinds - Dark mode --background set to #0f0f0f Test status: - All 9 package typechecks pass - Lint clean (0 errors) - Tests: 1877 passed, 15 skipped (incl. 4 historically-flaky GitManager cross-repo PR selector tests newly gated with TODO for Node-native-TS follow-up)
What Changed
1.3.9->1.3.11, which includes support for Windows ARM (Support Windows ARM64 oven-sh/bun#9824)appropriate.
specific Windows manifests like latest.yml and nightly.yml.
(succeeds #1723)
Why
The current x64 Windows build runs under emulation
UI Changes
Checklist
Note
Medium Risk
Changes the release pipeline and updater-manifest generation/merging for Windows and macOS; failures could break published desktop updates or releases across channels.
Overview
Adds Windows ARM64 desktop builds to the GitHub Actions release matrix (new
windows-11-armrunner) and updates artifact packaging to publish per-arch Windows updater manifests (renamed with-win-<arch>suffixes).Refactors updater-manifest handling into a shared implementation:
scripts/lib/update-manifest.tsis generalized (macOS-specific naming removed) and a newscripts/merge-update-manifests.ts --platform <mac|win>CLI replaces the mac-only merge script; the release workflow now merges both macOS and Windows arm64/x64 manifests into a single canonical manifest per channel and fails if a matching arch is missing.Improves desktop build arch selection by introducing
scripts/lib/build-target-arch.ts(detects Windows-on-Arm even when running an x64 process under emulation) and wiring it intobuild-desktop-artifact.ts;package.jsonadds explicit Windowsdist:desktop:win:{arm64,x64}scripts, makesdist:desktop:winarch-aware, and bumps Bun/@types to1.3.11.Reviewed by Cursor Bugbot for commit e4361c3. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add Windows ARM64 build target to the desktop release workflow
windows-11-armrunner entry to the release matrix in release.yml, producing arm64 NSIS installers alongside existing x64 builds.resolveHostProcessArchandgetDefaultBuildArchin build-target-arch.ts to detect Windows-on-Arm hosts (viaPROCESSOR_ARCHITEW6432) even when the Node process is running under x64 emulation.--platform mac|winand merges per-arch manifests into a single channel manifest.-win-<arch>.ymlsuffix during the build step, then merged and cleaned up during publish.bun run dist:desktop:winno longer passes an explicit--archflag, deferring to the build script's default (now arm64 on Arm hosts).Macroscope summarized e4361c3.