Ironflow is pre-1.0: APIs can change between releases. Pin a version. What is ready →
- Releases
- Ironflow v0.41.0
Ironflow v0.41.0
Adds a file storage API with buckets, signed URLs and file events. Streaming workers get graceful drain and job refusal, and the Go, Node and Python SDKs close more Tier-1 parity gaps.
Features
Section titled “Features”- File storage API: buckets, files, signed URLs and file events (#2508)
- File storage hardening: createOnly signed uploads, upload idle deadline, concurrency cap (#2523), orphan reclaimer and event sweeper (#2526), review follow-ups (#2522)
- Package an app with Ironflow into one container (#2511)
JobNackin the worker stream protocol: a refused job uses no run attempt (#2485)- Streaming workers: drain deadline, signals and at-capacity reject in Go and Node (#2460);
DrainTimeoutoption (#2483); cancelled Run context starts a drain in Go (#2482) - Node:
SubscriptionClient.subscribeEntityStream(#2465) - Node:
serve()verifies the engine push signature (#2449); client retries failed requests with backoff (#2453) - Python agent SDK validates tool input against
input_schema(#2488) - Pull jobs carry the event idempotency key on REST poll and stream (#2490)
- Tier-1 SDK parity: smaller Go and Node gaps closed (#2455)
- Engine: step handlers reject steps of another run (#2494)
- Engine: release the capacity lease after the terminal write (#2502)
- Pub/sub: a deduplicated publish returns the stored
event_id(#2497);Publishvalidates the idempotency key (#2496) - Webhook deliveries sort in time order on SQLite (#2461) and use UUIDv7 IDs for stable tie-breaks (#2487);
webhook_sources.created_atstored at fixed width (#2484) - SDKs: agent memory, MCP registration and push-mode
Publishsend the run environment (#2495); Nodestep.publishsends the worker environment (#2489) - Go streaming worker waits for queue space on ack, nack and terminal reports (#2503, #2501)
- Node streaming worker stops its jobs when the stream drops (#2499)
- Go: a non-retryable push-handler error is not retried (#2452);
FunctionConfig.Validatechecks the event payload before the handler (#2506); 403 errors name the environment (#2492) - Node: a plain thrown error is retryable, as in Go and Python (#2450, #2451)
- Go and Node agent SDKs reject an empty memory projection at definition time (#2504)
- Python streaming worker logs a job it ignores (#2481)
- Examples: close runnable setup gaps (#2524)
- Toolchain bump to Go 1.27 and golangci-lint 2.14 (#2441)
- Docs: Archify diagrams for the file storage API (#2521)