Skip to content

README promises both architectures; only x86-64 is built #5

Closed

Description

@tylerdotai

The README promises two architectures; only x86-64 is built

README.md says the workflow "builds packages for both architectures and
publishes them to a GitHub Release". It does not — every published asset is
x86-64 only:

$ gh release view minimax-code-v3.1.4 --json assets --jq '.assets[].name'
checksums_minimax-code_3.1.4_amd64.txt
minimax-code-3.1.4.x86_64.rpm
minimax-code_3.1.4_amd64.deb

and the build refuses anything but x64:

$ scripts/lib_common.sh:160 resolve_arch() {
    case "$1" in
      x64|amd64) ... ;;
      *) die "Unknown arch '$1' (only x64 is supported)" ;;

The workflow has a single build job on ubuntu-latest — no matrix, no
arm64 anywhere.

This is a request to implement arm64 (or, at minimum, to correct the
README sentence — a fix for that is included in #4).

Why it is feasible

Everything the arm64 build needs exists upstream:

Piece arm64 source Status
Electron runtime electron-v42.8.0-linux-arm64.zip exists in electron/electron v42.8.0
better-sqlite3 better-sqlite3-v12.11.1-electron-v146-linux-arm64.tar.gz exists (HTTP 200)
node-pty no prebuilds published (see microsoft/node-pty#805) must be compiled
@vscode/ripgrep @vscode/ripgrep-linux-arm64 on npm
@mariozechner/clipboard @mariozechner/clipboard-linux-arm64-gnu on npm
@trycua/cua-driver @trycua/cua-driver-linux-arm64-gnu on npm
opencode agent opencode-linux-arm64 on npm
session-transfer client built from Go in this repo GOARCH=arm64 cross-compile
upstream payload cnArmMacosDownloadUrl / overseasArmMacosDownloadUrl published for both editions

The upstream macOS arm64 DMG is published separately from the x64 one, so
resolve-version.sh would need to select *ArmMacosDownloadUrl for an arm64
build.

Suggested approach

  1. Extend resolve_arch with an arm64 case:
    MMX_ELECTRON_ARCH=arm64 MMX_NPM_ARCH=arm64 MMX_DEB_ARCH=arm64 MMX_RPM_ARCH=aarch64.
  2. Build on a native arm64 runner (ubuntu-24.04-arm is available on GitHub
    Actions) rather than cross-compiling node-pty: node-pty publishes no Linux
    prebuilds, so it has to be compiled anyway, and a native builder avoids a
    cross-toolchain for pty.node.
  3. Add arm64 to the workflow matrix; asset names already follow from the
    arch (..._arm64.deb, ....aarch64.rpm).
  4. Verify with the launch smoke test (tests/smoke-launch.sh) — an arm64
    payload that cannot dlopen a native addon still builds cleanly.

I can put up a PR for this if it is wanted — the pieces above are all
verified to exist, but the arm64 end-to-end build has not been run yet.

Activity

  1. tylerdotai commented on Oct 20, 2026

    @tylerdotai
    Author

    Consolidating this into #6, which covers the same finding (the README claims two architectures, only x86-64 is built) together with the rest — so there is one thread to read.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions