v0.140.0 — Node runtime, tracks droid@0.140.0
What
Runs Factory's droid CLI on plain Node.js, sidestepping both:
- Bun standalone-init NULL-allocator race that crashes `droid --resume` on long sessions (`Allocator.rawAlloc @ 0x0`, see oven-sh/bun#25798 / oven-sh/bun#14254).
- Bun's long-session RSS drift on multi-hour mission runs.
Install
```bash
npm install -g @thezzisu/droidnode
droidnode --resume
```
or one-shot:
```bash
npx -y @thezzisu/droidnode --resume
```
Pulls in the official `droid` npm package + `@factory/cli-` + `koffi` + `ws` transparently.
How
Extracts the JS bundle Factory ships, patches `/$bunfs/root/` to absolute paths, rewrites `import.meta.require` to a Node-side createRequire, redirects `bun:ffi` / `bun:jsc` to local shims (`koffi`-backed FFI, empty heapStats stub), converts `Bun.serve(...)` to `await Bun.serve(...)` where present, and runs the bundle under `node --import bun-shim.mjs`. The shim installs a `globalThis.Bun` polyfill, routes self-spawn back through the same wrapper, and polyfills `Bun.serve` over `node:http` + `ws` for `droid daemon`.
CI automation
- `ci.yml` — extract + `--version` smoke on Node 20 and 22 for every push/PR
- `auto-track.yml` — daily check against npm-latest droid; if newer, sync versions, smoke, tag, release, npm publish (when `NPM_TOKEN` secret set)
Cross-version
Smoke verified against droid 0.135.1 – 0.140.0 (every published release we could install). Patches stable; the bot bumps the pin in lockstep.
Copyright
droid, its JS bundle, and `@factory/cli-*` binaries are © Factory AI and not redistributed by this repository. The launcher itself is MIT.