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. 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(