Skip to content
GitHub

Where Flow stands

It runs. It starts, serves the API and the editor, loads flows off the volume, moves messages, and comes back after a restart with its flows and credentials and context. The chart deploys it in all three network modes and the whole publish chain resolves.

Verified against real infrastructure, not just against my own encoders: mosquitto, InfluxDB 2.7 and PostgreSQL 16, in podman, on 2026-08-07. The InfluxDB tag value came back out of a real database as press 01,west with the space and the comma intact. That’s the escaping bug that otherwise fragments a series in silence and costs somebody a day to find. That run predates the rename, and the only change to those nodes since is what they’re called.

Race detector clean, every package, on Linux with cgo, on every push to main and every pull request.

Cookies and multipart answer the way Node-RED’s own libraries do, because they were checked against them. Express, cookie-parser, form-data, multer and tough-cookie, at the versions Node-RED pins, ran over a hundred cases with Node-RED’s node code copied in between, and the answers went into a golden file the tests replay through real sockets. That includes the ugly ones: a UTF-8 filename comes out garbled exactly as multer garbles it, and a cookie named value loses its value in msg.responseCookies, same as there. Matching the bugs is the point. A flow that leans on one breaks the day it stops being there.

Not done yet, roughly in the order it bothers me:

  • The S7 and EtherNet/IP nodes have only met simulators. They are tested against real servers that speak the protocols, and they have not talked to a Siemens CPU or a Logix controller. Phase 5 stays that honest until they have.
  • Durable wires have never been on a Pi. Store and forward and the disk writes were measured on an x86 box under WSL. The Pi 4 and Zero 2 W numbers are still to do, and I won’t print a card figure I didn’t measure on a card.
  • A node that uses the WASM host. The host is built and tested. Nothing in the palette calls it, so WASM guests can’t run in a flow today.
  • It has never run on a real plant floor. Shepherd Boy Farms is the intended first site. Everything past the deploy line is unproven in the field, and I’m not calling it production-hardened until a plant has had a real go at breaking it.

What gets built next, and in what order, is in docs/ROADMAP.md.

It was Emberwire, and v0.1.0 is still where it was, at ghcr.io/embernet-ai/emberwire:0.1.0. 2.0.0 was the first release under this name, and 2.x reads nothing the old name wrote: the EMBERWIRE_* variables, the two emberwire- database node types, a WASM module built against the old exports and the 0.1.0 credentials file all have to be redone. That’s a clean break on purpose. Nobody had built on 0.1.0, and a shim for zero users is just more code to get wrong. The credentials file at least fails like an adult now. 2.0.0 died on it with a JSON parsing error. Since 2.0.1 it names the file, says Emberwire wrote it, and tells you to move it aside and enter the credentials again.