Inngest Release Notes

Follow

58 release notes curated from 29 sources by the Releasebot Team. Last updated: Nov 7, 2026

Get this feed:
  • Nov 6, 2026
    • Date parsed from source:
      Nov 6, 2026
    • First seen by Releasebot:
      Nov 7, 2026
    Inngest logo

    Inngest

    v1.51.0

    Inngest adds bulk pause and resume for up to 500 functions through its API, CLI, and MCP tools, alongside expanded DuckDB lake queries and federated insights. The release also improves driver registration and lake data handling.

    Release Notes

    #5152 feat(api): bulk pause/resume functions via v2 api, cli & mcp

    pause or resume up to 500 functions in one app with POST /v2/apps/{app_id}/functions/pause and POST /v2/apps/{app_id}/functions/resume, the inngest api pause-functions / inngest api resume-functions commands, or the pause_functions / resume_functions mcp tools. each call returns an ordered success or error result per function.

    Migration Notes

    #5152 feat(api): bulk pause/resume functions via v2 api, cli & mcp

    none.

    Testing

    api, cli, mcp and openapi tests passed, including 500/501-id boundaries and body limits. api docs generated and built.

    local docker e2e passed with the pr api and system worker: paused/resumed 500 synced functions and confirmed persisted state. three sample functions ran before/after; paused events were skipped and not replayed, while a control continued running. 501 ids returned 400 without changes.

    #5159 feat(duckdb): Skip the raw_runs collapse for flat lakes and use TIMESTAMPTZ in federate

    None. (000001_baseline.sql is edited in place)

    #5160 feat(duckdb): Stamp lake rows w/ bucket_at and read tables by name

    The lake tables gain a bucket_at column, in the baseline migration (edited in place since duckdb isn't persistent yet).

    Changelog

    πŸš€ Features

    • (drivers) Allow drivers to be registered with schemes at init (#5198)
    • (api) Bulk pause/resume functions via v2 api, cli & mcp (#5152)
    • (duckdb) Stamp lake rows w/ bucket_at and read tables by name (#5160)
    • (duckdb) Stream query relations into DuckDB over quack (#5154)
    • (duckdb) Federate reads across the lake and a buffer (#5155)
    • (insights) Add raw mode and federated reads (#5156)
    • (duckdb) Aggregate federated reads (#5157)
    • (duckdb) Push a query's top-n into federated sources (#5158)
    • (duckdb) Skip the raw_runs collapse for flat lakes and use TIMESTAMPTZ in federate (#5159)
    Original source
  • Nov 6, 2026
    • Date parsed from source:
      Nov 6, 2026
    • First seen by Releasebot:
      Nov 7, 2026
    Inngest logo

    Inngest

    v1.50.0

    Inngest adds feedback submission, bulk run cancellation, event lookup, and sandbox image commands across its API, CLI, and MCP tools. The release also improves dashboard onboarding and function status visibility, while delivering fixes for Connect, queues, and batch processing.

    Release Notes

    #4637 feat(api): authed feedback api/cli/mcp -> plain

    Send product feedback to Inngest support through:

    • API: POST /v2/feedback (also available at /api/v2/feedback).
    • MCP: submit_feedback.
    • CLI: inngest api --prod submit-feedback --feedback "Your feedback".
    • Dashboard: the existing feedback widget uses the same pipeline.

    Submissions go through Cloud and create plain tickets with the configured feedback label. Each account can submit up to 5 at once, with one submission replenished every 12 minutes. Feedback is capped at 10,000 characters, with a visible counter in the dashboard. The dev server returns Cloud submission guidance with a CLI example.

    #5016 style(ui): unify dropdown styling across dashboard and dev server

    Standardize dropdown spacing, styling and selection indicators across the dashboard and dev server, including clearer keyboard focus and consistent light/dark themes.

    #5041 feat(images): add image subcommands

    Adds image subcommands for creating customizable sandbox base images from Dockerfiles.

    #5058 feat(api): bulk cancel a function's runs via v2 api, cli & mcp

    Bulk cancel a function's runs in a time range, with an optional event filter:

    • API: POST /v2/apps/{app_id}/functions/{function_id}/cancellations
    • CLI: inngest api create-cancellation
    • MCP: create_cancellation

    #5074 fix(connect): avoid blocking replies on unreachable executors

    Prevent an unreachable Connect executor from delaying response notifications for other executions on the same gateway.

    #5077 feat(dashboard): show when a function is draining

    The dashboard now displays when a function is draining, alongside its paused status. The configuration tooltip explains that new runs are skipped while existing runs continue to execute.

    #5078 feat(dashboard): simplify Runs AI plugin setup

    Cloud Runs AI popovers offer simpler ChatGPT / Codex and Claude connection options, with optional CLI setup.

    #5088 fix(queue): wake Redis partitions after confirmed capacity release

    Fixed functions with concurrency keys stalling for several seconds despite free capacity and ready work.

    #5095 feat(api): v2 list and get events

    • API: GET /v2/events, GET /v2/events/{event_id}
    • CLI: inngest api list-events, inngest api get-event <event-id>
    • MCP: list_events, get_event

    #5100 feat(dev-server-ui): add AI-assisted onboarding

    Guide new Dev Server users through setup and their first successful function run.

    #5101 fix(connect): release leases for undispatched requests

    Fix unnecessary Connect step delays after temporary worker-capacity or connection failures by releasing leases for requests that were never dispatched.

    #5102 fix(connect): bound gateway Forward and accept keepalive pings

    Connect requests no longer hang for up to 15 minutes when a gateway connection dies silently.

    #5103 fix(connect): enable gRPC client keepalive for Connect peers

    Faster recovery when a Connect gRPC connection dies silently.

    #5115 feat(dashboard): show paused and draining status in function lists

    The Functions list and top functions table now show when a function is paused or draining.

    Example:

    #5125 fix(dashboard): add copyable chart tooltip timestamps

    Better timestamps in metrics tooltips.

    #5128 fix(pauses): delete from existing blocks regardless of feature flags

    Fix pause deletion from existing blocks when block flushing is disabled.

    #5129 fix(executor): accept successful pause iterator completion

    Fixed successful pause iteration incorrectly returning an error.

    #5130 fix(trace): failed step timing after sleep

    Fixed a failing step.run()'s start time being seen as a step.sleep()'s start time if the step.sleep() preceded it.

    #5131 fix(queue): preserve singleton ownership and report migration read failures

    None. Callers must explicitly use these migration primitives.

    #5138 fix(pauses): make block deletion by ID retry-safe

    Fix retries of block-backed pause deletion leaving deleted pauses visible after a storage error.

    #5143 fix(batch): bound batch payloads across append paths

    Reduce oversized event batches without rejecting accepted events.

    #5153 refactor(checkpoint): remove step size enforcement option

    Checkpoint size-limit enforcement can no longer be disabled.

    Migration Notes

    #4637 feat(api): authed feedback api/cli/mcp -> plain

    Run the atlantis apply on infra #584 to add PLAIN_API_KEY to the app api's aws secret. Cloud #7875 sets the non-secret PLAIN_FEEDBACK_LABEL_TYPE_ID in the production app-api-env configmaps. Both settings are required; deploy cloud before merging this dashboard change.

    Testing

    Feedback and dev-server go tests; dashboard feedback/auth tests, type check, and lint.

    #5058 feat(api): bulk cancel a function's runs via v2 api, cli & mcp

    None.

    Testing

    Focused cancellation, api, cli, executor, batch and dev server tests passed. CI passed apart from codecov.

    #5077 feat(dashboard): show when a function is draining

    Deploy inngest/monorepo#9324 before deploying this dashboard change.

    #5078 feat(dashboard): simplify Runs AI plugin setup

    No server or credential changes. Adds chatgpt, chatgpt_codex, and claude client values and the setup_opened action to the Segment event introduced in #5071. Existing claude_code and codex_cli values identify command copies. Production connections are not offered for staging/custom API endpoints.

    #5088 fix(queue): wake Redis partitions after confirmed capacity release

    Dev server / self-hosted: enabled, no config

    Cloud: wire the queue-capacity-release-wake LaunchDarkly flag (default off) in the monorepo after the vendor bump

    Rolling deploy safe

    #5101 fix(connect): release leases for undispatched requests

    No Redis key/value format or wire-protocol changes. Existing abandoned request leases retain their current expiry; new pre-dispatch failures release their leases immediately when cleanup succeeds.

    #5102 fix(connect): bound gateway Forward and accept keepalive pings

    Must be deployed to every executor and gateway before #5103 (client keepalive) ships.

    #5103 fix(connect): enable gRPC client keepalive for Connect peers

    Requires #5102 to be live everywhere first.

    #5111 fix(duckdb): Bound Insights queries' cancellation, memory and size args

    The duckdb subprocess now runs w/ memory_limit=2GiB, threads=min(4, cores/2) and max_temp_directory_size=4GiB, shared w/ dual-write. Reads and dual-write's writes use separate connection pools, sized by INNGEST_DUCKDB_READ_CONNS (default 8) and INNGEST_DUCKDB_WRITE_CONNS (default 16).

    #5118 fix(duckdb): Break latest-run-row ties by lifecycle stage

    None. (000002_insights_views.sql is edited in place, which is fine since duckdb isn't persistent yet)

    #5127 feat(batch): report debug batch API results per store

    Proto change is additive and backwards compatible. BatchManager implementations need the new return types.

    πŸ€– Generated with Claude Code

    #5131 fix(queue): preserve singleton ownership and report migration read failures

    Use two separate Cloud releases, as requested in review:

    • Merge this upstream PR, repin #9378 to its merged commit, and deploy #9378. It prepares the existing Enqueue RPC to honor the key only with a preserved job ID and explicit destination shard. SYSOP explicitly refuses cross-backend singleton migration in this first release.
    • After verifying every relevant queue-proxy instance is on that release, deploy the separate activation PR (inngest/monorepo#9382). Only then does SYSOP start sending the key.

    An old proxy silently ignores unknown fields; deploying both steps together is not safe. Do not roll proxies back to a version without this support while the writer remains enabled. Nothing has been deployed.

    #5139 feat(batch): tag batch metrics by store and add per-call metrics

    Buffer metrics gain a backend label; queries that match an exact label set may need it added.

    πŸ€– Generated with Claude Code

    #5140 perf(executor): look up invoke pauses by deterministic ID first

    Lookup metrics now use inngest_invoke_pause_lookup_total with lookup and outcome labels, replacing inngest_invoke_pause_lookup_fallback_total. No storage migration.

    #5153 refactor(checkpoint): remove step size enforcement option

    Remove EnforceStepSizeLimits from custom checkpoint option initializers.

    Testing

    go test ./pkg/execution/checkpoint ./pkg/api/apiv1

    Changelog

    πŸš€ Features

    • (dashboard) Simplify Runs AI plugin setup (#5078)
    • (duckdb) Dual-write duckdb POC (#4880)
    • (duckdb) Duckdb-backed Insights (#4882)
    • (duckdb) Add Insights & Sessions UI pages (#4885)
    • (batch) Support account-scoped migration (#5104)
    • (dashboard) Show when a function is draining (#5077)
    • (dashboard) Show paused and draining status in function lists (#5115)
    • (batch) Report debug batch API results per store (#5127)
    • (batch) Tag batch metrics by store and add per-call metrics (#5139)
    • (api) V2 list and get events (#5095)
    • (queue) Add queue_item_start_latency metric, comparable across queue backends (#5151)
    • (api) Paginate GQL Sessions queries (#5120)
    • (connect) Optimize routing (#5166)
    • (queue) EnqueueOpts.CallerLease to lease an item for its enqueuing caller (#5147)
    • (dev-server-ui) Add AI-assisted onboarding (#5100)
    • (api) Add deploy API proto stubs (#5169)
    • (images) Add image subcommands (#5041)
    • (api) Authed feedback api/cli/mcp -> plain (#4637)
    • (api) Bulk cancel a function's runs via v2 api, cli & mcp (#5058)

    πŸ› Bug Fixes

    • (connect) Avoid blocking replies on unreachable executors (#5074)
    • (queue) Wake Redis partitions after confirmed capacity release (#5088)
    • (insights) Fix JSONPath index hang and list_aggregate argument forwarding (#5105)
    • (connect) Release leases for undispatched requests (#5101)
    • (dashboard) Add copyable chart tooltip timestamps (#5125)
    • (executor) Accept successful pause iterator completion (#5129)
    • (pauses) Delete from existing blocks regardless of feature flags (#5128)
    • (queue) Preserve singleton ownership and report migration read failures (#5131)
    • (trace) Failed step timing after sleep (#5130)
    • (api) Match REST Insights to GQL's info, hints and metrics (#5117)
    • (connect) Bound gateway Forward and accept keepalive pings (#5102)
    • (connect) Hash function config independent of function order (#5126)
    • (duckdb) Break latest-run-row ties by lifecycle stage (#5118)
    • (executor) Resume invoke pauses with missing correlation indexes (#5134)
    • (connect) Enable gRPC client keepalive for Connect peers (#5103)
    • (api) Encode non-finite floats and big ints in Insights results (#5116)
    • (pauses) Make block deletion by ID retry-safe (#5138)
    • (batch) Bound batch payloads across append paths (#5143)
    • (api) Return 400s for bad Sessions time ranges and cursors (#5121)
    • (duckdb) Use exported session time-range resolver (#5162)
    • (insights) Close transpiler gaps from the DuckDB Insights review (#5109)
    • (parser) Make written SQL match the AST (#5110)
    • (duckdb) Bound Insights queries' cancellation, memory and size args (#5111)
    • (duckdb) Make CEL run/event search match CEL semantics (#5112)
    • (registration) Keep inngest://serve app URLs (INF-765) (#5167)
    • (batch) Only send delete keys to secondary if absent in primary (#5170)
    • (util) Apply De Morgan in NormalizeAppURL to fix lint (INF-765) (#5174)

    🚜 Refactor

    • (checkpoint) Remove step size enforcement option (#5153)

    ⚑ Performance

    • (duckdb) Filter Sessions by time before collapsing runs (#5119)
    • (executor) Look up invoke pauses by deterministic ID first (#5140)
    • (expressions) Share lifted CEL execution plans (#4965)

    🎨 Styling

    • (ui) Unify dropdown styling across dashboard and dev server (#5016)

    βš™οΈ Miscellaneous Tasks

    • Add how to revert section to pr template (#5082)
    • Run DuckDB tests in the unit test job (#5123)
    • (batch) Log primary store name on fallback reads (#5161)
    • (deploys) Add new deploy types (#5045)
    Original source
  • All of your release notes in one feed

    Join Releasebot and get updates from Inngest and hundreds of other software products.

    Create account
  • Oct 28, 2026
    • Date parsed from source:
      Oct 28, 2026
    • First seen by Releasebot:
      Oct 28, 2026
    Inngest logo

    Inngest

    v1.50.0-beta.1

    Inngest shares a prerelease built from v1.50.0-beta.1.

    Prerelease

    This prerelease was built from v1.50.0-beta.1.

    Commit: c51031895769cf168aaf39d2bbb50edec490a458

    Original source
  • Oct 23, 2026
    • Date parsed from source:
      Oct 23, 2026
    • First seen by Releasebot:
      Oct 23, 2026
    Inngest logo

    Inngest

    v1.49.0

    Inngest adds function replays by time range and status, plus the ability to resume paused functions through the API, CLI, and MCP. The release also improves replay reporting and paging, and closes a request-limit bypass.

    Release Notes

    • #5010 feat(api): add function replays to v2
      replay a function's runs by time range and status through the api, cli or mcp.
      api v2: POST /api/v2/apps/{app_id}/functions/{function_id}/replays
      cli: inngest api create-replay
      mcp: create_replay
    • #5015 fix(cqrs): include skipped runs and keep precise paging
      more accurate run paging. skipped runs available to replay queries.
    • #5018 fix(dashboard): show replay failures and correct skipped counts
      visible replay failures and correct skipped counts.
    • #5025 fix(api): enforce request limits before parsing
      trailing slashes no longer bypass event request limits.
    • #5054 feat(api): resume a function via v2 api, cli & mcp
      resume a paused function through the api, cli or mcp.
      api: POST /v2/apps/{app_id}/functions/{function_id}/resume
      cli: inngest api resume-function
      mcp: resume_function

    Migration Notes

    • #5010 feat(api): add function replays to v2
      no database changes. deploy inngest/monorepo#9220's workers before enabling the cloud endpoint.
    • #5018 fix(dashboard): show replay failures and correct skipped counts
      deploy the graphql change in inngest/monorepo#9220 first. dashboard builds use the live api. roll back the dashboard before removing the new error field.
    • #5025 fix(api): enforce request limits before parsing
      no database changes.

    Changelog

    πŸš€ Features

    • (api) Resume a function via v2 api, cli & mcp (#5054)
    • (api) Add function replays to v2 (#5010)

    πŸ› Bug Fixes

    • (cqrs) Include skipped runs and keep precise paging (#5015)
    • (api) Enforce request limits before parsing (#5025)
    • (dashboard) Show replay failures and correct skipped counts (#5018)
    Original source
  • Oct 22, 2026
    • Date parsed from source:
      Oct 22, 2026
    • First seen by Releasebot:
      Oct 23, 2026
    Inngest logo

    Inngest

    v1.48.0

    Inngest ships improvements to Connect reliability and capacity recovery, preserves step invokes after execution caps, and adds AI-assisted debugging for failed runs. The release also raises gRPC message limits and updates UI dependencies to address an image optimizer security issue.

    Release Notes

    #5048 fix(connect): raise gRPC receive limits and stop retrying oversized messages

    Connect accepts larger execution requests and replies over internal gRPC and no longer retries transport message-size violations.

    #5051 fix(executor): preserve step invokes after execution cap

    Updated how step.invoke interacts with execution caps in cloud

    #5061 feat(dashboard): add failed run AI debugging handoff

    Cloud users can copy an exact-run debugging prompt from failed run details and investigate through their AI tool using Inngest Cloud MCP.

    #5062 fix(connect): expire renewed worker capacity reservations

    Fix Connect workers incorrectly remaining at capacity after renewed requests are abandoned without explicit cleanup.

    #5063 fix(connect): resume requests across executor recovery

    Fix duplicate Connect execution after executor failure by resuming the original request lease or buffered response, and release worker capacity when the replacement executor receives the result.

    #5070 fix(ui): upgrade Next and Sharp for image optimizer security

    Update UI Next.js and native image-processing dependencies to address GHSA-2464-fhr4-w9xw.

    Migration Notes

    #5048 fix(connect): raise gRPC receive limits and stop retrying oversized messages

    Deploy the updated gateway and executor receivers together to support messages above 4 MiB in both directions. Mixed-version receivers can still reject larger messages permanently. No schema or SDK migration.

    #5062 fix(connect): expire renewed worker capacity reservations

    Existing malformed reservation scores are not rewritten by deployment. Active requests receive corrected scores on their next successful renewal; abandoned entries need targeted reconciliation or expiry of the worker's reservation set after heartbeats stop.

    #5063 fix(connect): resume requests across executor recovery

    Connect wire request IDs return to the stable queue job-ID format; executor dispatch ID generation and HTTP execution are unchanged.

    Existing in-flight requests using per-dispatch IDs cannot be discovered under the new stable key, and mixed old/new executors do not share those keys. Coordinate rollout and rollback around drained in-flight Connect work.

    Checkpoint generation validation remains unchanged: a resumed SDK invocation carrying a generation that the checkpoint API considers stale can still be rejected. This PR restores Connect transport identity; it does not relax stale-checkpoint fencing.

    The reservation-expiry units fix in #5062 remains a separate change.

    Changelog

    πŸš€ Features

    • (dashboard) Add failed run AI debugging handoff (#5061)

    πŸ› Bug Fixes

    • (connect) Raise gRPC receive limits and stop retrying oversized messages (#5048)
    • (executor) Preserve step invokes after execution cap (#5051)
    • (connect) Resume requests across executor recovery (#5063)
    • (connect) Expire renewed worker capacity reservations (#5062)
    • (ui) Upgrade Next and Sharp for image optimizer security (#5070)
    Original source
  • Similar to Inngest with recent updates:

  • Oct 21, 2026
    • Date parsed from source:
      Oct 21, 2026
    • First seen by Releasebot:
      Oct 21, 2026
    Inngest logo

    Inngest

    v1.47.0

    Inngest ships a broad update with function pausing through the API, CLI, and MCP, sandbox image selection, and richer tracing and metadata. It also improves dashboard guidance and fixes issues across event handling, scheduling, throttling, and run execution.

    Release Notes

    #4939 fix(api): support camelCase (and snake_case) run include selectors

    REST v2 run-list endpoints now accept camelCase and snake_case include selectors. API documentation recommends deferredFrom and output; existing deferred_from and includeOutput requests remain supported.

    #4961 fix(exechttp): synchronize HTTP timing during cancellation

    Fix a data race in HTTP request timing when requests are canceled.

    #4971 fix(expressions): evaluate presence against concrete data

    Correct CEL has(...) checks for missing fields and expressions that reference both a parent and a missing descendant.

    #4973 fix(event): reject NUL characters in event names

    Event names containing NUL characters are now rejected as invalid.

    #4981 feat(dashboard): make the Insights link more prominent in runs search

    More prominent Insights links on the runs page when CEL search pauses.

    #4984 feat(dashboard): prompt sandbox upgrades on unpaid plans

    The dev server now explains when Cloud sandboxes require a paid plan and links to the upgrade page.

    #4987 fix(api): set Retry-After on extended-trace cap 429s

    Extended-trace cap 429s now include Retry-After, so SDKs stop retrying immediately instead of stalling requests.

    #4989 feat(api): add sandbox image selection contract

    The sandbox API contract supports selecting published images during creation and returning the resolved artifact digest.

    #4990 feat(tracing): add custom trace spans and groups

    Traces for Sandboxes and @inngest/ci now group related actions accordingly

    #4991 feat(tracing): show inngest.warnings more obviously

    Warnings in traces are now shown more obviously

    #4992 feat(metadata): Accept per-name score & warning kinds

    The dev server & self-hosted server now accept inngest.score.<name> and inngest.warning.<code> metadata kinds and show them in run details.

    #4993 feat(metadata): Write all metadata as set

    Every metadata write now replaces the previous value for its kind on its span instead of merging into it. Scores and warnings are stored under per name inngest.score.<name> / inngest.warning.<code> kinds (older SDKs keep working, the server splits their writes).

    #4994 fix(executor): Validate SDK step metadata kinds

    Step metadata sent by SDKs is now validated the same way as checkpoint and API metadata, so reserved inngest.* kinds outside the allowlist and invalid score values are dropped instead of stored.

    #5001 fix(executor): Always retry failed discovery enqueues

    Fixes runs getting stuck as Running when enqueueing the next step fails transiently.

    #5002 fix(executor): Finalize runs of permanently failed jobs

    Runs whose last attempt hits an internal error now fail w/ InngestErrInternal instead of getting stuck as Running.

    #5003 fix(devserver): do not clobber checksum/error on named apps during -u sdk-url startup

    Restarting with -u no longer bumps function versions for an app whose id is still derived from its URL when the register request is unchanged.

    #5011 fix(api): Handle every event in a batch like Cloud

    The event API now ingests the valid events in a batch that contains invalid events, returning "" in ids for each rejected event, matching Inngest Cloud.

    #5020 fix: extend scheduling retry protection past delivery backoff

    Run scheduling with rate limits retains retry protection for 30 minutes between attempts, allowing retries across ten-minute delivery gaps without consuming the same constraint again.

    #5026 fix(queue): enforce throttling per execution attempt

    Function throttles now apply to execution retries even when an earlier attempt ran within the last five minutes.

    #5027 fix(dashboard): use full-width page scrollers below fixed headers

    Fix unnecessary outer scrolling and content shifting beneath dashboard headers. Scrolling from blank page gutters now moves the page content on Billing and AI dashboards, while preserving independent split-pane scrolling.

    #5030 fix(executor): preserve singleton runs on scheduling retries

    Prevent scheduling retries from canceling an existing singleton run before rejecting the retry as a duplicate.

    #5035 feat(api): pause a function via v2 api, cli & mcp

    pause a function through the api, cli or mcp.

    • api: POST /v2/apps/{app_id}/functions/{function_id}/pause
    • cli: inngest api pause-function
    • mcp: pause_function

    #5037 test(queue): isolate capacity lease expiry test lifecycle

    None. Test synchronization and cleanup only.

    #5038 fix(state): expose idempotency lookup over the state RPC

    None. This adds the shared protocol; cloud needs the companion proxy implementation.

    #5060 fix(connect): preserve refreshed connections during cleanup

    Connect cleanup no longer removes a worker based on an old health check if its connection has since been refreshed. This prevents avoidable routing failures.

    Migration Notes

    #4961 fix(exechttp): synchronize HTTP timing during cancellation

    No application configuration changes are required.

    #4971 fix(expressions): evaluate presence against concrete data

    Expressions that relied on an existing parent being reported absent because another path beneath it was missing will now observe the parent's actual presence. Direct negation and non-presence expression behavior are unchanged.

    #4972 feat(state): persist a run's scheduled_at in run state

    None. The new Redis metadata field and proto field are optional; runs in flight during an upgrade read scheduled_at as unset.

    #4976 perf(queue): look up account priorities concurrently in AccountPeek

    None

    πŸ€– Generated with Claude Code

    https://claude.ai/code/session_01ACpv81TPBvGfWpStT4UrQT

    #4979 chore(api): soft-deprecate includeOutput

    Use include=output instead of includeOutput to request optional output.

    #4983 perf(constraintapi): let a capacity-release wake skip the limiting-constraint cache

    None

    πŸ€– Generated with Claude Code

    https://claude.ai/code/session_01ACpv81TPBvGfWpStT4UrQT

    #4984 feat(dashboard): prompt sandbox upgrades on unpaid plans

    Deploy inngest/monorepo#9120 before this change.

    #4989 feat(api): add sandbox image selection contract

    Additive optional fields; existing requests and responses remain supported. Requires the companion Cloud API implementation before clients send image. Merge this contract before the dependent monorepo change. No database migration or Simcity node rollout is required for these fields.

    #4990 feat(tracing): add custom trace spans and groups

    Related

    Warnings shown are in #4991

    #4991 feat(tracing): show inngest.warnings more obviously

    Related

    JOB grouping shown is from #4990

    #4993 feat(metadata): Write all metadata as set

    Userland metadata written to the same kind from separate calls (IE separate HTTP requests from an older SDK) now replaces instead of merging. Stored metadata is untouched and still folds the same way.

    #5020 fix: extend scheduling retry protection past delivery backoff

    No schema or protocol changes. Cloud must vendor this change and deploy the Constraint API service before it takes effect there. Only scheduling retry markers for requests with a rate limit are retained six times longer. Other callers keep their existing default. The estimate above describes the Redis memory impact. Existing markers are refreshed with the new TTL on an allowed Acquire; already-expired markers are not restored.

    Type of change

    • Bug fix (non-breaking change that fixes an issue)

    Checklist

    • I've linked associated incident context.
    • I've tested my own changes.

    #5026 fix(queue): enforce throttling per execution attempt

    No schema or protocol changes. Cloud must vendor this change and deploy it to executors; changing only the Constraint API server does not apply the fix. Old workers can still bypass throttling during a mixed-version rollout. A retry admitted by an old worker may be checked again when a new worker takes over, potentially delaying it until throttle capacity is available. Marker retention remains five minutes, but separate execution attempts now retain separate markers. This does not replay previously affected work.

    #5030 fix(executor): preserve singleton runs on scheduling retries

    None. This does not restore runs that were already canceled.

    #5032 ci(codeql): scan fork pull requests

    Merging this file alone does not enable fork scans. After review and merge, switch CodeQL from default to advanced setup, enable this workflow if GitHub disabled it, and run it on main. Confirm all three analysis categories succeed, then trigger a fresh pull-request scan on #5003 with the new workflow included in its merge revision. Normal fork-workflow approval may be required. Keep CodeQL required throughout; only merge #5003 after its scan passes and its other checks are satisfactory.

    Default setup remains unchanged by this draft PR. If the new workflow fails after the switch, restore the saved default setup while correcting it. This restores existing main/internal-PR coverage, but fork PRs will remain blocked until the migration succeeds.

    #5038 fix(state): expose idempotency lookup over the state RPC

    Merge this before the monorepo companion. Deploy proxy servers implementing the RPC before the callers that require it. Older servers return Unimplemented; callers must not interpret that as a missing duplicate record.

    Validation
    • go test -count=1 ./proto/gen/state/v2/... passes.
    • golangci-lint run ./proto/gen/state/v2/... reports no issues.
    • Protobuf regenerated with the repository's Nix toolchain; git diff --check passes.

    #5060 fix(connect): preserve refreshed connections during cleanup

    Custom Connect state managers must add DeleteConnectionIfUnchanged. The check for an unchanged connection and its deletion must happen atomically, not as separate operations.

    There is no Redis data-format change or worker protocol change. Inngest Cloud needs to update its vendored dependency before deploying this fix. This PR does not deploy it or recover existing stuck runs.

    Changelog

    πŸš€ Features

    • (state) Persist a run's scheduled_at in run state (#4972)
    • (dashboard) Prompt sandbox upgrades on unpaid plans (#4984)
    • (dashboard) Make the Insights link more prominent in runs search (#4981)
    • (api) Expose generated include selector parsers (#4982)
    • (api) Share typed include selectors across run endpoints (#4940)
    • (api) Allow naming sandbox snapshots and listing by name (#4985)
    • (metadata) Accept per-name score & warning kinds (#4992)
    • (metadata) Write all metadata as set (#4993)
    • (tracing) Add custom trace spans and groups (#4990)
    • (tracing) Show inngest.warnings more obviously (#4991)
    • (api) Add sandbox image selection contract (#4989)
    • (api) Pause a function via v2 api, cli & mcp (#5035)

    πŸ› Bug Fixes

    • (expressions) Evaluate presence against concrete data (#4971)
    • (api) Support camelCase (and snake_case) run include selectors (#4939)
    • (event) Reject NUL characters in event names (#4973)
    • (api) Set Retry-After on extended-trace cap 429s (#4987)
    • (executor) Validate SDK step metadata kinds (#4994)
    • (executor) Always retry failed discovery enqueues (#5001)
    • (executor) Finalize runs of permanently failed jobs (#5002)
    • (api) Handle every event in a batch like Cloud (#5011)
    • (queue) Reject singleton conflicts before writing items (#5005)
    • Extend scheduling retry protection past delivery backoff (#5020)
    • (executor) Preserve singleton runs on scheduling retries (#5030)
    • (queue) Enforce throttling per execution attempt (#5026)
    • (dashboard) Use full-width page scrollers below fixed headers (#5027)
    • (exechttp) Synchronize HTTP timing during cancellation (#4961)
    • (state) Expose idempotency lookup over the state RPC (#5038)
    • (devserver) Do not clobber checksum/error on named apps during -u sdk-url startup (#5003)
    • (httpdriver) Amend dns lookups with misconfigured AAAA (#5055)

    🚜 Refactor

    • (state) Return ErrIdempotentResponse from v2 SaveStep (#5008)

    ⚑ Performance

    • (queue) Look up account priorities concurrently in AccountPeek (#4976)
    • (constraintapi) Let a capacity-release wake skip the limiting-constraint cache (#4983)

    πŸ§ͺ Testing

    • (batch) Adding batching tests for valkey 9 (#4980)
    • (queue) Isolate capacity lease expiry test lifecycle (#5037)

    βš™οΈ Miscellaneous Tasks

    • (api) Soft-deprecate includeOutput (#4979)
    • (codeql) Scan fork pull requests (#5032)
    • (http) Improve no route errors (#5056)
    Original source
  • Oct 6, 2026
    • Date parsed from source:
      Oct 6, 2026
    • First seen by Releasebot:
      Oct 21, 2026
    Inngest logo

    Inngest

    v1.46.0

    Inngest releases a broad update with Cloud sandbox secrets, local workflow connections, and fine-grained API keys, alongside queue and tracing improvements, dashboard updates, realtime fixes, and a security patch.

    Release Notes

    #4864 feat(api): add sandbox secret name arrays

    Sandbox creation supports selecting stored secrets with secrets: ["OPENAI_API_KEY"] and injecting each under that same name.

    #4876 feat(dashboard): manage sandbox secrets in the sidebar

    Manage sandbox secrets from the dashboard, including importing .env files into editable rows.

    #4886 feat(dev): connect local workflows to Cloud sandboxes

    Experimental Cloud sandboxes from local development using inngest login, without deploying an app or configuring an SDK sandbox token.

    #4891 feat(dashboard): add api keys with permissions

    Admins can create API keys with fine-grained permissions for the v2 API, CLI, and MCP. Keys can expire or stay valid until revoked. Existing api and signing keys keep working unless an admin disables legacy key access.

    #4915 feat(tracing): include custom concurrency keys in spans

    Custom concurrency expressions and evaluated values are available in run and execution traces and through the run trace GraphQL API. Values longer than 512 characters are truncated in traces.

    #4918 feat(queue): accept bounded direct item hints

    Queue processors support optional full-item hints through normal constrained leasing and worker dispatch, including Redis backlog items and existing lookahead. Default behavior is unchanged.

    #4931 refactor(api-docs): clean up generation and deployment

    API documentation is now regenerated and deployed automatically with stable releases.

    #4937 fix(queue): prevent key queue step backlog overcounting

    Fixed inflated scheduled-step backlog metrics for functions using key queues with concurrency-constrained backlogs.

    #4944 fix(realtime): bound publishing and protect authorization tokens

    Realtime streaming now stops publishing when execution is canceled or publishing takes longer than five minutes. Publishing failures do not discard the function's response. Publishing also uses the authentication header expected by the realtime API.

    #4948 fix(queue): preserve hint receivers and in-flight leases

    Executor fast-path receivers recover after temporary shard lease expiry. Hint deadlines no longer abandon slow successful leases before dispatch, and unexpected lease/dispatch failures include per-item diagnostics. Ordinary queue processing remains the fallback.

    #4956 security(ui): bump TanStack Start to 1.168.60 for CVE-2026-102989

    Upgraded TanStack Start to patch CVE-2026-102989.

    Migration Notes

    #4864 feat(api): add sandbox secret name arrays

    This is an unshipped feature. Deploy matching API/control-plane and SDK support together, with compatible Simcity nodes. No aliases or name/UUID guessing.

    Companion PRs: Storage and management, Launch retrieval, Simcity node, JavaScript SDK.

    #4876 feat(dashboard): manage sandbox secrets in the sidebar

    Requires the Cloud API's secrets management GraphQL fields and configured secret storage. The UI uses the existing sandbox_api flag and organization-admin permissions.

    #4877 feat(queue): support dynamic partition peek limits per shard

    Code using the recently added WithPartitionPeekMax(n) option should use WithPartitionPeekMaxGetter(func(context.Context, string) int64 { return n }). Direct reads of QueueOptions.PartitionPeekMax should use PartitionPeekLimit(ctx, shardName). The default remains 300 and the absolute cap remains 1,500.

    #4886 feat(dev): connect local workflows to Cloud sandboxes

    Requires a compatible JavaScript SDK build and a CLI login scoped to a single existing Cloud environment with sandbox access and a default VPC. Use inngest login --force to select another environment. Sandbox proxy access is local only; use a local port forward for remote development. Sandboxes persist after shutdown; cleanup is explicit.

    #4902 chore(dashboard): run Vitest tests and align UI on Node 22

    UI development and CI now require Node.js 22. .tool-versions pins Node.js 22.16.0.

    #4915 feat(tracing): include custom concurrency keys in spans

    Tests
    go test -count=1 ./pkg/execution/executor ./pkg/coreapi/graph/loaders ./pkg/coreapi/generated ./pkg/tracing/meta
    

    #4918 feat(queue): accept bounded direct item hints

    The hook and enqueue observer are opt-in. Scheduling notifications now require ScheduleRequest.FastPath.Enabled; the v2 invoke handler sets it explicitly, with no transport implementation enabled by default. Producer protobuf additions preserve older proxies: a missing optional result skips the hint. New hinted items carry the actual positive backend generation. Buffer admission acknowledges the hint, not execution start. Hint configuration now has only source, pending-buffer size and per-attempt timeout; there is no separate active-work or active-attempt cap.

    #4944 fix(realtime): bound publishing and protect authorization tokens

    Use HTTPS for publishing endpoints. Plain HTTP remains supported for numeric loopback addresses and the development server's own explicitly configured publishing URL. Publishing no longer follows redirects.

    Live streaming ends after five minutes, but this does not cancel the underlying function. The executor can continue reading its response under the existing execution deadline.

    September 29: follow-up staging fixes

    The expanded staging checks found two additional problems, fixed in ad5e25369cdb:

    Slow-starting responses: publishing tokens previously expired after one minute, before a slow HTTP response started streaming. Internal publishing tokens now cover the caller's remaining deadline plus one minute, capped at the maximum function duration plus one minute (currently two hours and one minute). Subscription-token defaults remain one minute. This deliberately lengthens the validity of internal workspace-scoped publishing credentials; it does not broaden their permissions or expose them to subscribers.

    Cancellation: canceling execution now closes the underlying SDK HTTP request as well as publishing. Previously, publishing stopped but the SDK response read could continue. Cancellation during a body read returns the caller's cancellation/deadline error.

    Regression tests fail against the previous implementation and pass with the fixes. Tests cover cancellation before headers and during the body, with and without publishing; publish-token lifetime, expiry, deadline cap, and unchanged subscription defaults. Focused realtime tests and the complete exechttp package pass with the race detector.

    Real staging API retest: a simulated SDK withheld its first response for 65 seconds; the subscriber received the first chunk at 65.179 seconds, then the final chunk, with the complete response preserved. Mid-stream cancellation closed the SDK connection and returned promptly. Invalid authentication still preserved the response. These used the PR client locally against the real staging API, not a deployed executor. The long-running test subscriber had an explicitly extended test-only subscription lifetime.

    The five-minute publishing deadline remains unchanged. An unresponsive publisher can still delay delivery of the function response until that deadline; that is a separate latency trade-off, not fixed here.

    #4948 fix(queue): preserve hint receivers and in-flight leases

    Dependent Cloud update: inngest/monorepo#8929. Merge this OSS fix first, then refresh Cloud to the merged revision before merging and releasing it.

    No schema changes or new configuration. AttemptTimeout now bounds read-only receiver eligibility only; normal lease/dispatch uses the processor lifetime. Existing stopped receivers in older processes need replacement by deployment. Feature defaults remain disabled and production was not changed while preparing these fixes.

    Changelog

    πŸš€ Features

    • (api) Add sandbox secret name arrays (#4864)
    • (queue) Support pooled role leases (#4896)
    • (queue) Support dynamic partition peek limits per shard (#4877)
    • (dashboard) Add REST backed run lists (using backend traces v2) (#4890)
    • (dashboard) Manage sandbox secrets in the sidebar (#4876)
    • (tracing) Include custom concurrency keys in spans (#4915)
    • (api) Add async checkpoint routing hook (#4925)
    • (execution) Add SyncLifecycleListeners & supporting logic (#4879)
    • (dashboard) Add api keys with permissions (#4891)
    • (queue) Accept bounded direct item hints (#4918)
    • (dashboard) Link progressive searches to Insights (#4949)
    • (dashboard) Link Insights resource IDs (#4951)
    • (dev) Connect local workflows to Cloud sandboxes (#4886)

    πŸ› Bug Fixes

    • (api) Preserve run list timestamps (#4887)
    • (dashboard) Resolve failed boolean flags to ready on error (#4900)
    • (ui) Require registered client feature flags (#4904)
    • (dashboard) Fix UI for progressive CEL search status (#4913)
    • (queue) Notify shards after capacity release (#4914)
    • (jank) Remove code block title scrollbar (#4920)
    • (dashboard) Switch function runs from nested route to /v2/runs (#4922)
    • (mcp) Document cursor static mcp client config (#4916)
    • (queue) Prevent key queue step backlog overcounting (#4937)
    • (queue) Guard key queue backlog metric counting against no progress (#4945)
    • (queue) Drain archived connect queues (#4950)
    • (queue) Preserve hint receivers and in-flight leases (#4948)
    • Page crash locally on refresh because of cjs import (#4678)
    • (realtime) Bound publishing and protect authorization tokens (#4944)
    • (executor) Retry sleep completion saves (#4960)

    🚜 Refactor

    • (dashboard) Omit unused deferred parent run IDs (#4888)
    • (ui) Use shared relative time helper (#4919)
    • (api-docs) Clean up generation and deployment (#4931)

    ⚑ Performance

    • (queue) Reduce Redis work during enqueue and dequeue (#4955)

    βš™οΈ Miscellaneous Tasks

    • (dashboard) Run Vitest tests and align UI on Node 22 (#4902)
    • (ci) Pin GitHub Actions to commit SHAs (#4932)
    • (dashboard) Make runs list REST + v2 traces backed only and v2 traces only for every other runs data (#4928)
    • (queue) Set Scope.EnvID from Item if Item.Identifier is not available (#4954)

    πŸ›‘οΈ Security

    • (ui) Bump TanStack Start to 1.168.60 for CVE-2026-102989 (#4956)
    Original source
  • Oct 6, 2026
    • Date parsed from source:
      Oct 6, 2026
    • First seen by Releasebot:
      Oct 11, 2026
    Inngest logo

    Inngest

    Bursty Concurrency: spikes run up to 3x your limit

    Inngest adds bursty concurrency for Pro and above accounts, letting steps temporarily scale to 3x account limits for up to 60 minutes a month with admin alerts and no extra charge.

    We've added bursty concurrency for Pro and above accounts. When steps need more concurrency than your account limit, Inngest raises that limit to 3x for up to 60 minutes a month.

    Size

    Each burst starts at 3x your account concurrency limit.

    Counting

    The budget is 60 minutes. Each minute in which steps run above your limit spends one minute, however many steps start.

    Refill

    The budget resets every month, at a time unique to your account.

    Notifications

    Admins receive an email at 25%, 50%, 75%, and 100% of the budget.

    Billing

    Bursts are not charged. Add concurrency on your billing page if you use the full hour.

    Function-level concurrency you set overrides a burst, so a function with its own limit does not burst.

    Read the blog post Β· Bursty concurrency in the docs

    Original source
  • Oct 6, 2026
    • Date parsed from source:
      Oct 6, 2026
    • First seen by Releasebot:
      Oct 11, 2026
    Inngest logo

    Inngest

    Sandboxes: isolated microVMs from any function

    Inngest adds Sandboxes in public beta for Pro and higher TypeScript SDK users, letting functions spin up isolated microVMs, run commands, and tear them down with durable steps and new sandboxMiddleware support.

    Sandboxes are now in public beta for Pro and higher accounts on the TypeScript SDK.

    step.sandbox starts an isolated microVM from inside a function, in under a second, and runs commands in it. Create, commands, and destroy are durable steps on the run trace.

    Add sandboxMiddleware() from inngest/experimental on a client at inngest 4.21.1 or newer:

    const sandbox = await step.sandbox.create("create-sandbox", {
      name: `job-${event.data.jobId}`,
      vcpu: 1,
      memoryMb: 1024,
    });
    const result = await sandbox.commands.run("run-tests", "npm test");
    await sandbox.destroy("destroy-sandbox");
    

    A Sandbox is one of three sizes: 1 vCPU with 1 GB of RAM, 2 with 2 GB, or 4 with 4 GB. CPU is $0.000011 per second and RAM is $0.000003 per GB per second, charged while the Sandbox is running. Each Sandbox has one hour of active runtime, and paused time does not count. Destroy the Sandbox when you are done with it.

    Read the Sandboxes docs Β· Quick start Β· Try the Sandbox playground

    Original source
  • Oct 6, 2026
    • Date parsed from source:
      Oct 6, 2026
    • First seen by Releasebot:
      Oct 11, 2026
    Inngest logo

    Inngest

    Scoped access: read or write for MCP, the CLI, and the API

    Inngest adds read and write permissions for MCP, the CLI, and API keys, with OAuth-based sign in, scoped access, and tighter control for Cloud MCP, CI, and unattended jobs.

    MCP, the CLI, and API keys now support read and write permissions.

    For Cloud MCP and the CLI, sign in with OAuth and approve the account, environment access, permissions, and session duration. Read permissions allow inspection. Write permissions allow changes. A call must also be allowed by your account role. OAuth sessions cannot read event keys or signing keys. Run

    inngest login --force
    

    to sign in again with different permissions.

    API keys are for CI and unattended jobs. Organization admins create them in the dashboard with the same permissions, and can limit a key to one environment. INNGEST_API_KEY overrides a stored OAuth login.

    A call without the required permission returns

    403
    

    or

    insufficient_scope
    

    .

    MCP docs Β· CLI authentication Β· Keys and access

    Original source
  • Sep 17, 2026
    • Date parsed from source:
      Sep 17, 2026
    • First seen by Releasebot:
      Sep 18, 2026
    Inngest logo

    Inngest

    v1.45.1

    Inngest fixes queue handling for permanently unroutable items and improves the CLI unauthenticated message.

    Migration Notes

    #4878 fix(queue): drop permanently unroutable items

    Consumers must explicitly configure WithPermanentConstraintErrorHandler to enable dropping; existing behavior is unchanged otherwise.

    Changelog

    πŸ› Bug Fixes

    • (cli) Better message when cli is unauthed (#4883)
    • (queue) Drop permanently unroutable items (#4878)
    Original source
  • Sep 17, 2026
    • Date parsed from source:
      Sep 17, 2026
    • First seen by Releasebot:
      Sep 18, 2026
    Inngest logo

    Inngest

    v1.45.0

    Inngest adds OAuth login for the CLI and MCP clients, expands REST API and run-list filtering with CEL support, and introduces sandbox lifecycle contracts. The release also tightens API validation and includes multiple queue, debounce, and error-handling fixes.

    Release Notes

    #4780 feat(auth): add cli oauth login

    Adds cloud login support to the Inngest CLI. OAuth credentials are stored in the operating system’s credential store and refreshed automatically.

    log in

    inngest login
    

    check the current session

    inngest auth status
    

    start a new login and replace the current session

    inngest login --force
    

    revoke the session and remove local credentials

    inngest logout
    

    #4781 feat(auth): add mcp oauth support

    Inngest Cloud MCP clients can now authenticate via OAuth. Users can now select the account, permissions, environment access, etc. in the Inngest Dashboard.

    #4788 fix(debounce): handle removed config during execution

    Prevent debounce timeout execution from crashing after debounce configuration is removed from a function.

    #4789 fix(api): serialize sandbox bytes written as a number

    Sandbox file upload responses now serialize bytesWritten as a number instead of a string.

    #4813 fix(api): normalize unknown REST v2 body field errors

    REST v2 now returns a clear invalid_request error when a JSON request body contains a field unsupported by the server.

    #4816 feat(api): reject unmapped v2 request fields via grpc-gateway fork

    API V2 now rejects unknown query parameters and request bodies on endpoints that do not define a body.

    #4818 fix(semaphores): improve semaphore iteration, breaking early, etc

    improves speed of queue when workers are at their concurrency cap

    #4832 fix(cel): Improve certain classes of cel filter errors

    CEL run searches now return an explicit error for unsupported fields or operators instead of silently ignoring the filter and returning unfiltered runs.

    Blank lines in CEL expressions are now safely ignored.

    #4849 fix(queue): close migration requeue routing window

    Fixed a queue migration race that could lose a requeue schedule update.

    #4855 fix(api): return error when event run status lookup fails

    REST API event run lookups now return HTTP 500 when querying run status fails instead of HTTP 200 with an empty response.

    #4857 fix(api): REST v1 GET requests should keep their error codes

    REST v1 endpoints now preserve non-200 HTTP statuses through the response cache, and only successful HTTP 200 responses are cached.

    #4858 feat(api): support CEL queries in REST run lists

    REST v2 run-list endpoints now support CEL filtering through the optional query parameter and return additional run metadata.

    #4863 fix(debounce): finish source cleanup before execution

    Fixed duplicate debounce execution after a crash during queue-shard migration.

    #4870 feat(api): define sandbox lifecycle contract

    Adds REST V2 API contract definitions for pausing and resuming sandboxes and managing sandbox snapshots.

    #4874 feat(api): add include option for deferred parents

    runs API can optionally return the deferring parent function slug and name

    Migration Notes

    #4816 feat(api): reject unmapped v2 request fields via grpc-gateway fork

    Clients using API V2 must remove unsupported query parameters and must not send request bodies to endpoints without body mappings. Such requests now return HTTP 400 instead of silently ignoring the unsupported input.

    #4844 fix(queue): route requeues to current shard

    None

    Tests

    go test -count=1 -run "TestProducerRequeue" ./pkg/execution/queue
    

    #4849 fix(queue): close migration requeue routing window

    None

    Testing

    go test -count=1 -run 'TestProducerRequeue' ./pkg/execution/queue
    

    #4858 feat(api): support CEL queries in REST run lists

    Run-list clients should use page.cursor for continuation instead of deriving a cursor from returned runs.

    Testing

    nix develop --command go test -race -count=1 ./pkg/api/v2 ./pkg/devserver
    nix develop --command go test -count=1 ./pkg/cqrs/manager -run '^TestCQRSGetSpanRuns(CELJoinQualifiesTenantFilters|RejectsUnsupportedCELPredicates)$'
    

    #4863 fix(debounce): finish source cleanup before execution

    None

    Verification

    go test ./pkg/execution/debounce -count=1
    golangci-lint run ./pkg/execution/debounce/...
    

    Refs SYS-1258.

    #4870 feat(api): define sandbox lifecycle contract

    Cloud must update its OSS dependency and replace the existing manually registered lifecycle and snapshot routes with implementations of these generated methods. Those changes are provided by inngest/monorepo#8702 and inngest/monorepo#8701.

    Validation

    go test ./proto/gen/api/v2 ./pkg/api/v2
    

    Changelog

    πŸš€ Features

    (sandbox) Accept snapshot ID when creating sandboxes (#4767)

    (traces) Remove preview=false legacy trace path (#4799)

    (dashboard) Add hobby execution limit notices (#4819)

    (api) Reject unmapped v2 request fields via grpc-gateway fork (#4816)

    (api) Support CEL queries in REST run lists (#4858)

    (api) Define sandbox lifecycle contract (#4870)

    (queue) Configure partition peek limit (#4875)

    (api) Add include option for deferred parents (#4874)

    (auth) Add cli oauth login (#4780)

    (auth) Add mcp oauth support (#4781)

    πŸ› Bug Fixes

    (debounce) Handle removed config during execution (#4788)

    (cqrs) Close query rows (#2680)

    (queue) Reduce semaphore requeue churn (#4807)

    (api) Serialize sandbox bytes written as a number (#4789)

    (semaphores) Improve semaphore iteration, breaking early, etc (#4818)

    (deps) Remove stale Tencent SDK replacement (#4829)

    (cel) Improve certain classes of cel filter errors (#4832)

    Preserve newer debounce events during queue item recovery (#4800)

    (queue) Route requeues to current shard (#4844)

    (ui) Update Next.js past critical advisories (#4847)

    (queue) Close migration requeue routing window (#4849)

    (api) Normalize unknown REST v2 body field errors (#4813)

    (api) Return error when event run status lookup fails (#4855)

    (components) NewCodeBlock drag-to-select breaks when a mid-drag resize hits the editor (#4856)

    (api) REST v1 GET requests should keep their error codes (#4857)

    (debounce) Finish source cleanup before execution (#4863)

    (ui) Hide unknown run status filter (#4867)

    (api) Return unknown run statuses accurately (#4868)

    (dashboard) Remove dead run-level AI treatment (#4871)

    (rest) Remove mistakenly added run-level has_ai field (#4872)

    🚜 Refactor

    (event-cel) Remove unused package (#4792)

    (debug) Remove unused/incomplete run debug feature (#4801)

    (metadata) Remove span metadata feature flag (#4820)

    (cqrs) Remove unused span stack reader (#4825)

    (cqrs) Remove legacy trace spans reader (#4826)

    Use go 1.26 new expressions (#4845)

    (queue) Drop iterator APIs from the queue reader interfaces (#4859)

    βš™οΈ Miscellaneous Tasks

    (metrics) Remove unused pkg/usage (#4793)

    (api) Add proto permission metadata (#4833)

    Original source
  • Aug 26, 2026
    • Date parsed from source:
      Aug 26, 2026
    • First seen by Releasebot:
      Aug 26, 2026
    Inngest logo

    Inngest

    v1.44.0

    Inngest adds a run-level AI usage summary, showing total tokens, cost, and models used, and displays recorded scores directly on timeline bars with hover details. It also fixes key queue capacity lease renewal to prevent overlapping steps.

    Release Notes

    #4736 feat(scores): show recorded scores on timeline bars

    Scores recorded on a step now appear as a badge on that step's bar in the run timeline, with a hover card listing each score and its value.

    #4758 feat(ai): add run-level AI usage summary

    None (user-facing note on the UI PR).

    #4759 feat(ui): show run AI usage summary

    Run details now show a run-level AI usage summary (total tokens, cost, models used).

    #4766 fix(queue): renew capacity leases before dispatch

    Fixed an issue where steps using key queues could overlap despite a concurrency limit of one when a pre-acquired capacity lease expired before its first renewal.

    Migration Notes

    #4736 feat(scores): show recorded scores on timeline bars

    Related

    EXE-1832: Scoring with the trace view

    Changelog

    πŸš€ Features

    • (ai) Add run-level AI usage summary (#4758)
    • (ui) Show run AI usage summary (#4759)
    • (scores) Show recorded scores on timeline bars (#4736)

    πŸ› Bug Fixes

    • (queue) Renew capacity leases before dispatch (#4766)
    • (insights) Fix broken download with invalid dates (#4769)
    • (connect) Track reply delivery outcomes (#4774)

    🚜 Refactor

    • (connect) Remove executor ACK RPC (#4751)

    ⚑ Performance

    • (expressions) Avoid cloning event data per evaluation (#4762)
    • (batching) Adding metrics for batching to capture redis memory usage and batch duration (#4763)

    βš™οΈ Miscellaneous Tasks

    • Update CODEOWNERS (#4771)
    • Remove former owners from CODEOWNERS (#4785)
    Original source
  • Aug 20, 2026
    • Date parsed from source:
      Aug 20, 2026
    • First seen by Releasebot:
      Aug 20, 2026
    Inngest logo

    Inngest

    v1.43.0

    Inngest adds app filtering to the Functions table and improves CLI API analytics with a new user agent.

    Release Notes

    #4199 feat(dashboard): add app filtering to functions table

    Users can now filter functions by app in the Functions table, making it easier to find functions belonging to specific apps.

    Migration Notes

    #4199 feat(dashboard): add app filtering to functions table

    https://claude.ai/code/session_017cTjigukMmEfDws6YUsoWc

    Changelog

    πŸš€ Features

    • (cli) Add cli user agent for api analytics (#4752)
    • (dashboard) Add app filtering to functions table (#4199)

    πŸ› Bug Fixes

    • (ci) Add --force-with-lease to the Sync Staging workflow push (#4629)
    Original source
  • Aug 19, 2026
    • Date parsed from source:
      Aug 19, 2026
    • First seen by Releasebot:
      Aug 20, 2026
    Inngest logo

    Inngest

    v1.42.0

    Inngest adds new dashboard and dev server experiences for Scores, Experiments, event scheduling, and concurrency visibility, plus a v2 send event endpoint and broader UI and batch reliability fixes.

    Release Notes

    #4697 feat(improvement): Add-scores-and-experiments-empty-states-to-dev-server

    The dev server now includes Scores and Experiments pages (AI section, beta) showing how to get started with step.score() and group.experiment(). Data for these features is displayed in Inngest Cloud after deploying; the dev server pages let you register interest in local support.

    #4718 fix(traces): scope span self-join by run_id

    Fixed the runs list hanging on large Postgres deployments when deferredFrom/isDeferred was selected. No migration or manual index needed.

    #4720 feat: Surface event scheduling in the dashboard

    Surface scheduled at in the dashboard's run's page iff the event is scheduled in the future

    #4721 refactor(runs): remove legacy tokens from run output header

    Removed Model/token values parsed from step.run output in favor of a nudge towards the better AI metadata setup.

    #4724 feat(api): add v2 send event endpoint

    Added a send event endpoint to the v2 rest api, cli and mcp.

    POST /v2/events
    inngest api --prod send-event \
    --name "app/user.created" \
    --data '{"userId":"user_123","email":"[email protected]"}' \
    --id "user-created-user_123"
    

    #4737 fix(traces): hide expand/collapse all when there is nothing to toggle

    Expand and contract buttons in the trace viewer are hidden when they will not change what's displayed

    #4744 feat(ui): adding a concurrency color in the graph

    Changing the Overview and the Functions page to show concurrency limits being reached in UI.

    #4749 fix(batch): propagate timeout scheduling errors so source events retry

    Fixed an issue where transient scheduling failures could prevent a new batch's timeout job from being enqueued, causing the batch to remain pending past its configured timeout until it reached its batch limit.

    Migration Notes

    #4697 feat(improvement): Add-scores-and-experiments-empty-states-to-dev-server

    πŸ€– Generated with Claude Code

    https://claude.ai/code/session_01QgjtSu6eF6j3bc8GWC6buN

    #4722 chore(queue): remove system queue migrations

    None

    Validation

    go test -count=1 ./pkg/execution/queue ./pkg/execution/state/redis_state ./pkg/execution/executor ./pkg/execution/deletion ./tests/execution/queue

    git diff --check

    #4723 feat(queue): let custom scanners declare roles

    None

    Validation

    go test -count=1 ./pkg/execution/queue

    #4726 fix(queue): preserve sentinel shard selection errors

    None

    Checks

    go test -count=1 ./pkg/execution/queue

    git diff --check

    #4753 fix(ui): adding legend for concurrency limit on hover

    Changelog

    πŸš€ Features

    Add SDK feature observations (#4700)

    (connect) Adding support for connect HA (#4714)

    (queue) Let custom scanners declare roles (#4723)

    (api) Add v2 sandbox contracts (#4716)

    Surface event scheduling in the dashboard (#4720)

    (ai metadata) More robust AI model cost data (#4728)

    (improvement) Add-scores-and-experiments-empty-states-to-dev-server (#4697)

    (improvement) Cloud MCP UI (#4729)

    (ui-mcp) Re-add MCP setup page (#4740)

    (mcp) Restore setup docs with public operations (#4748)

    (ui) Adding a concurrency color in the graph (#4744)

    (api) Add v2 send event endpoint (#4724)

    πŸ› Bug Fixes

    (traces) Scope span self-join by run_id (#4718)

    64 bit linux download link for install.sh script (#4727)

    (queue) Preserve sentinel shard selection errors (#4726)

    Revert "feat(improvement): Cloud MCP UI (#4729)" (#4739)

    (ui-mcp) Revert MCP setup page redesign (#4745)

    (redis-state) Tolerate legacy idempotency tombstones (#4747)

    (batch) Propagate timeout scheduling errors so source events retry (#4749)

    (traces) Hide expand/collapse all when there is nothing to toggle (#4737)

    (ui) Adding legend for concurrency limit on hover (#4753)

    (queue) Disable constraint checks when key queues are disabled (#4754)

    🚜 Refactor

    (runs) Remove legacy tokens from run output header (#4721)

    (queue) Split queue reader capabilities (#4743)

    (connect) Remove the async ACK gateway -> executor (#4215)

    πŸ“š Documentation

    (api) Improve v2 app sync and insights docs (#4732)

    βš™οΈ Miscellaneous Tasks

    (queue) Remove system queue migrations (#4722)

    (batch) Add more context to schedule batch execution (#4742)

    (connect) Adding run id to logs (#4698)

    Original source
Releasebot

Curated by the Releasebot team

Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.

Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.