releases.shpreview

Experiments bring scientific rigor to live production traffic

June 22–28, 2026

Inngest launched Experiments for safe A/B testing of step functions against live traffic, while n8n shipped n8n@2.28.0 with workflow chaining fixes and both platforms patched critical bugs.

Experiments: test code changes on live traffic

The biggest story this week is Inngest's launch of Experiments, a feature that lets you safely compare two versions of a step function against real production traffic. You call group.experiment("your-id", { variants, select }) with the implementations you want to compare and a selection strategy, and Inngest judges each variant on execution data it already records — timing, retries, failures, and cost. The selection is durable: one variant runs per invocation, memoized as a step with weights you can change between deploys. This is a genuine workflow debugging breakthrough — you can now refactor a step with confidence, because you're measuring against the only data that matters: what happens in production.

The server-side infrastructure for Experiments shipped in Inngest Server v1.33.0, which also added semaphore routes to the debug API and allowed sessions in the invoke button. The server had a quieter companion in v1.32.0, which brought system queue tracing, session page optimizations, and a dedicated "Open in Insights" button on the failed functions chart.

Inngest SDKs converge on AI metadata and cross-platform support

The JS SDK hit four minor versions in a single day. inngest@4.8.0 added opt-out for AI metadata extraction and an experimental process manager for Node.js. inngest@4.9.0 expanded AI step metadata extraction to capture more OTel GenAI span attributes — model, provider, response id, tokens, and request parameters — while continuing to ignore prompt and response content. inngest@4.10.0 added support for the deprecated gen_ai.system attribute for backward compatibility, and inngest@4.11.0 added operation name parsing for AI metadata extraction. The OpenTelemetry package also reached v0.2.0 with CommonJS support, Google AI integration, and a fix for broken Anthropic calls.

The Python SDK inngest@0.5.19 matched the momentum with unauthenticated sync opt-out, request and job IDs on function context, an optional jitter field for TriggerCron, and a fix for a PydanticSerializer memory leak.

n8n stabilizes chained nodes and patches across the board

n8n's n8n@2.28.0 was the week's major release, headlined by a fix for building incorrect chained nodes — a critical correction for anyone composing workflows with conditional branches. The release also tightened the API with a 409 response when deleting a published workflow and fixed Bitbucket Trigger Node credential validation to use account_id instead of username.

The follow-up patches tell a story of rapid iteration. n8n@2.28.1 verified Instance AI workflows before setup, preventing a broken loop that could crash the workflow verification system. n8n@2.28.2 then fixed that broken workflow verification loop in iAI directly. The LTS branch received n8n@2.27.4, which allowed allowlisted Python packages to import their own submodules via relative imports — a welcome fix for Python node users. Earlier in the week, n8n@1.123.60 patched 21 security issues across tmp, protobufjs, ws, and eight other dependencies, and excluded error workflow executions from the billable count.

Releases covered