Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions .changeset/chat-session-concurrency.md

This file was deleted.

13 changes: 0 additions & 13 deletions .changeset/chilly-plums-pause.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/deprecate-queue-concurrency-mutations.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/empty-dev-env-vars.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/quiet-chat-stream-retries.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/steering-history-order.md

This file was deleted.

25 changes: 0 additions & 25 deletions .changeset/task-concurrency.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/webhook-artifact-response-contract.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/concurrency-allocation-hardening.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/envvar-empty-value.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/preview-branch-auto-archive.md

This file was deleted.

5 changes: 0 additions & 5 deletions .server-changes/session-transcript-inspector.md

This file was deleted.

4 changes: 2 additions & 2 deletions hosting/k8s/helm/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ apiVersion: v2
name: trigger
description: The official Trigger.dev Helm chart
type: application
version: 4.6.3
appVersion: v4.6.3
version: 4.7.0
appVersion: v4.7.0
home: https://trigger.dev
sources:
- https://github.com/triggerdotdev/trigger.dev
Expand Down
7 changes: 7 additions & 0 deletions packages/build/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# @trigger.dev/build

## 4.7.0

### Patch Changes

- Updated dependencies:
- `@trigger.dev/core@4.7.0`

## 4.6.3

### Patch Changes
Expand Down
4 changes: 2 additions & 2 deletions packages/build/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/build",
"version": "4.6.3",
"version": "4.7.0",
"description": "trigger.dev build extensions",
"license": "MIT",
"publishConfig": {
Expand Down Expand Up @@ -82,7 +82,7 @@
},
"dependencies": {
"@prisma/config": "^6.10.0",
"@trigger.dev/core": "workspace:4.6.3",
"@trigger.dev/core": "workspace:4.7.0",
"mlly": "^1.7.1",
"pkg-types": "^1.1.3",
"tinyglobby": "^0.2.2",
Expand Down
10 changes: 10 additions & 0 deletions packages/cli-v3/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# trigger.dev

## 4.7.0

### Patch Changes

- Fix stale and empty project environment values in `trigger dev`, and support empty values in `syncEnvVars()`. ([`f384e8334`](https://github.com/triggerdotdev/trigger.dev/commit/f384e8334a8eca3266ecb33e5fae7d1fbf148d59))
- Updated dependencies:
- `@trigger.dev/core@4.7.0`
- `@trigger.dev/build@4.7.0`
- `@trigger.dev/schema-to-json@4.7.0`

## 4.6.3

### Patch Changes
Expand Down
8 changes: 4 additions & 4 deletions packages/cli-v3/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "trigger.dev",
"version": "4.6.3",
"version": "4.7.0",
"description": "A Command-Line Interface for Trigger.dev projects",
"type": "module",
"license": "MIT",
Expand Down Expand Up @@ -83,9 +83,9 @@
"@opentelemetry/api-logs": "0.219.0",
"@opentelemetry/instrumentation": "0.219.0",
"@s2-dev/streamstore": "^0.25.0",
"@trigger.dev/build": "workspace:4.6.3",
"@trigger.dev/core": "workspace:4.6.3",
"@trigger.dev/schema-to-json": "workspace:4.6.3",
"@trigger.dev/build": "workspace:4.7.0",
"@trigger.dev/core": "workspace:4.7.0",
"@trigger.dev/schema-to-json": "workspace:4.7.0",
"ansi-escapes": "^7.0.0",
"braces": "^3.0.3",
"c12": "^1.11.1",
Expand Down
47 changes: 47 additions & 0 deletions packages/core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,52 @@
# internal-platform

## 4.7.0

### Minor Changes

- Chat agents can now scope concurrency per session. Pass `concurrencyKey` (for example, your chat ID or tenant ID) and trigger-time named limits via `triggerConfig.concurrency` when starting a chat session, from `chat.createStartSessionAction`, the `AgentChat` client, or a handover. Keys are never defaulted, so a session without one shares the task's keyless pool. ([`ea9758117`](https://github.com/triggerdotdev/trigger.dev/commit/ea9758117bc4abb3e2d09deeab36d5c113c8496c))

```ts
const start = chat.createStartSessionAction("support-chat", {
triggerConfig: { concurrencyKey: user.id },
});
```

- Concurrency limits can now be paused and resumed, just like queues: `concurrencyLimits.pause(name)` stops every run holding the limit from being dequeued while keeping its configured bounds, and `concurrencyLimits.resume(name)` starts them again. ([`fa94febb6`](https://github.com/triggerdotdev/trigger.dev/commit/fa94febb6ee1f8ebd288698535b6b7ccaf3aa038))

```ts
import { concurrencyLimits } from "@trigger.dev/sdk";

await concurrencyLimits.pause("openai");
await concurrencyLimits.resume("openai");
```

- Control a task's concurrency with the new `concurrency` option, and share limits across tasks with named concurrency limits. An inline shape caps the task itself; `concurrencyLimit()` declares a limit any task can hold (up to two named limits per task), and a trigger call can switch a run's named limits with its own `concurrency` option. ([`ea9758117`](https://github.com/triggerdotdev/trigger.dev/commit/ea9758117bc4abb3e2d09deeab36d5c113c8496c))

```ts
import { concurrencyLimit, task } from "@trigger.dev/sdk";

export const openaiLimit = concurrencyLimit({ name: "openai", total: 25 });

export const generateSummary = task({
id: "generate-summary",
concurrency: [{ perKey: 1, total: 5 }, openaiLimit],
run: async (payload) => {},
});
```

`perKey` caps each `concurrencyKey` pool and `total` caps across everything, keys or not. The queue-level `concurrencyLimit` option keeps working unchanged and is deprecated in favor of `concurrency`. Enforcement happens server-side; servers without support accept the option but do not enforce it yet.

Manage limits at runtime with the new `concurrencyLimits` namespace: `list()` and `retrieve(name)` report each limit's bounds plus its live `running` and `queued` counts, `override(name, { perKey, total })` changes only the given bounds (overriding `total` to `0` pauses the limit), and `reset(name)` restores the declared values.

Queue reads (`queues.list()` and `queues.retrieve()`) now report a `version` that discriminates the shape: `V1` queues keep today's fields (their own `concurrencyLimit` and its override state), while `V2` queues (tasks declared with `concurrency`) carry no queue-level concurrency, since their limits are read and overridden through `concurrencyLimits` (a task's inline limit under its derived `task/<task-id>` name). Existing reads keep compiling: a `V2` queue reports `concurrencyLimit` as null and `concurrency` as undefined.

### Patch Changes

- Fix stale and empty project environment values in `trigger dev`, and support empty values in `syncEnvVars()`. ([`f384e8334`](https://github.com/triggerdotdev/trigger.dev/commit/f384e8334a8eca3266ecb33e5fae7d1fbf148d59))
- Chat streams now report `Stream stalled: no records received` after five retries of a connected stream that sends no records. Network failures and browser wakeups retain automatic recovery. Healthy tool calls with no records for about six minutes also reach this silence limit. Watch subscriptions remain unlimited, and caller cancellation still closes cleanly. ([#4949](https://github.com/triggerdotdev/trigger.dev/pull/4949))
- Webhook verifier artifacts can now declare the provider's response contract as data: a handshake `respondStatus`, the status codes returned for accepted deliveries and rejected signatures, and a GET verification flow (`getHandshake`) for providers that confirm a callback URL with a challenge. HMAC verifiers can read the timestamp from a body field, which the Linear provider config uses for its replay window, and the dashboard's test-send re-signs a recorded sample as of now so it passes that window. ([`5f54fb27f`](https://github.com/triggerdotdev/trigger.dev/commit/5f54fb27fe9c42ddca2905a8d9d4ab9e0d086a29))

## 4.6.3

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/core",
"version": "4.6.3",
"version": "4.7.0",
"description": "Core code used across the Trigger.dev SDK and platform",
"license": "MIT",
"publishConfig": {
Expand Down
9 changes: 9 additions & 0 deletions packages/python/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# @trigger.dev/python

## 4.7.0

### Patch Changes

- Updated dependencies:
- `@trigger.dev/sdk@4.7.0`
- `@trigger.dev/core@4.7.0`
- `@trigger.dev/build@4.7.0`

## 4.6.3

### Patch Changes
Expand Down
12 changes: 6 additions & 6 deletions packages/python/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/python",
"version": "4.6.3",
"version": "4.7.0",
"description": "Python runtime and build extension for Trigger.dev",
"license": "MIT",
"publishConfig": {
Expand Down Expand Up @@ -45,7 +45,7 @@
"check-exports": "attw --pack ."
},
"dependencies": {
"@trigger.dev/core": "workspace:4.6.3",
"@trigger.dev/core": "workspace:4.7.0",
"tinyexec": "^0.3.2"
},
"devDependencies": {
Expand All @@ -55,12 +55,12 @@
"typescript": "catalog:",
"tsx": "4.17.0",
"@arethetypeswrong/cli": "^0.18.5",
"@trigger.dev/build": "workspace:4.6.3",
"@trigger.dev/sdk": "workspace:4.6.3"
"@trigger.dev/build": "workspace:4.7.0",
"@trigger.dev/sdk": "workspace:4.7.0"
},
"peerDependencies": {
"@trigger.dev/sdk": "workspace:^4.6.3",
"@trigger.dev/build": "workspace:^4.6.3"
"@trigger.dev/sdk": "workspace:^4.7.0",
"@trigger.dev/build": "workspace:^4.7.0"
},
"engines": {
"node": ">=18.20.0"
Expand Down
29 changes: 29 additions & 0 deletions packages/react-hooks/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,34 @@
# @trigger.dev/react-hooks

## 4.7.0

### Minor Changes

- Control a task's concurrency with the new `concurrency` option, and share limits across tasks with named concurrency limits. An inline shape caps the task itself; `concurrencyLimit()` declares a limit any task can hold (up to two named limits per task), and a trigger call can switch a run's named limits with its own `concurrency` option. ([`ea9758117`](https://github.com/triggerdotdev/trigger.dev/commit/ea9758117bc4abb3e2d09deeab36d5c113c8496c))

```ts
import { concurrencyLimit, task } from "@trigger.dev/sdk";

export const openaiLimit = concurrencyLimit({ name: "openai", total: 25 });

export const generateSummary = task({
id: "generate-summary",
concurrency: [{ perKey: 1, total: 5 }, openaiLimit],
run: async (payload) => {},
});
```

`perKey` caps each `concurrencyKey` pool and `total` caps across everything, keys or not. The queue-level `concurrencyLimit` option keeps working unchanged and is deprecated in favor of `concurrency`. Enforcement happens server-side; servers without support accept the option but do not enforce it yet.

Manage limits at runtime with the new `concurrencyLimits` namespace: `list()` and `retrieve(name)` report each limit's bounds plus its live `running` and `queued` counts, `override(name, { perKey, total })` changes only the given bounds (overriding `total` to `0` pauses the limit), and `reset(name)` restores the declared values.

Queue reads (`queues.list()` and `queues.retrieve()`) now report a `version` that discriminates the shape: `V1` queues keep today's fields (their own `concurrencyLimit` and its override state), while `V2` queues (tasks declared with `concurrency`) carry no queue-level concurrency, since their limits are read and overridden through `concurrencyLimits` (a task's inline limit under its derived `task/<task-id>` name). Existing reads keep compiling: a `V2` queue reports `concurrencyLimit` as null and `concurrency` as undefined.

### Patch Changes

- Updated dependencies:
- `@trigger.dev/core@4.7.0`

## 4.6.3

### Patch Changes
Expand Down
4 changes: 2 additions & 2 deletions packages/react-hooks/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/react-hooks",
"version": "4.6.3",
"version": "4.7.0",
"description": "trigger.dev react hooks",
"license": "MIT",
"publishConfig": {
Expand Down Expand Up @@ -37,7 +37,7 @@
"check-exports": "attw --pack ."
},
"dependencies": {
"@trigger.dev/core": "workspace:^4.6.3",
"@trigger.dev/core": "workspace:^4.7.0",
"swr": "^2.2.5"
},
"devDependencies": {
Expand Down
7 changes: 7 additions & 0 deletions packages/redis-worker/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# @trigger.dev/redis-worker

## 4.7.0

### Patch Changes

- Updated dependencies:
- `@trigger.dev/core@4.7.0`

## 4.6.3

### Patch Changes
Expand Down
4 changes: 2 additions & 2 deletions packages/redis-worker/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/redis-worker",
"version": "4.6.3",
"version": "4.7.0",
"description": "Redis worker for trigger.dev",
"license": "MIT",
"publishConfig": {
Expand All @@ -23,7 +23,7 @@
"test": "vitest --sequence.concurrent=false --no-file-parallelism"
},
"dependencies": {
"@trigger.dev/core": "workspace:4.6.3",
"@trigger.dev/core": "workspace:4.7.0",
"nanoid": "^5.1.16",
"p-limit": "^6.2.0",
"seedrandom": "^3.0.5",
Expand Down
7 changes: 7 additions & 0 deletions packages/rsc/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# @trigger.dev/rsc

## 4.7.0

### Patch Changes

- Updated dependencies:
- `@trigger.dev/core@4.7.0`

## 4.6.3

### Patch Changes
Expand Down
Loading