From 15e84097ce675cd72abb3a81c7a1307cba4d1ce6 Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Thu, 17 Sep 2026 19:32:29 +0100 Subject: [PATCH 1/2] chore(sdk,core,react-hooks): the concurrency changesets release as minor The task concurrency option, named limits, the concurrencyLimits namespace and the chat session concurrency options are new features, so the release is a minor, not a patch. --- .changeset/chat-session-concurrency.md | 4 ++-- .changeset/task-concurrency.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.changeset/chat-session-concurrency.md b/.changeset/chat-session-concurrency.md index 69bee125e2b..4d2f5eca086 100644 --- a/.changeset/chat-session-concurrency.md +++ b/.changeset/chat-session-concurrency.md @@ -1,6 +1,6 @@ --- -"@trigger.dev/sdk": patch -"@trigger.dev/core": patch +"@trigger.dev/sdk": minor +"@trigger.dev/core": minor --- 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. diff --git a/.changeset/task-concurrency.md b/.changeset/task-concurrency.md index d9da5712416..a1ed8bfbe46 100644 --- a/.changeset/task-concurrency.md +++ b/.changeset/task-concurrency.md @@ -1,7 +1,7 @@ --- -"@trigger.dev/sdk": patch -"@trigger.dev/core": patch -"@trigger.dev/react-hooks": patch +"@trigger.dev/sdk": minor +"@trigger.dev/core": minor +"@trigger.dev/react-hooks": minor --- 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. From 33ed0ea0abab812538a27167d5879bdc517ab050 Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Thu, 17 Sep 2026 20:34:55 +0100 Subject: [PATCH 2/2] chore(webapp,sdk): format the concurrency route and session action tests --- .../route.tsx | 4 ++-- packages/trigger-sdk/src/v3/createStartSessionAction.test.ts | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.concurrency/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.concurrency/route.tsx index 8dd5030acdd..cc54f628910 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.concurrency/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.concurrency/route.tsx @@ -2233,8 +2233,8 @@ const limitTooltip = ( How many runs can execute at once.{" "} - 1 per key (3) means 1 run per - concurrency key, but at most 3 runs across all keys.{" "} + 1 per key (3) means 1 run per concurrency + key, but at most 3 runs across all keys.{" "} 2 total caps every run of the queue, keyed or not. Set using the concurrency{" "} option in your code. diff --git a/packages/trigger-sdk/src/v3/createStartSessionAction.test.ts b/packages/trigger-sdk/src/v3/createStartSessionAction.test.ts index 9007ba3bca1..fd36969fb88 100644 --- a/packages/trigger-sdk/src/v3/createStartSessionAction.test.ts +++ b/packages/trigger-sdk/src/v3/createStartSessionAction.test.ts @@ -217,9 +217,7 @@ describe("chat.createStartSessionAction — runtime", () => { const emptyDefault = chat.createStartSessionAction("fake-chat", { triggerConfig: { concurrency: "" as unknown as string[] }, }); - await expect(emptyDefault({ chatId: "chat-empty-limit" })).rejects.toThrow( - /non-empty strings/ - ); + await expect(emptyDefault({ chatId: "chat-empty-limit" })).rejects.toThrow(/non-empty strings/); const emptyPerCall = chat.createStartSessionAction("fake-chat"); await expect(