$ cat ./ROADMAP.md

what we're building. in the open.

An honest view of what's shipped, what we're working on now, and what's on the horizon. No fixed dates — we ship when it's right. Items and ordering may shift as we learn.

last_update2026-05-25
current_buildv0.4.x
shipped_items05
in_progress02
$ filter --theme=
# phase 01

shipped

05

engine foundation

coreCAR-35

engine extraction + ctx ports

engine pulled out of the monolith. ctx interface with logger, http, storage, secrets ports — engine never imports sdk or platform code, enforced by lint.

shipped
v0.3
coreCAR-103

walker, flow dispatch, durable sleep

edge-driven workflow runtime. category=flow dispatch, delay node, and workflow.sleep wrapping temporal — workers can die mid-delay and the run resumes.

shipped
v0.3
sdkCAR-150

sdk + lifecycle events + sub-workflow

@flowforge-company/sdk: thin temporal-client wrapper (submit, subscribe, cancel, signal, query). lifecycle stateevents emitted. runsubworkflow primitive via executechild.

shipped
v0.3
securityCAR-126

security baseline

lint blocks eval/function/vm. logger auto-redacts tokens, jwts, urls, pii. activityfailure mapped to nodeerror with classification. security.md + private disclosure across every repo.

shipped
v0.3
opsCAR-89

github packages publish pipeline

versioned publish chain for types, engine, cli, stdlib under @flowforge-company. public-read with no token required, ready for the customer scaffold.

shipped
v0.3
# phase 02 · now

in progress

02

spec locked, implementation active

sdkCAR-151

subscribe protocol

two surfaces — sdk.subscribe (asynciterable) and workeroptions.onevent — both wrap the same temporal update streamevents handler. one primitive, two ergonomics.

in progress
~v0.5
coreCAR-156

definenode lifecycle + actor layer

authorize, validate, computecost, finalize, configure hooks on every node. actor layer separates engine wiring from customer code. spec locked after four review passes.

in progress
~v0.5
# phase 03 · next

planned

05

primitives, onboarding, payload security

dxCAR-153

zero-friction cli onboarding

npx @flowforge-company/cli init wizard → ready scaffold → flowforge start worker → flowforge run workflow.json. customer onboarding in three commands.

planned
~v0.6
coreCAR-134

engine primitives suite

edge-driven walker (reachable bfs), flow primitives (if_else, switch, parallel branches, parallel join, fail), signal primitive with timeout race for hitl, decorator slots, cost channel, template grammar.

planned
~v0.6
coreCAR-157

input scope + sub-workflow registry

execution input exposed as {{ input.* }} in template scope. stdlib subworkflownode with in-process child registry injection.

planned
~v0.6
securityCAR-127

end-to-end payload encryption

payloadcodec option in sdk + reference aes-256-gcm codec. codec-server for temporal ui decrypt. manifest registration api with worker auto-push on connect.

planned
~v0.6
dxCAR-124

workflow.json schema codegen

flowforge schema emits a json schema for workflow.json so editors give autocomplete and validation without manual setup.

planned
~v0.6
# phase 04 · horizon

exploring

04

cloud, ai authoring, compliance

coreCAR-86

cloud control plane + byo worker

hosted control plane with worker running on customer vpc. multi-tenant ctx, auth handoff with signing-key rotation, cluster db cross-tenant safety, tenant isolation playbook.

queued
securityCAR-38

codec wire format + guardrail service

grpc wire with permanent v1 backwards compat. codec contract for end-to-end encrypted payloads. internal guardrail for admission control and abuse detection.

queued
sdkCAR-142

first real customer rebuild on sdk

copa rewrites its runtime on @flowforge-company/sdk + ctx ports while keeping its own database. validates the engine-has-no-db architectural bet.

exploring
dxCAR-88

ai authoring + cost portability

authoring_session_id and node_shape_signature as first-class telemetry contract. cost model portability when the worker runs inside a customer vpc.

exploring
mockTickets, progress, and ordering on this page are illustrative — not a commitment.
$ got a request? tell us