Summary
The macOS arm64 desktop build of OpenCode 1.14.37 (and at least 1.14.35) is missing the native @parcel/watcher-darwin-arm64 binding, so the file watcher logs an error on every startup and falls back to a degraded mode. The Windows variant of this was tracked in #23624 and closed; the macOS arm64 variant has now surfaced.
Error
ERROR 2026-05-05T08:35:35 +2ms service=file.watcher error=Cannot find module '@parcel/watcher-darwin-arm64'
Require stack:
- /Applications/OpenCode.app/Contents/Resources/app.asar/out/main/chunks/node-8ljIuRcm.js
failed to load watcher binding
What's missing
$ ls /Applications/OpenCode.app/Contents/Resources/app.asar.unpacked/node_modules/
@lydell
@msgpackr-extract
$ ls /Applications/OpenCode.app/Contents/Resources/app.asar.unpacked/node_modules/@parcel
ls: ... @parcel: No such file or directory
For comparison, @msgpackr-extract is correctly unpacked with its .node binding:
/Applications/OpenCode.app/Contents/Resources/app.asar.unpacked/node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64/node.napi.glibc.node
The same treatment is needed for @parcel/watcher-darwin-arm64.
Environment
- OpenCode: 1.14.37 (also reproduced on
1.14.35)
- Build: macOS arm64 (
opencode-desktop-mac-arm64.dmg from the v1.14.37 release)
- macOS 26.4.1 arm64
- Source verified by inspecting the installed
.app bundle (no @parcel directory under app.asar.unpacked/node_modules/).
Impact
Suggested fix
Treat @parcel/watcher-darwin-arm64 (and the corresponding x64, linux-x64, linux-arm64, win32-* variants) as asarUnpack entries in the electron-builder config, so the prebuilt .node binding ships alongside the asar archive. This is the same pattern already used for @lydell/node-pty-darwin-arm64 and @msgpackr-extract.
References
Summary
The macOS arm64 desktop build of OpenCode
1.14.37(and at least1.14.35) is missing the native@parcel/watcher-darwin-arm64binding, so the file watcher logs an error on every startup and falls back to a degraded mode. The Windows variant of this was tracked in #23624 and closed; the macOS arm64 variant has now surfaced.Error
What's missing
For comparison,
@msgpackr-extractis correctly unpacked with its.nodebinding:The same treatment is needed for
@parcel/watcher-darwin-arm64.Environment
1.14.35)opencode-desktop-mac-arm64.dmgfrom the v1.14.37 release).appbundle (no@parceldirectory underapp.asar.unpacked/node_modules/).Impact
out/main/chunks/node-8ljIuRcm.jsfalls back to a polling watcher; file events still fire but with higher CPU and latency, and noisy logs. Users who add cold-bootstrap projects on external volumes are likely to feel this more (see bug: cold project open hangs on external volumes during bootstrap #23409).Suggested fix
Treat
@parcel/watcher-darwin-arm64(and the corresponding x64, linux-x64, linux-arm64, win32-* variants) asasarUnpackentries in the electron-builder config, so the prebuilt.nodebinding ships alongside the asar archive. This is the same pattern already used for@lydell/node-pty-darwin-arm64and@msgpackr-extract.References