SIGN IN SIGN UP

chore(release): v1.39.0 (#4651)

<!-- auto-release-pr -->
This PR prepares `v1.39.0`.

- Code difference since last tag:
[v1.38.1...865fc1290](https://github.com/inngest/inngest/compare/v1.38.1...865fc12902cc1b30bfa4d7420ee85d6eabc7aac6)
- Previous tag: `v1.38.1`
- Source branch: `release/next`
- Base branch: `main`

### Additional Release Notes
<!-- release-note:manual-start -->
<!-- release-note:manual-end -->

### Additional Migration Notes
<!-- migration-note:manual-start -->
<!-- migration-note:manual-end -->

## Final Release Page Preview

> This generated preview is the release notes body that will be
published to the GitHub Release page. It intentionally includes the
additional notes above, followed by collected PR notes and the
changelog.

<details open>
<summary>Rendered release notes body</summary>

<!-- release-note:preview-start -->
## Release Notes

- [#4638](https://github.com/inngest/inngest/pull/4638) feat(api): v2
api cancel run

  Adds cancel run to the  v2 rest api and cli.

  `POST /api/v2/runs/{run_id}/cancel`

  `inngest api POST /api/v2/runs/{run_id}/cancel`

- [#4645](https://github.com/inngest/inngest/pull/4645) feat(api): rest
v2 rerun from step

  `POST /v2/runs/{run_id}/rerun`

  with payload:
  ```json
  {
    "fromStep": {
      "stepId": "fetch-user",
      "input": [
        {
          "userId": "user_123"
        }
      ]
    }
  }
  ```

  CLI equivalent:
  ```
  inngest api --prod rerun <run_id> \
    --from-step "step 2" \
    --input '[{"foo":"bar"}]'
  ```

## Migration Notes

- [#4655](https://github.com/inngest/inngest/pull/4655) refactor(queue):
add shard scanner boundary

  None

  ## Validation

  - go test -count=1 ./pkg/execution/queue
  - go test -run '^$' ./pkg/execution/state/redis_state

- [#4665](https://github.com/inngest/inngest/pull/4665) refactor(queue):
add scanner runtime

Out-of-tree queue scanner implementations must update `Run(ctx,
dispatch)` to `Run(ctx, runtime)`, use `runtime.Dispatch` to submit
leased work, and may inspect `runtime.WorkerSemaphore` before scanning.
Implementations that call `DispatchFunc` must handle the returned
`DispatchedItem`; callers may ignore it, or wait on `Done()` with
context cancellation or a timeout.

Callers of `LeaseItem` must stop passing queue partitions and instead
provide item metadata on `LeaseItemRequest`. Callers of `ProcessItem`
must handle the new `(ProcessItemResult, error)` return shape.

  ## Validation

  - `go test ./pkg/execution/queue`
  - `go test ./tests/execution/queue`
  - `make lint`

- [#4672](https://github.com/inngest/inngest/pull/4672) fix(executor):
recover from panics in event lifecycle listeners

  ## Test Plan

Added `TestRunEventLifecyclesRecoversFromListenerPanic` which verifies
that:
  - A panicking listener is called and its panic is recovered
  - Subsequent listeners are still called despite the panic
- Multiple invocations of `runEventLifecycles` work correctly even after
a panic

  https://claude.ai/code/session_01P33HC2LRVTGmbdkEwUYEMu

## Changelog

### 🚀 Features

- *(api)* Rest v2 rerun from step (#4645)
- *(metadata)* Augment incoming ai metadata with cost estimates (#4661)
- *(api)* V2 api cancel run (#4638)

### 🐛 Bug Fixes

- *(cli)* Improve cli timestamp arg handling (#4650)
- Use snapshots to handle map race access (#4653)
- *(queue)* Skip constraint lease on missing account (#4604)
- Race creating workflow and checkpointing durable endpoint step (#4668)
- *(executor)* Recover from panics in event lifecycle listeners (#4672)

### 🚜 Refactor

- *(queue)* Add shard scanner boundary (#4655)
- *(queue)* Add scanner runtime (#4665)
- *(queue)* Expose available worker count (#4666)

### ⚙️ Miscellaneous Tasks

- *(logging)* Add logging middleware for API (#4646)
- Make cancellation deadline configurable (#4659)
- *(state)* Add primitives for cross-backend run state migration (#4654)
<!-- release-note:preview-end -->

</details>

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
I
Inngest Release Bot committed
b84cdda1ff9d40b9eae3ef0f74112eaa57ba2473
Parent: 865fc12
Committed by GitHub <noreply@github.com> on 7/28/2026, 4:41:39 PM