Skip to content

fix: select matching mac artifacts for desktop e2e#712

Merged
lefarcen merged 3 commits intomainfrom
fix/desktop-e2e-mac-arch
Mar 31, 2026
Merged

fix: select matching mac artifacts for desktop e2e#712
lefarcen merged 3 commits intomainfrom
fix/desktop-e2e-mac-arch

Conversation

@nettee
Copy link
Copy Markdown
Contributor

@nettee nettee commented Mar 31, 2026

What

Select the desktop E2E DMG/ZIP artifacts that match the current Mac architecture, accept both nightly and local desktop dist artifact names, and make downloads atomic.

Why

The E2E flow defaulted to arm64 artifacts and then picked the first file in e2e/desktop/artifacts, which caused Intel Macs to launch the wrong app binary and fail smoke runs with Bad CPU type in executable. Interrupted downloads could also leave partial DMGs behind that looked fresh but were not mountable. After fixing arch selection, the resolver also needed to keep supporting local unsigned desktop builds copied from apps/desktop/release/.

How

  • detect the current Mac architecture in the download and run scripts
  • default nightly artifact URLs to the matching arm64 or x64 release path
  • resolve smoke-test artifacts by architecture, accepting both published nightly names (*-mac-<arch>.{dmg,zip}) and local dist names (nexu-<version>-<arch>.{dmg,zip})
  • prefer the newest matching artifact when multiple candidates are present
  • download to *.partial and rename only after curl succeeds to avoid stale partial artifacts
  • clarify in the E2E README when to use nightly artifacts vs local unsigned builds

Affected areas

  • Desktop app (Electron shell)
  • Controller (backend / API)
  • Web dashboard (React UI)
  • OpenClaw runtime
  • Skills
  • Shared schemas / packages
  • Build / CI / Tooling

Checklist

  • pnpm typecheck passes
  • pnpm lint passes
  • pnpm test passes
  • pnpm generate-types run (if API routes/schemas changed)
  • No credentials or tokens in code or logs
  • No any types introduced (use unknown with narrowing)

Notes for reviewers

Validated locally on Intel macOS with:

  • pnpm test:smoke against downloaded nightly x64 artifacts
  • pnpm dist:mac:unsigned:x64 followed by NEXU_DESKTOP_E2E_SKIP_CODESIGN=true pnpm --dir e2e/desktop test:smoke

The local unsigned smoke run selected nexu-0.1.7-x64.dmg / nexu-0.1.7-x64.zip and reached runtime health successfully.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 73e1721f00

ℹ️ 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".

Comment thread e2e/desktop/scripts/run-e2e.sh Outdated
@lefarcen lefarcen merged commit b4cab33 into main Mar 31, 2026
6 checks passed
@lefarcen lefarcen mentioned this pull request Apr 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants