Ironflow is pre-1.0: APIs can change between releases. Pin a version. What is ready →
- Releases
- Ironflow v0.44.0
Ironflow v0.44.0
Ironflow v0.44.0 replaces CEL with embedded Rego policy sets for tenant authorization, and gives SDK projection runners an exclusive, fenced lease in Go, Node and Python. It also ships @ironflow/agent, an ACP coding agent for Zed and JetBrains, and adds a built-in Analytics page to the dashboard.
Breaking Changes
Section titled “Breaking Changes”- Embedded Rego policy sets replace CEL for tenant authorization (Layer 2). CEL policies are no longer evaluated; CEL stays for pub/sub filters only (#2819)
IRONFLOW_URLis removed. SetIRONFLOW_SERVER_URLinstead; browser variables are nowNEXT_PUBLIC_IRONFLOW_SERVER_URLandVITE_IRONFLOW_SERVER_URL(#2784)
Features
Section titled “Features”@ironflow/agent: an ACP coding agent for Zed and JetBrains, published to npm with its bundled skills (#2760, #2853)- Agent: read-only bash with exact-command grants, globs and
2>/dev/null; packaged skills in the prompt; bridge toironflow mcpso the Ironflow MCP tools work underserve --dev(#2847, #2852, #2856) - Exclusive lease for SDK projection runners: lease RPCs, and fenced Poll, Stream, Save and Ack (#2818, #2825, #2808, #2814)
- Projection runner lease clients for Go, Node and Python (#2826, #2828, #2827)
- Built-in Analytics page in the dashboard: runs, events, and P50/P95 over time (#2844)
- Grafana on the single-node Compose stack, with failures and resilience panels (#2843)
- Go and Node
getEntityHistoryfollownext_cursorand take a time window (#2829) - Dashboard: back/forward history arrows, and an Overview flow strip in place of the function Config tab (#2746, #2745)
- The engine now drives SQL projections, so they advance and a rebuild completes (#2786)
- SQL projection rebuild refuses to start while a rebuild is in progress; a non-SQL rebuild start fences the owner; claim rejects an empty token (#2837, #2813)
- Drain slots are released while a drain waits, and a stuck rebuild fails (#2804)
- Go projection runner keeps its lease until a late handler returns; projection register stops retrying on InvalidArgument (#2834, #2835)
- Projection runner parity across Go, Node and Python:
{}state means initial state, one stream error rule, Go stream with poll fallback, partitioned state resumes, streams close before worker reconnect (#2820, #2809, #2807, #2781, #2777, #2775) - Projection poll events carry
seqas a number (#2836) - Recover early events for
waitForEventand approvals (#2782) - Recover unfinished CQRS command claims (#2785)
- Keep
EventFilterKindson a custom Postgres plan (#2833) - SDKs: add
getJSONfor KV entries; JS SDK recognizes errors across module instances (#2779, #2778) - Go SDK external consumers and published examples point at
ironflow-go(#2783) - Dashboard flow map legend icons match canvas nodes (#2743)
- Docs: Command K search stays available after navigation (#2764)
Improvements
Section titled “Improvements”- Partial outbox index for
HasPendingEventOutbox(#2830) - ADR 0120 (exclusive lease for SDK projection runners) and ADR 0121 (Rego policy sets)
- Docs, skills and architecture diagrams synced with source; every example audited (#2732, #2759, #2765)
- New docs:
/releases/landing with a product filter, scoped remote MCP walkthrough, verified order-rewind post (#2810, #2728, #2811) - Landing page: pick-your-stack hero, animated intro video, Triggers and Reactions diagram, Turnstile-verified waitlist with double opt-in (#2749, #2757, #2824, #2734)
Ironflow Desktop ships on its own cadence; see the Desktop v0.27.0 changelog.