Skip to content

Release DMGs are arm64-only — Intel Mac users cannot install (v0.1.0–v0.6.1) #97

@asheik01

Description

@asheik01

Summary

Every release since v0.1.0 ships a single Thuki.dmg that is built as Mach-O thin (arm64) only. Intel Mac users (2019 MacBook Pro 16", Intel Core i9, etc.) cannot install or run the app — the thuki binary silently fails because Rosetta translates x86→arm, not arm→x86.

Reproduce

gh release download v0.6.1 --repo quiet-node/thuki --pattern 'Thuki.dmg'
hdiutil attach Thuki.dmg -nobrowse -quiet
file /Volumes/Thuki/Thuki.app/Contents/MacOS/thuki
# → Mach-O 64-bit executable arm64
codesign --display --verbose=2 /Volumes/Thuki/Thuki.app
# → Format=app bundle with Mach-O thin (arm64)

Impact

  • Affects every Intel Mac still on macOS Tahoe (26.x) and earlier — a real population for a beta tool
  • Silent-failure UX: drag to /Applications, launch, nothing happens. No error about architecture.
  • README.md under ## Getting Started → Step 2: Install Thuki → Download (Recommended) makes no mention of required architecture

Suggested fix — universal binary

The cleanest path is a universal binary. Minimal changes to .github/workflows/release-please.yml in the build-and-release job:

       - name: Install stable Rust toolchain
         run: rustup toolchain install stable --no-self-update
+
+      - name: Add Rust targets for universal build
+        run: |
+          rustup target add aarch64-apple-darwin
+          rustup target add x86_64-apple-darwin

       # ...

-      - name: Build Tauri app
-        run: bun run build:backend
+      - name: Build Tauri app (universal)
+        run: bun run build:backend -- --target universal-apple-darwin

Tauri v2 natively supports --target universal-apple-darwin and emits a single .app with both slices via lipo.

The resulting .app bundle path changes from
src-tauri/target/release/bundle/macos/Thuki.app
to
src-tauri/target/universal-apple-darwin/release/bundle/macos/Thuki.app
— so the create-dmg step and the ad-hoc sign step would need their paths updated to match.

Alternative — separate arm64 and x86_64 DMGs via matrix

If a universal binary is unwanted (larger artifact size), a matrix strategy also works:

build-and-release:
  strategy:
    matrix:
      include:
        - runner: macos-14
          target: aarch64-apple-darwin
          suffix: -arm64
        - runner: macos-13
          target: x86_64-apple-darwin
          suffix: -x64
  runs-on: ${{ matrix.runner }}
  # ... and upload as Thuki${{ matrix.suffix }}.dmg

README change needed either way

Whatever fix lands, ## Step 2: Install Thuki should explicitly name the architecture(s) supported. Current wording implies any Mac works.

Workaround for now

Intel users can build from source per README.md's "Build from Source" path — git clone, bun install, bun run tauri build. That emits an x86_64 binary when run on an Intel host. Not a great UX for a "floating AI for macOS, no setup" positioning, though.

Happy to open a PR for the universal-binary change if it would help — just let me know if that matches how you want to ship.

Thanks for the project — the local-only, zero-telemetry positioning is exactly what this category needs.

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