Skip to content

[Bug]: onnxruntime-node and sqlite-vec native modules also fail in Cowork sandbox (same root cause as better-sqlite3) #76

@kevintseng

Description

@kevintseng

Component

MCP Server

Bug Description

In addition to better-sqlite3 (#73), two other native C++ dependencies are also blocked in the Claude Desktop Cowork sandbox:

Package Version Type Impact
onnxruntime-node ^1.23.2 C++ addon (NAPI) Embeddings system unavailable — semantic search, similar memory lookup, and all vector-based features fail
sqlite-vec ^0.1.7-alpha.2 C extension (SQLite loadable) Vector search unavailablesqlite-vec requires loading a native .so/.dylib extension into SQLite

Root cause is identical to #73: the Cowork sandbox has a read-only plugin filesystem and blocks node-gyp from downloading Node.js headers (HTTP 403 to nodejs.org).

Expected: All plugin features including embeddings and vector search should work in Cowork.
Actual: These features silently fail because the native modules cannot be compiled or loaded.

Steps to Reproduce

  1. Install @pcircle/memesh plugin in Claude Desktop Cowork mode
  2. Start a new Cowork session
  3. Check if onnxruntime-node is loadable: node -e "require('onnxruntime-node')"
  4. Check if sqlite-vec is loadable: node -e "require('sqlite-vec')"
  5. Both fail with native module errors — no prebuilt binaries available and node-gyp compilation is blocked

Error for onnxruntime-node:

Error: Cannot find module '../../bin/napi-v3/linux/arm64/onnxruntime_binding.node'

Error for sqlite-vec:

Error: Cannot find module '../build/Release/sqlite_vec.node'

Error Output

For onnxruntime-node:
  Error: Cannot find module '../../bin/napi-v3/linux/arm64/onnxruntime_binding.node'
  - No prebuilt binary for linux-arm64 included in the package
  - node-gyp cannot compile: HTTP 403 downloading https://nodejs.org/download/release/v22.22.0/node-v22.22.0-headers.tar.gz

For sqlite-vec:
  Error: Cannot find module '../build/Release/sqlite_vec.node'
  - Same root cause: no prebuilt binary, node-gyp compilation blocked

Both failures trace back to:
  1. Read-only plugin filesystem (.claude-plugin/memesh/) prevents npm install
  2. Sandbox network restrictions block node-gyp header downloads (HTTP 403)

MeMesh Version

2.8.10

Claude Code Client

Other

Node.js Version

v22.22.0

Operating System

Linux

MCP Configuration

Additional Context

Environment:

Impact assessment:

Proposed solution:
Apply the same prebuild strategy recommended in #73 to all three packages:

  1. onnxruntime-node: Ship linux-arm64 NAPI binary via prebuildify or include the correct binary in the package
  2. sqlite-vec: Ship linux-arm64 .so loadable extension via prebuildify
  3. As a fallback, consider pure-JS alternatives where possible (e.g., @xenova/transformers with WASM backend for embeddings)

Related issues: #73, #74

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriageNeeds triage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions