# Trigger.dev v4.5.15 — trigger.dev v4.5.15 - Product: Trigger.dev (https://whatsnew.fyi/product/trigger-dev) - Vendor: Trigger.dev - Date: 2026-08-31 - Version: v4.5.15 - Original notes: https://github.com/triggerdotdev/trigger.dev/releases/tag/v4.5.15 - Permalink: https://whatsnew.fyi/product/trigger-dev/releases/v4.5.15 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — Stop shipping compiled test files in the published packages to reduce package size and remove vitest dependency from tarballs - **added** — Named side channels on a Session for durable, two-way realtime streams that outlive a single run and are shared across runs, opened with sessions.open(id).channel(name) or chat.channel(name) - **changed** — Session triggerConfig.tags now accepts up to 10 tags instead of 5 to match the run tag limit #### trigger.dev v4.5.15 ##### Upgrade ```sh npx trigger.dev@latest update # npm pnpm dlx trigger.dev@latest update # pnpm yarn dlx trigger.dev@latest update # yarn bunx trigger.dev@latest update # bun ``` Self-hosted Docker image: [`ghcr.io/triggerdotdev/trigger.dev:v4.5.15`](https://github.com/triggerdotdev/trigger.dev/pkgs/container/trigger.dev/1191282211?tag=v4.5.15) ##### Release notes Read the full release notes: https://trigger.dev/changelog/v4-5-15 ##### What's changed ##### 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)) ##### All packages: v4.5.15 @trigger.dev/build, @trigger.dev/core, @trigger.dev/python, @trigger.dev/react-hooks, @trigger.dev/redis-worker, @trigger.dev/rsc, @trigger.dev/schema-to-json, @trigger.dev/sdk, trigger.dev ##### Contributors Matt Aitken, github-actions[bot], Saadi Myftija, claude[bot], Eric Allam, James Ritchie **Full changelog**: https://github.com/triggerdotdev/trigger.dev/compare/v4.5.14...v4.5.15