Files
triggerdotdev--trigger.dev/packages/python/CHANGELOG.md
github-actions[bot] e0681d2394
🚀 Publish Trigger.dev Docker / units (push) Failing after 3s
🚀 Publish Trigger.dev Docker / typecheck (push) Failing after 19s
🚀 Publish Trigger.dev Docker / publish-webapp (push) Has been skipped
🚀 Publish Trigger.dev Docker / publish-worker (push) Has been skipped
🚀 Publish Trigger.dev Docker / publish-worker-v4 (push) Has been skipped
🧭 Helm Chart Release / lint-and-test (push) Has been cancelled
🧭 Helm Chart Release / release (push) Has been cancelled
chore: release v4.5.0-rc.4 (#3788)
## Summary
1 new feature, 5 improvements.

## Highlights

- Mollifier `mutateSnapshot` now enforces a tag cap: an `append_tags`
patch carrying `maxTags` returns `"limit_exceeded"` (writing nothing)
when the deduped tag count would exceed the limit, so a buffered run
can't accumulate more tags via the tags API than the trigger validator
allows at creation.
([#3756](https://github.com/triggerdotdev/trigger.dev/pull/3756))

## Improvements
- Mollifier buffer extensions: idempotency dedup, an atomic
`mutateSnapshot` API, metadata CAS, claim primitives, and a
`MollifierSnapshot` type. The buffer's Redis client now reconnects with
jittered backoff so a fleet of clients doesn't stampede Redis in
lockstep after a blip.
([#3752](https://github.com/triggerdotdev/trigger.dev/pull/3752))
- Add `onTerminalFailure` callback to `MollifierDrainerOptions` so the
customer's run lands a SYSTEM_FAILURE PG row even when the drainer
exhausts `maxAttempts` on a retryable PG error. Previously,
retryable-error exhaustion called `buffer.fail()` directly, which
atomically marks FAILED + DELs the entry hash with no PG write — silent
data loss when PG was unreachable across the full retry budget. The
callback fires before `buffer.fail()` on any terminal path (`cause:
"non-retryable"` or `"max-attempts-exhausted"`); throwing a retryable
error from the callback causes the drainer to requeue rather than fail.
([#3754](https://github.com/triggerdotdev/trigger.dev/pull/3754))
- Bump `@s2-dev/streamstore` to `0.22.10` to fix a
`TASK_RUN_UNCAUGHT_EXCEPTION` ("Invalid state: Unable to enqueue") when
a `chat.agent` turn is aborted mid-stream.
([#3792](https://github.com/triggerdotdev/trigger.dev/pull/3792))
- Coerce numeric `concurrencyKey` values to string at the API boundary
across `tasks.trigger`, `tasks.batchTrigger`, and the Phase-2 streaming
batch endpoint.
([#3789](https://github.com/triggerdotdev/trigger.dev/pull/3789))
- Add a `tools` option to `chat.agent`. Declaring your tools here
threads them into the SDK's internal `convertToModelMessages`, so each
tool's `toModelOutput` is re-applied when prior-turn history is
re-converted.
([#3790](https://github.com/triggerdotdev/trigger.dev/pull/3790))

<details>
<summary>Raw changeset output</summary>

⚠️⚠️⚠️⚠️⚠️⚠️

`main` is currently in **pre mode** so this branch has prereleases
rather than normal releases. If you want to exit prereleases, run
`changeset pre exit` on `main`.

⚠️⚠️⚠️⚠️⚠️⚠️

# Releases
## @trigger.dev/redis-worker@4.5.0-rc.4

### Minor Changes

- Mollifier buffer extensions: idempotency dedup, an atomic
`mutateSnapshot` API, metadata CAS, claim primitives, and a
`MollifierSnapshot` type. The buffer's Redis client now reconnects with
jittered backoff so a fleet of clients doesn't stampede Redis in
lockstep after a blip.
([#3752](https://github.com/triggerdotdev/trigger.dev/pull/3752))
- Add `onTerminalFailure` callback to `MollifierDrainerOptions` so the
customer's run lands a SYSTEM_FAILURE PG row even when the drainer
exhausts `maxAttempts` on a retryable PG error. Previously,
retryable-error exhaustion called `buffer.fail()` directly, which
atomically marks FAILED + DELs the entry hash with no PG write — silent
data loss when PG was unreachable across the full retry budget. The
callback fires before `buffer.fail()` on any terminal path (`cause:
"non-retryable"` or `"max-attempts-exhausted"`); throwing a retryable
error from the callback causes the drainer to requeue rather than fail.
([#3754](https://github.com/triggerdotdev/trigger.dev/pull/3754))

### Patch Changes

- Pipeline the per-entry `HGETALL` fetches in
`MollifierBuffer.listEntriesForEnv`. The previous serial implementation
issued one Redis round-trip per runId returned by `LRANGE`, which
dominated stale-sweep wall-time at any meaningful backlog (at the
sweep's default maxCount=1000, this is ~1000 RTTs per env per pass).
Behaviour is unchanged — entries are still skipped when the entry hash
has been torn down by a concurrent drainer ack/fail between the LRANGE
and the HGETALL.
([#3752](https://github.com/triggerdotdev/trigger.dev/pull/3752))
- Mollifier `mutateSnapshot` now enforces a tag cap: an `append_tags`
patch carrying `maxTags` returns `"limit_exceeded"` (writing nothing)
when the deduped tag count would exceed the limit, so a buffered run
can't accumulate more tags via the tags API than the trigger validator
allows at creation.
([#3756](https://github.com/triggerdotdev/trigger.dev/pull/3756))
-   Updated dependencies:
    -   `@trigger.dev/core@4.5.0-rc.4`

## @trigger.dev/build@4.5.0-rc.4

### Patch Changes

-   Updated dependencies:
    -   `@trigger.dev/core@4.5.0-rc.4`

## trigger.dev@4.5.0-rc.4

### Patch Changes

- Bump `@s2-dev/streamstore` to `0.22.10` to fix a
`TASK_RUN_UNCAUGHT_EXCEPTION` ("Invalid state: Unable to enqueue") when
a `chat.agent` turn is aborted mid-stream.
([#3792](https://github.com/triggerdotdev/trigger.dev/pull/3792))
-   Updated dependencies:
    -   `@trigger.dev/core@4.5.0-rc.4`
    -   `@trigger.dev/build@4.5.0-rc.4`
    -   `@trigger.dev/schema-to-json@4.5.0-rc.4`

## @trigger.dev/core@4.5.0-rc.4

### Patch Changes

- Coerce numeric `concurrencyKey` values to string at the API boundary
across `tasks.trigger`, `tasks.batchTrigger`, and the Phase-2 streaming
batch endpoint.
([#3789](https://github.com/triggerdotdev/trigger.dev/pull/3789))
- Bump `@s2-dev/streamstore` to `0.22.10` to fix a
`TASK_RUN_UNCAUGHT_EXCEPTION` ("Invalid state: Unable to enqueue") when
a `chat.agent` turn is aborted mid-stream.
([#3792](https://github.com/triggerdotdev/trigger.dev/pull/3792))

## @trigger.dev/plugins@4.5.0-rc.4

### Patch Changes

-   Updated dependencies:
    -   `@trigger.dev/core@4.5.0-rc.4`

## @trigger.dev/python@4.5.0-rc.4

### Patch Changes

-   Updated dependencies:
    -   `@trigger.dev/sdk@4.5.0-rc.4`
    -   `@trigger.dev/core@4.5.0-rc.4`
    -   `@trigger.dev/build@4.5.0-rc.4`

## @trigger.dev/react-hooks@4.5.0-rc.4

### Patch Changes

-   Updated dependencies:
    -   `@trigger.dev/core@4.5.0-rc.4`

## @trigger.dev/rsc@4.5.0-rc.4

### Patch Changes

-   Updated dependencies:
    -   `@trigger.dev/core@4.5.0-rc.4`

## @trigger.dev/schema-to-json@4.5.0-rc.4

### Patch Changes

-   Updated dependencies:
    -   `@trigger.dev/core@4.5.0-rc.4`

## @trigger.dev/sdk@4.5.0-rc.4

### Patch Changes

- Add a `tools` option to `chat.agent`. Declaring your tools here
threads them into the SDK's internal `convertToModelMessages`, so each
tool's `toModelOutput` is re-applied when prior-turn history is
re-converted.
([#3790](https://github.com/triggerdotdev/trigger.dev/pull/3790))

    ```ts
    chat.agent({
      tools: { readFile, search },
      run: async ({ messages, tools, signal }) =>
        streamText({ model, messages, tools, abortSignal: signal }),
    });
    ```

Also exports `InferChatUIMessageFromTools<typeof tools>` to derive the
chat `UIMessage` type (typed tool parts) directly from a tool set.

-   Updated dependencies:
    -   `@trigger.dev/core@4.5.0-rc.4`

</details>

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-02 09:35:14 +01:00

533 lines
10 KiB
Markdown

# @trigger.dev/python
## 4.5.0-rc.4
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.5.0-rc.4`
- `@trigger.dev/core@4.5.0-rc.4`
- `@trigger.dev/build@4.5.0-rc.4`
## 4.5.0-rc.3
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.5.0-rc.3`
- `@trigger.dev/build@4.5.0-rc.3`
- `@trigger.dev/sdk@4.5.0-rc.3`
## 4.5.0-rc.2
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.5.0-rc.2`
- `@trigger.dev/build@4.5.0-rc.2`
- `@trigger.dev/core@4.5.0-rc.2`
## 4.5.0-rc.1
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.5.0-rc.1`
- `@trigger.dev/build@4.5.0-rc.1`
- `@trigger.dev/sdk@4.5.0-rc.1`
## 4.5.0-rc.0
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.5.0-rc.0`
- `@trigger.dev/core@4.5.0-rc.0`
- `@trigger.dev/build@4.5.0-rc.0`
## 4.4.6
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.4.6`
- `@trigger.dev/build@4.4.6`
- `@trigger.dev/sdk@4.4.6`
## 4.4.5
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.4.5`
- `@trigger.dev/build@4.4.5`
- `@trigger.dev/sdk@4.4.5`
## 4.4.4
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.4.4`
- `@trigger.dev/core@4.4.4`
- `@trigger.dev/build@4.4.4`
## 4.4.3
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.4.3`
- `@trigger.dev/build@4.4.3`
- `@trigger.dev/sdk@4.4.3`
## 4.4.2
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.4.2`
- `@trigger.dev/build@4.4.2`
- `@trigger.dev/core@4.4.2`
## 4.4.1
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.4.1`
- `@trigger.dev/build@4.4.1`
- `@trigger.dev/core@4.4.1`
## 4.4.0
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.4.0`
- `@trigger.dev/sdk@4.4.0`
- `@trigger.dev/build@4.4.0`
## 4.3.3
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.3.3`
- `@trigger.dev/core@4.3.3`
- `@trigger.dev/build@4.3.3`
## 4.3.2
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.3.2`
- `@trigger.dev/build@4.3.2`
- `@trigger.dev/core@4.3.2`
## 4.3.1
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.3.1`
- `@trigger.dev/core@4.3.1`
- `@trigger.dev/build@4.3.1`
## 4.3.0
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.3.0`
- `@trigger.dev/build@4.3.0`
- `@trigger.dev/sdk@4.3.0`
## 4.2.0
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.2.0`
- `@trigger.dev/sdk@4.2.0`
- `@trigger.dev/core@4.2.0`
## 4.1.2
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.1.2`
- `@trigger.dev/core@4.1.2`
- `@trigger.dev/sdk@4.1.2`
## 4.1.1
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.1.1`
- `@trigger.dev/core@4.1.1`
- `@trigger.dev/sdk@4.1.1`
## 4.1.0
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.1.0`
- `@trigger.dev/build@4.1.0`
- `@trigger.dev/core@4.1.0`
## 4.0.7
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.0.7`
- `@trigger.dev/core@4.0.7`
- `@trigger.dev/sdk@4.0.7`
## 4.0.6
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.0.6`
- `@trigger.dev/build@4.0.6`
- `@trigger.dev/sdk@4.0.6`
## 4.0.5
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.0.5`
- `@trigger.dev/build@4.0.5`
- `@trigger.dev/sdk@4.0.5`
## 4.0.4
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.0.4`
- `@trigger.dev/core@4.0.4`
- `@trigger.dev/sdk@4.0.4`
## 4.0.3
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.0.3`
- `@trigger.dev/sdk@4.0.3`
- `@trigger.dev/build@4.0.3`
## 4.0.2
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.0.2`
- `@trigger.dev/core@4.0.2`
- `@trigger.dev/sdk@4.0.2`
## 4.0.1
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.0.1`
- `@trigger.dev/core@4.0.1`
- `@trigger.dev/sdk@4.0.1`
## 4.0.0
### Major Changes
- Trigger.dev v4 release. Please see our upgrade to v4 docs to view the full changelog: https://trigger.dev/docs/upgrade-to-v4 ([#1869](https://github.com/triggerdotdev/trigger.dev/pull/1869))
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.0.0`
- `@trigger.dev/core@4.0.0`
- `@trigger.dev/build@4.0.0`
## 4.0.0-v4-beta.28
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.0.0-v4-beta.28`
- `@trigger.dev/core@4.0.0-v4-beta.28`
- `@trigger.dev/build@4.0.0-v4-beta.28`
## 4.0.0-v4-beta.27
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.0.0-v4-beta.27`
- `@trigger.dev/build@4.0.0-v4-beta.27`
- `@trigger.dev/core@4.0.0-v4-beta.27`
## 4.0.0-v4-beta.26
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.0.0-v4-beta.26`
- `@trigger.dev/build@4.0.0-v4-beta.26`
- `@trigger.dev/core@4.0.0-v4-beta.26`
## 4.0.0-v4-beta.25
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.0.0-v4-beta.25`
- `@trigger.dev/core@4.0.0-v4-beta.25`
- `@trigger.dev/sdk@4.0.0-v4-beta.25`
## 4.0.0-v4-beta.24
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.0.0-v4-beta.24`
- `@trigger.dev/build@4.0.0-v4-beta.24`
- `@trigger.dev/core@4.0.0-v4-beta.24`
## 4.0.0-v4-beta.23
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.0.0-v4-beta.23`
- `@trigger.dev/core@4.0.0-v4-beta.23`
- `@trigger.dev/build@4.0.0-v4-beta.23`
## 4.0.0-v4-beta.22
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.0.0-v4-beta.22`
- `@trigger.dev/sdk@4.0.0-v4-beta.22`
- `@trigger.dev/build@4.0.0-v4-beta.22`
## 4.0.0-v4-beta.21
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.0.0-v4-beta.21`
- `@trigger.dev/build@4.0.0-v4-beta.21`
- `@trigger.dev/sdk@4.0.0-v4-beta.21`
## 4.0.0-v4-beta.20
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.0.0-v4-beta.20`
- `@trigger.dev/core@4.0.0-v4-beta.20`
- `@trigger.dev/sdk@4.0.0-v4-beta.20`
## 4.0.0-v4-beta.19
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.0.0-v4-beta.19`
- `@trigger.dev/sdk@4.0.0-v4-beta.19`
- `@trigger.dev/build@4.0.0-v4-beta.19`
## 4.0.0-v4-beta.18
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.0.0-v4-beta.18`
- `@trigger.dev/core@4.0.0-v4-beta.18`
- `@trigger.dev/sdk@4.0.0-v4-beta.18`
## 4.0.0-v4-beta.17
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.0.0-v4-beta.17`
- `@trigger.dev/build@4.0.0-v4-beta.17`
- `@trigger.dev/sdk@4.0.0-v4-beta.17`
## 4.0.0-v4-beta.16
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.0.0-v4-beta.16`
- `@trigger.dev/core@4.0.0-v4-beta.16`
- `@trigger.dev/sdk@4.0.0-v4-beta.16`
## 4.0.0-v4-beta.15
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.0.0-v4-beta.15`
- `@trigger.dev/core@4.0.0-v4-beta.15`
- `@trigger.dev/sdk@4.0.0-v4-beta.15`
## 4.0.0-v4-beta.14
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.0.0-v4-beta.14`
- `@trigger.dev/build@4.0.0-v4-beta.14`
- `@trigger.dev/core@4.0.0-v4-beta.14`
## 4.0.0-v4-beta.13
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.0.0-v4-beta.13`
- `@trigger.dev/build@4.0.0-v4-beta.13`
- `@trigger.dev/sdk@4.0.0-v4-beta.13`
## 4.0.0-v4-beta.12
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.0.0-v4-beta.12`
- `@trigger.dev/build@4.0.0-v4-beta.12`
- `@trigger.dev/core@4.0.0-v4-beta.12`
## 4.0.0-v4-beta.11
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.0.0-v4-beta.11`
- `@trigger.dev/build@4.0.0-v4-beta.11`
- `@trigger.dev/core@4.0.0-v4-beta.11`
## 4.0.0-v4-beta.10
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.0.0-v4-beta.10`
- `@trigger.dev/build@4.0.0-v4-beta.10`
- `@trigger.dev/sdk@4.0.0-v4-beta.10`
## 4.0.0-v4-beta.9
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.0.0-v4-beta.9`
- `@trigger.dev/core@4.0.0-v4-beta.9`
- `@trigger.dev/sdk@4.0.0-v4-beta.9`
## 4.0.0-v4-beta.8
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.0.0-v4-beta.8`
- `@trigger.dev/build@4.0.0-v4-beta.8`
- `@trigger.dev/sdk@4.0.0-v4-beta.8`
## 4.0.0-v4-beta.7
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.0.0-v4-beta.7`
- `@trigger.dev/build@4.0.0-v4-beta.7`
- `@trigger.dev/sdk@4.0.0-v4-beta.7`
## 4.0.0-v4-beta.6
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.0.0-v4-beta.6`
- `@trigger.dev/sdk@4.0.0-v4-beta.6`
- `@trigger.dev/build@4.0.0-v4-beta.6`
## 4.0.0-v4-beta.5
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.0.0-v4-beta.5`
- `@trigger.dev/build@4.0.0-v4-beta.5`
- `@trigger.dev/core@4.0.0-v4-beta.5`
## 4.0.0-v4-beta.4
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.0.0-v4-beta.4`
- `@trigger.dev/build@4.0.0-v4-beta.4`
- `@trigger.dev/core@4.0.0-v4-beta.4`
## 4.0.0-v4-beta.3
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.0.0-v4-beta.3`
- `@trigger.dev/build@4.0.0-v4-beta.3`
- `@trigger.dev/sdk@4.0.0-v4-beta.3`
## 4.0.0-v4-beta.2
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.0.0-v4-beta.2`
- `@trigger.dev/build@4.0.0-v4-beta.2`
- `@trigger.dev/sdk@4.0.0-v4-beta.2`
## 4.0.0-v4-beta.1
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.0.0-v4-beta.1`
- `@trigger.dev/core@4.0.0-v4-beta.1`
- `@trigger.dev/sdk@4.0.0-v4-beta.1`
## 4.0.0-v4-beta.0
### Major Changes
- Trigger.dev v4 release. Please see our upgrade to v4 docs to view the full changelog: https://trigger.dev/docs/upgrade-to-v4 ([#1869](https://github.com/triggerdotdev/trigger.dev/pull/1869))
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.0.0-v4-beta.0`
- `@trigger.dev/build@4.0.0-v4-beta.0`
- `@trigger.dev/core@4.0.0-v4-beta.0`
## 3.3.17
### Patch Changes
- Introduced a new Python extension to enhance the build process. It now allows users to execute Python scripts with improved support and error handling. ([#1686](https://github.com/triggerdotdev/trigger.dev/pull/1686))
- Updated dependencies:
- `@trigger.dev/sdk@3.3.17`
- `@trigger.dev/core@3.3.17`
- `@trigger.dev/build@3.3.17`