Skip to content

v0.140.0 — Node runtime, tracks droid@0.140.0

Choose a tag to compare

@thezzisu thezzisu released this 04 Jun 05:45
· 65 commits to main since this release

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.