Missing initWithRipgrepIgnore in Linux arm64 Binary for File Service Module

Describe the Bug

I get this error when on linux arm64:

2024-12-11 20:28:17.568 [error] TypeError: this.merkleClient.initWithRipgrepIgnore is not a function
    at v.initializeMerkleTreeWithRipgrepIgnore (/vscode/cursor-server/bin/linux-arm64/a846435528b4b760494a836f96f0739889253530/extensions/cursor-retrieval/dist/main.js:2:831824)
    at v.getServerStatus (/vscode/cursor-server/bin/linux-arm64/a846435528b4b760494a836f96f0739889253530/extensions/cursor-retrieval/dist/main.js:2:829724)
    at v.startIndexingRepository (/vscode/cursor-server/bin/linux-arm64/a846435528b4b760494a836f96f0739889253530/extensions/cursor-retrieval/dist/main.js:2:832745)

Here’s the npm list for the linux arm64

@anysphere@ /vscode/cursor-server/bin/linux-arm64/a846435528b4b760494a836f96f0739889253530/extensions/cursor-retrieval/node_modules/@anysphere
├── @anysphere/file-service-linux-arm64-gnu@0.0.0-4cccd90d
└── @anysphere/file-service@0.0.0-4cccd90d

Steps to Reproduce

Install cursor on a devcontainer using linux on a arm64 mac
Notice that file indexing does not work

Expected Behavior

Indexing should work.

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 0.43.6
VSCode Version: 1.93.1
Commit: a846435528b4b760494a836f96f0739889253530
Date: 2024-12-06T05:11:55.168Z
Electron: 30.5.1
Chromium: 124.0.6367.243
Node.js: 20.16.0
V8: 12.4.254.20-electron.0
OS: Darwin arm64 24.0.0

Additional Information

The issue is that you’re not linking the initWithRipgrepIgnore in the linux binary but you are definitely doing it in the darwin build – I can verify this by:

strings /Applications/Cursor.app/Contents/Resources/app/node_modules.asar.unpacked/@anysphere/file-service-darwin-universal/file_service.darwin-universal.node | grep -i initWithRipgrep

and the output is:

computeMerkleTreecomputeMerkleTreeWithRipgrepIgnoredeleteFilegetAllDirFilesToEmbedgetAllFilesgetHashesForFilesgetImportantPathsgetNextFileToEmbedgetNumEmbeddableFilesgetSplinegetSubtreeHashinitWithRipgrepIgnoreupdateFileupdateRootDirectoryFailed to get parent hashes: Failed to get commit data: Failed to get property with field `Failed to set property with field `Failed to unwrap exclusive reference of `` type from napi valuereasonmaybe_raw.egg-info.venv__pycache__.next.nuxt.cache.sass-cache.gradle.DS_Store.ipynb_checkpoints.pytest_cache.mypy_cache.lock-wscript.Python.yarn.yarn-cache.eslintcache.parcel-cache.cache-loader.nyc_output.node_repl_history.pnp.jsconstructorsrc/diff_client.rsdiffLines

vs the one installed on linux:

/vscode/cursor-server/bin/linux-arm64/a846435528b4b760494a836f96f0739889253530/extensions/cursor-retrieval/node_modules/@anysphere/node_modules/@anysphere/file-service-linux-arm64-gnu$ strings file_service.linux-arm64-gnu.node | grep -i "initWithRipgrep"

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hi,

Unfortunately, Cursor does not currently support arm64 based platforms, so will not work inside a Linux container on an ARM64 device.

Feel free to add a new post suggesting it as a feature!

1 Like

Hi Dan, are you sure about that? MacOS runs mostly on Apple Silicon, which is an Apple-designed 64-bit ARM SoCs. ARM64 is an umbrella term for the 64-bit ARM Instruction Set Architecture (ISA) which Apple, and others, license from ARM. I think there’s some mistake :slight_smile:

Hi,

Sorry for not being clear, while we do support Apple Silicon for our Mac release, we do not support arm64 for our Linux distribution, hence it’s incompatibility inside your Linux dev container.

Our linux builds currently only support x86-64 architectures.

Hope this clears things up!

Hi Dan - thanks for the clarification! Does this also extend to the @anysphere/file-service that you folks install? It seems to be working if I downgrade from version: 0.0.0-4cccd90d to version: 0.0.0-30549ed4-6f41e022f7af079ff34c9d09cb1d5d616735c7e31ec0d732af0daec4758069f7.

Sorry for the questions, I’m just trying to understand if there’s a reason for doing that between the two versions.

I am developing in a devcontainer, if that’s helpful.

Hi, what version of Cursor are you using and how did you install it?