chore: release v4.5.15 (#4831)

## Summary
3 improvements.

## Improvements
- Stop shipping compiled test files in the published packages. The
`*.test.ts` sources were being emitted into `dist`, adding dead weight
to every install and leaving modules that `require("vitest")` (not a
dependency) inside the tarball, which tripped tooling that walks every
file in a package.
([#4833](https://github.com/triggerdotdev/trigger.dev/pull/4833))
- Named side channels on a Session: durable, two-way realtime streams
that outlive a single run and are shared across runs. Open a channel
with `sessions.open(id).channel(name)` (or `chat.channel(name)` inside a
`chat.agent`) to get an `.in`/`.out` pair addressed by name rather than
the reserved default pair. Writing a side channel's `.in` does not wake
or trigger a run, so a channel can carry out-of-band data (a stream of
frames, a control signal) that many clients read while the agent
produces it.
([#4815](https://github.com/triggerdotdev/trigger.dev/pull/4815))
  
  ```ts
// Inside a chat.agent: stream frames on a named channel, wakes nothing
  const frames = chat.channel("screenshots");
  await frames.out.append(frame);
  frames.in.on((control) => {
  /* client control, no suspend */
  });
  ```
  
Declare channel record types once with `sessions.defineChannel(...)` and
infer them on both the producer and the consumer, including
`useSessionStreamChannel` in React. Channels get a default retention
that keeps them bounded, overridable per channel.
- Session `triggerConfig.tags` now accepts up to 10 tags, matching the
run tag limit. Previously it was capped at 5, which for `chat.agent`
left room for only 4 of your own tags after the automatic
`chat:{chatId}` tag.
([#4832](https://github.com/triggerdotdev/trigger.dev/pull/4832))

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

# Releases
## @trigger.dev/build@4.5.15

### Patch Changes

- Stop shipping compiled test files in the published packages. The
`*.test.ts` sources were being emitted into `dist`, adding dead weight
to every install and leaving modules that `require("vitest")` (not a
dependency) inside the tarball, which tripped tooling that walks every
file in a package.
([#4833](https://github.com/triggerdotdev/trigger.dev/pull/4833))
- Updated dependencies:
  - `@trigger.dev/core@4.5.15`
## trigger.dev@4.5.15

### Patch Changes

- Updated dependencies:
  - `@trigger.dev/core@4.5.15`
  - `@trigger.dev/build@4.5.15`
  - `@trigger.dev/schema-to-json@4.5.15`
## @trigger.dev/core@4.5.15

### Patch Changes

- Stop shipping compiled test files in the published packages. The
`*.test.ts` sources were being emitted into `dist`, adding dead weight
to every install and leaving modules that `require("vitest")` (not a
dependency) inside the tarball, which tripped tooling that walks every
file in a package.
([#4833](https://github.com/triggerdotdev/trigger.dev/pull/4833))
- Named side channels on a Session: durable, two-way realtime streams
that outlive a single run and are shared across runs. Open a channel
with `sessions.open(id).channel(name)` (or `chat.channel(name)` inside a
`chat.agent`) to get an `.in`/`.out` pair addressed by name rather than
the reserved default pair. Writing a side channel's `.in` does not wake
or trigger a run, so a channel can carry out-of-band data (a stream of
frames, a control signal) that many clients read while the agent
produces it.
([#4815](https://github.com/triggerdotdev/trigger.dev/pull/4815))

  ```ts
// Inside a chat.agent: stream frames on a named channel, wakes nothing
  const frames = chat.channel("screenshots");
  await frames.out.append(frame);
  frames.in.on((control) => {
    /* client control, no suspend */
  });
  ```

Declare channel record types once with `sessions.defineChannel(...)` and
infer them on both the producer and the consumer, including
`useSessionStreamChannel` in React. Channels get a default retention
that keeps them bounded, overridable per channel.

- Session `triggerConfig.tags` now accepts up to 10 tags, matching the
run tag limit. Previously it was capped at 5, which for `chat.agent`
left room for only 4 of your own tags after the automatic
`chat:{chatId}` tag.
([#4832](https://github.com/triggerdotdev/trigger.dev/pull/4832))
## @trigger.dev/python@4.5.15

### Patch Changes

- Updated dependencies:
  - `@trigger.dev/sdk@4.5.15`
  - `@trigger.dev/core@4.5.15`
  - `@trigger.dev/build@4.5.15`
## @trigger.dev/react-hooks@4.5.15

### Patch Changes

- Named side channels on a Session: durable, two-way realtime streams
that outlive a single run and are shared across runs. Open a channel
with `sessions.open(id).channel(name)` (or `chat.channel(name)` inside a
`chat.agent`) to get an `.in`/`.out` pair addressed by name rather than
the reserved default pair. Writing a side channel's `.in` does not wake
or trigger a run, so a channel can carry out-of-band data (a stream of
frames, a control signal) that many clients read while the agent
produces it.
([#4815](https://github.com/triggerdotdev/trigger.dev/pull/4815))

  ```ts
// Inside a chat.agent: stream frames on a named channel, wakes nothing
  const frames = chat.channel("screenshots");
  await frames.out.append(frame);
  frames.in.on((control) => {
    /* client control, no suspend */
  });
  ```

Declare channel record types once with `sessions.defineChannel(...)` and
infer them on both the producer and the consumer, including
`useSessionStreamChannel` in React. Channels get a default retention
that keeps them bounded, overridable per channel.

- Updated dependencies:
  - `@trigger.dev/core@4.5.15`
## @trigger.dev/redis-worker@4.5.15

### Patch Changes

- Updated dependencies:
  - `@trigger.dev/core@4.5.15`
## @trigger.dev/rsc@4.5.15

### Patch Changes

- Updated dependencies:
  - `@trigger.dev/core@4.5.15`
## @trigger.dev/schema-to-json@4.5.15

### Patch Changes

- Updated dependencies:
  - `@trigger.dev/core@4.5.15`
## @trigger.dev/sdk@4.5.15

### Patch Changes

- Stop shipping compiled test files in the published packages. The
`*.test.ts` sources were being emitted into `dist`, adding dead weight
to every install and leaving modules that `require("vitest")` (not a
dependency) inside the tarball, which tripped tooling that walks every
file in a package.
([#4833](https://github.com/triggerdotdev/trigger.dev/pull/4833))
- Named side channels on a Session: durable, two-way realtime streams
that outlive a single run and are shared across runs. Open a channel
with `sessions.open(id).channel(name)` (or `chat.channel(name)` inside a
`chat.agent`) to get an `.in`/`.out` pair addressed by name rather than
the reserved default pair. Writing a side channel's `.in` does not wake
or trigger a run, so a channel can carry out-of-band data (a stream of
frames, a control signal) that many clients read while the agent
produces it.
([#4815](https://github.com/triggerdotdev/trigger.dev/pull/4815))

  ```ts
// Inside a chat.agent: stream frames on a named channel, wakes nothing
  const frames = chat.channel("screenshots");
  await frames.out.append(frame);
  frames.in.on((control) => {
    /* client control, no suspend */
  });
  ```

Declare channel record types once with `sessions.defineChannel(...)` and
infer them on both the producer and the consumer, including
`useSessionStreamChannel` in React. Channels get a default retention
that keeps them bounded, overridable per channel.

- Session `triggerConfig.tags` now accepts up to 10 tags, matching the
run tag limit. Previously it was capped at 5, which for `chat.agent`
left room for only 4 of your own tags after the automatic
`chat:{chatId}` tag.
([#4832](https://github.com/triggerdotdev/trigger.dev/pull/4832))
- Updated dependencies:
  - `@trigger.dev/core@4.5.15`

</details>

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
github-actions[bot]
2026-08-31 15:01:11 +02:00
committed by GitHub
parent d43dfba73a
commit 52848d8266
23 changed files with 144 additions and 64 deletions
-7
View File
@@ -1,7 +0,0 @@
---
"@trigger.dev/sdk": patch
"@trigger.dev/core": patch
"@trigger.dev/build": patch
---
Stop shipping compiled test files in the published packages. The `*.test.ts` sources were being emitted into `dist`, adding dead weight to every install and leaving modules that `require("vitest")` (not a dependency) inside the tarball, which tripped tooling that walks every file in a package.
-16
View File
@@ -1,16 +0,0 @@
---
"@trigger.dev/react-hooks": patch
"@trigger.dev/core": patch
"@trigger.dev/sdk": patch
---
Named side channels on a Session: durable, two-way realtime streams that outlive a single run and are shared across runs. Open a channel with `sessions.open(id).channel(name)` (or `chat.channel(name)` inside a `chat.agent`) to get an `.in`/`.out` pair addressed by name rather than the reserved default pair. Writing a side channel's `.in` does not wake or trigger a run, so a channel can carry out-of-band data (a stream of frames, a control signal) that many clients read while the agent produces it.
```ts
// Inside a chat.agent: stream frames on a named channel, wakes nothing
const frames = chat.channel("screenshots");
await frames.out.append(frame);
frames.in.on((control) => { /* client control, no suspend */ });
```
Declare channel record types once with `sessions.defineChannel(...)` and infer them on both the producer and the consumer, including `useSessionStreamChannel` in React. Channels get a default retention that keeps them bounded, overridable per channel.
-6
View File
@@ -1,6 +0,0 @@
---
"@trigger.dev/core": patch
"@trigger.dev/sdk": patch
---
Session `triggerConfig.tags` now accepts up to 10 tags, matching the run tag limit. Previously it was capped at 5, which for `chat.agent` left room for only 4 of your own tags after the automatic `chat:{chatId}` tag.
+2 -2
View File
@@ -2,8 +2,8 @@ apiVersion: v2
name: trigger
description: The official Trigger.dev Helm chart
type: application
version: 4.5.14
appVersion: v4.5.14
version: 4.5.15
appVersion: v4.5.15
home: https://trigger.dev
sources:
- https://github.com/triggerdotdev/trigger.dev
+8
View File
@@ -1,5 +1,13 @@
# @trigger.dev/build
## 4.5.15
### Patch Changes
- Stop shipping compiled test files in the published packages. The `*.test.ts` sources were being emitted into `dist`, adding dead weight to every install and leaving modules that `require("vitest")` (not a dependency) inside the tarball, which tripped tooling that walks every file in a package. ([#4833](https://github.com/triggerdotdev/trigger.dev/pull/4833))
- Updated dependencies:
- `@trigger.dev/core@4.5.15`
## 4.5.14
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/build",
"version": "4.5.14",
"version": "4.5.15",
"description": "trigger.dev build extensions",
"license": "MIT",
"publishConfig": {
@@ -82,7 +82,7 @@
},
"dependencies": {
"@prisma/config": "^6.10.0",
"@trigger.dev/core": "workspace:4.5.14",
"@trigger.dev/core": "workspace:4.5.15",
"mlly": "^1.7.1",
"pkg-types": "^1.1.3",
"tinyglobby": "^0.2.2",
+9
View File
@@ -1,5 +1,14 @@
# trigger.dev
## 4.5.15
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.5.15`
- `@trigger.dev/build@4.5.15`
- `@trigger.dev/schema-to-json@4.5.15`
## 4.5.14
### Patch Changes
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "trigger.dev",
"version": "4.5.14",
"version": "4.5.15",
"description": "A Command-Line Interface for Trigger.dev projects",
"type": "module",
"license": "MIT",
@@ -83,9 +83,9 @@
"@opentelemetry/api-logs": "0.218.0",
"@opentelemetry/instrumentation": "0.218.0",
"@s2-dev/streamstore": "^0.25.0",
"@trigger.dev/build": "workspace:4.5.14",
"@trigger.dev/core": "workspace:4.5.14",
"@trigger.dev/schema-to-json": "workspace:4.5.14",
"@trigger.dev/build": "workspace:4.5.15",
"@trigger.dev/core": "workspace:4.5.15",
"@trigger.dev/schema-to-json": "workspace:4.5.15",
"ansi-escapes": "^7.0.0",
"braces": "^3.0.3",
"c12": "^1.11.1",
+20
View File
@@ -1,5 +1,25 @@
# internal-platform
## 4.5.15
### Patch Changes
- Stop shipping compiled test files in the published packages. The `*.test.ts` sources were being emitted into `dist`, adding dead weight to every install and leaving modules that `require("vitest")` (not a dependency) inside the tarball, which tripped tooling that walks every file in a package. ([#4833](https://github.com/triggerdotdev/trigger.dev/pull/4833))
- Named side channels on a Session: durable, two-way realtime streams that outlive a single run and are shared across runs. Open a channel with `sessions.open(id).channel(name)` (or `chat.channel(name)` inside a `chat.agent`) to get an `.in`/`.out` pair addressed by name rather than the reserved default pair. Writing a side channel's `.in` does not wake or trigger a run, so a channel can carry out-of-band data (a stream of frames, a control signal) that many clients read while the agent produces it. ([#4815](https://github.com/triggerdotdev/trigger.dev/pull/4815))
```ts
// Inside a chat.agent: stream frames on a named channel, wakes nothing
const frames = chat.channel("screenshots");
await frames.out.append(frame);
frames.in.on((control) => {
/* client control, no suspend */
});
```
Declare channel record types once with `sessions.defineChannel(...)` and infer them on both the producer and the consumer, including `useSessionStreamChannel` in React. Channels get a default retention that keeps them bounded, overridable per channel.
- Session `triggerConfig.tags` now accepts up to 10 tags, matching the run tag limit. Previously it was capped at 5, which for `chat.agent` left room for only 4 of your own tags after the automatic `chat:{chatId}` tag. ([#4832](https://github.com/triggerdotdev/trigger.dev/pull/4832))
## 4.5.14
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/core",
"version": "4.5.14",
"version": "4.5.15",
"description": "Core code used across the Trigger.dev SDK and platform",
"license": "MIT",
"publishConfig": {
+9
View File
@@ -1,5 +1,14 @@
# @trigger.dev/python
## 4.5.15
### Patch Changes
- Updated dependencies:
- `@trigger.dev/sdk@4.5.15`
- `@trigger.dev/core@4.5.15`
- `@trigger.dev/build@4.5.15`
## 4.5.14
### Patch Changes
+6 -6
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/python",
"version": "4.5.14",
"version": "4.5.15",
"description": "Python runtime and build extension for Trigger.dev",
"license": "MIT",
"publishConfig": {
@@ -45,7 +45,7 @@
"check-exports": "attw --pack ."
},
"dependencies": {
"@trigger.dev/core": "workspace:4.5.14",
"@trigger.dev/core": "workspace:4.5.15",
"tinyexec": "^0.3.2"
},
"devDependencies": {
@@ -55,12 +55,12 @@
"typescript": "catalog:",
"tsx": "4.17.0",
"@arethetypeswrong/cli": "^0.18.5",
"@trigger.dev/build": "workspace:4.5.14",
"@trigger.dev/sdk": "workspace:4.5.14"
"@trigger.dev/build": "workspace:4.5.15",
"@trigger.dev/sdk": "workspace:4.5.15"
},
"peerDependencies": {
"@trigger.dev/sdk": "workspace:^4.5.14",
"@trigger.dev/build": "workspace:^4.5.14"
"@trigger.dev/sdk": "workspace:^4.5.15",
"@trigger.dev/build": "workspace:^4.5.15"
},
"engines": {
"node": ">=18.20.0"
+20
View File
@@ -1,5 +1,25 @@
# @trigger.dev/react-hooks
## 4.5.15
### Patch Changes
- Named side channels on a Session: durable, two-way realtime streams that outlive a single run and are shared across runs. Open a channel with `sessions.open(id).channel(name)` (or `chat.channel(name)` inside a `chat.agent`) to get an `.in`/`.out` pair addressed by name rather than the reserved default pair. Writing a side channel's `.in` does not wake or trigger a run, so a channel can carry out-of-band data (a stream of frames, a control signal) that many clients read while the agent produces it. ([#4815](https://github.com/triggerdotdev/trigger.dev/pull/4815))
```ts
// Inside a chat.agent: stream frames on a named channel, wakes nothing
const frames = chat.channel("screenshots");
await frames.out.append(frame);
frames.in.on((control) => {
/* client control, no suspend */
});
```
Declare channel record types once with `sessions.defineChannel(...)` and infer them on both the producer and the consumer, including `useSessionStreamChannel` in React. Channels get a default retention that keeps them bounded, overridable per channel.
- Updated dependencies:
- `@trigger.dev/core@4.5.15`
## 4.5.14
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/react-hooks",
"version": "4.5.14",
"version": "4.5.15",
"description": "trigger.dev react hooks",
"license": "MIT",
"publishConfig": {
@@ -37,7 +37,7 @@
"check-exports": "attw --pack ."
},
"dependencies": {
"@trigger.dev/core": "workspace:^4.5.14",
"@trigger.dev/core": "workspace:^4.5.15",
"swr": "^2.2.5"
},
"devDependencies": {
+7
View File
@@ -1,5 +1,12 @@
# @trigger.dev/redis-worker
## 4.5.15
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.5.15`
## 4.5.14
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/redis-worker",
"version": "4.5.14",
"version": "4.5.15",
"description": "Redis worker for trigger.dev",
"license": "MIT",
"publishConfig": {
@@ -23,7 +23,7 @@
"test": "vitest --sequence.concurrent=false --no-file-parallelism"
},
"dependencies": {
"@trigger.dev/core": "workspace:4.5.14",
"@trigger.dev/core": "workspace:4.5.15",
"nanoid": "^5.1.16",
"p-limit": "^6.2.0",
"seedrandom": "^3.0.5",
+7
View File
@@ -1,5 +1,12 @@
# @trigger.dev/rsc
## 4.5.15
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.5.15`
## 4.5.14
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/rsc",
"version": "4.5.14",
"version": "4.5.15",
"description": "trigger.dev rsc",
"license": "MIT",
"publishConfig": {
@@ -37,7 +37,7 @@
"check-exports": "attw --pack ."
},
"dependencies": {
"@trigger.dev/core": "workspace:^4.5.14",
"@trigger.dev/core": "workspace:^4.5.15",
"mlly": "^1.7.1",
"react": "19.0.0-rc.1",
"react-dom": "19.0.0-rc.1"
+7
View File
@@ -1,5 +1,12 @@
# @trigger.dev/schema-to-json
## 4.5.15
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.5.15`
## 4.5.14
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/schema-to-json",
"version": "4.5.14",
"version": "4.5.15",
"description": "Convert various schema validation libraries to JSON Schema",
"license": "MIT",
"publishConfig": {
+22
View File
@@ -1,5 +1,27 @@
# @trigger.dev/sdk
## 4.5.15
### Patch Changes
- Stop shipping compiled test files in the published packages. The `*.test.ts` sources were being emitted into `dist`, adding dead weight to every install and leaving modules that `require("vitest")` (not a dependency) inside the tarball, which tripped tooling that walks every file in a package. ([#4833](https://github.com/triggerdotdev/trigger.dev/pull/4833))
- Named side channels on a Session: durable, two-way realtime streams that outlive a single run and are shared across runs. Open a channel with `sessions.open(id).channel(name)` (or `chat.channel(name)` inside a `chat.agent`) to get an `.in`/`.out` pair addressed by name rather than the reserved default pair. Writing a side channel's `.in` does not wake or trigger a run, so a channel can carry out-of-band data (a stream of frames, a control signal) that many clients read while the agent produces it. ([#4815](https://github.com/triggerdotdev/trigger.dev/pull/4815))
```ts
// Inside a chat.agent: stream frames on a named channel, wakes nothing
const frames = chat.channel("screenshots");
await frames.out.append(frame);
frames.in.on((control) => {
/* client control, no suspend */
});
```
Declare channel record types once with `sessions.defineChannel(...)` and infer them on both the producer and the consumer, including `useSessionStreamChannel` in React. Channels get a default retention that keeps them bounded, overridable per channel.
- Session `triggerConfig.tags` now accepts up to 10 tags, matching the run tag limit. Previously it was capped at 5, which for `chat.agent` left room for only 4 of your own tags after the automatic `chat:{chatId}` tag. ([#4832](https://github.com/triggerdotdev/trigger.dev/pull/4832))
- Updated dependencies:
- `@trigger.dev/core@4.5.15`
## 4.5.14
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/sdk",
"version": "4.5.14",
"version": "4.5.15",
"description": "trigger.dev Node.JS SDK",
"license": "MIT",
"publishConfig": {
@@ -80,7 +80,7 @@
"dependencies": {
"@opentelemetry/api": "1.9.1",
"@opentelemetry/semantic-conventions": "1.41.1",
"@trigger.dev/core": "workspace:4.5.14",
"@trigger.dev/core": "workspace:4.5.15",
"uncrypto": "^0.1.3"
},
"devDependencies": {
+11 -11
View File
@@ -1481,7 +1481,7 @@ importers:
specifier: ^6.10.0
version: 6.19.0(magicast@0.3.5)
'@trigger.dev/core':
specifier: workspace:4.5.14
specifier: workspace:4.5.15
version: link:../core
mlly:
specifier: ^1.7.1
@@ -1545,13 +1545,13 @@ importers:
specifier: ^0.25.0
version: 0.25.0(supports-color@10.0.0)
'@trigger.dev/build':
specifier: workspace:4.5.14
specifier: workspace:4.5.15
version: link:../build
'@trigger.dev/core':
specifier: workspace:4.5.14
specifier: workspace:4.5.15
version: link:../core
'@trigger.dev/schema-to-json':
specifier: workspace:4.5.14
specifier: workspace:4.5.15
version: link:../schema-to-json
ansi-escapes:
specifier: ^7.0.0
@@ -1878,7 +1878,7 @@ importers:
packages/python:
dependencies:
'@trigger.dev/core':
specifier: workspace:4.5.14
specifier: workspace:4.5.15
version: link:../core
tinyexec:
specifier: ^0.3.2
@@ -1888,10 +1888,10 @@ importers:
specifier: ^0.18.5
version: 0.18.5
'@trigger.dev/build':
specifier: workspace:4.5.14
specifier: workspace:4.5.15
version: link:../build
'@trigger.dev/sdk':
specifier: workspace:4.5.14
specifier: workspace:4.5.15
version: link:../trigger-sdk
'@types/node':
specifier: 24.13.3
@@ -1912,7 +1912,7 @@ importers:
packages/react-hooks:
dependencies:
'@trigger.dev/core':
specifier: workspace:^4.5.14
specifier: workspace:^4.5.15
version: link:../core
react:
specifier: 18.3.1
@@ -1946,7 +1946,7 @@ importers:
packages/redis-worker:
dependencies:
'@trigger.dev/core':
specifier: workspace:4.5.14
specifier: workspace:4.5.15
version: link:../core
cron-parser:
specifier: ^4.9.0
@@ -1992,7 +1992,7 @@ importers:
packages/rsc:
dependencies:
'@trigger.dev/core':
specifier: workspace:^4.5.14
specifier: workspace:^4.5.15
version: link:../core
mlly:
specifier: ^1.7.1
@@ -2078,7 +2078,7 @@ importers:
specifier: 1.41.1
version: 1.41.1
'@trigger.dev/core':
specifier: workspace:4.5.14
specifier: workspace:4.5.15
version: link:../core
react:
specifier: 18.3.1