Skip to content

chore: release v4.5.0-rc.4#3788

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main
Open

chore: release v4.5.0-rc.4#3788
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Jun 1, 2026

Summary

1 new feature, 5 improvements.

Highlights

  • Mollifier mutateSnapshot now enforces a tag cap: an append_tags patch carrying maxTags returns "limit_exceeded" (writing nothing) when the deduped tag count would exceed the limit, so a buffered run can't accumulate more tags via the tags API than the trigger validator allows at creation. (#3756)

Improvements

  • Mollifier buffer extensions: idempotency dedup, an atomic mutateSnapshot API, metadata CAS, claim primitives, and a MollifierSnapshot type. The buffer's Redis client now reconnects with jittered backoff so a fleet of clients doesn't stampede Redis in lockstep after a blip. (#3752)
  • Add onTerminalFailure callback to MollifierDrainerOptions so the customer's run lands a SYSTEM_FAILURE PG row even when the drainer exhausts maxAttempts on a retryable PG error. Previously, retryable-error exhaustion called buffer.fail() directly, which atomically marks FAILED + DELs the entry hash with no PG write — silent data loss when PG was unreachable across the full retry budget. The callback fires before buffer.fail() on any terminal path (cause: "non-retryable" or "max-attempts-exhausted"); throwing a retryable error from the callback causes the drainer to requeue rather than fail. (#3754)
  • Bump @s2-dev/streamstore to 0.22.10 to fix a TASK_RUN_UNCAUGHT_EXCEPTION ("Invalid state: Unable to enqueue") when a chat.agent turn is aborted mid-stream. (#3792)
  • Coerce numeric concurrencyKey values to string at the API boundary across tasks.trigger, tasks.batchTrigger, and the Phase-2 streaming batch endpoint. (#3789)
  • Add a tools option to chat.agent. Declaring your tools here threads them into the SDK's internal convertToModelMessages, so each tool's toModelOutput is re-applied when prior-turn history is re-converted. (#3790)
Raw changeset output

⚠️⚠️⚠️⚠️⚠️⚠️

main is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on main.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

@trigger.dev/redis-worker@4.5.0-rc.4

Minor Changes

  • Mollifier buffer extensions: idempotency dedup, an atomic mutateSnapshot API, metadata CAS, claim primitives, and a MollifierSnapshot type. The buffer's Redis client now reconnects with jittered backoff so a fleet of clients doesn't stampede Redis in lockstep after a blip. (#3752)
  • Add onTerminalFailure callback to MollifierDrainerOptions so the customer's run lands a SYSTEM_FAILURE PG row even when the drainer exhausts maxAttempts on a retryable PG error. Previously, retryable-error exhaustion called buffer.fail() directly, which atomically marks FAILED + DELs the entry hash with no PG write — silent data loss when PG was unreachable across the full retry budget. The callback fires before buffer.fail() on any terminal path (cause: "non-retryable" or "max-attempts-exhausted"); throwing a retryable error from the callback causes the drainer to requeue rather than fail. (#3754)

Patch Changes

  • Pipeline the per-entry HGETALL fetches in MollifierBuffer.listEntriesForEnv. The previous serial implementation issued one Redis round-trip per runId returned by LRANGE, which dominated stale-sweep wall-time at any meaningful backlog (at the sweep's default maxCount=1000, this is ~1000 RTTs per env per pass). Behaviour is unchanged — entries are still skipped when the entry hash has been torn down by a concurrent drainer ack/fail between the LRANGE and the HGETALL. (#3752)
  • Mollifier mutateSnapshot now enforces a tag cap: an append_tags patch carrying maxTags returns "limit_exceeded" (writing nothing) when the deduped tag count would exceed the limit, so a buffered run can't accumulate more tags via the tags API than the trigger validator allows at creation. (#3756)
  • Updated dependencies:
    • @trigger.dev/core@4.5.0-rc.4

@trigger.dev/build@4.5.0-rc.4

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.5.0-rc.4

trigger.dev@4.5.0-rc.4

Patch Changes

  • Bump @s2-dev/streamstore to 0.22.10 to fix a TASK_RUN_UNCAUGHT_EXCEPTION ("Invalid state: Unable to enqueue") when a chat.agent turn is aborted mid-stream. (#3792)
  • Updated dependencies:
    • @trigger.dev/core@4.5.0-rc.4
    • @trigger.dev/build@4.5.0-rc.4
    • @trigger.dev/schema-to-json@4.5.0-rc.4

@trigger.dev/core@4.5.0-rc.4

Patch Changes

  • Coerce numeric concurrencyKey values to string at the API boundary across tasks.trigger, tasks.batchTrigger, and the Phase-2 streaming batch endpoint. (#3789)
  • Bump @s2-dev/streamstore to 0.22.10 to fix a TASK_RUN_UNCAUGHT_EXCEPTION ("Invalid state: Unable to enqueue") when a chat.agent turn is aborted mid-stream. (#3792)

@trigger.dev/plugins@4.5.0-rc.4

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.5.0-rc.4

@trigger.dev/python@4.5.0-rc.4

Patch Changes

  • Updated dependencies:
    • @trigger.dev/sdk@4.5.0-rc.4
    • @trigger.dev/core@4.5.0-rc.4
    • @trigger.dev/build@4.5.0-rc.4

@trigger.dev/react-hooks@4.5.0-rc.4

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.5.0-rc.4

@trigger.dev/rsc@4.5.0-rc.4

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.5.0-rc.4

@trigger.dev/schema-to-json@4.5.0-rc.4

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.5.0-rc.4

@trigger.dev/sdk@4.5.0-rc.4

Patch Changes

  • Add a tools option to chat.agent. Declaring your tools here threads them into the SDK's internal convertToModelMessages, so each tool's toModelOutput is re-applied when prior-turn history is re-converted. (#3790)

    chat.agent({
      tools: { readFile, search },
      run: async ({ messages, tools, signal }) =>
        streamText({ model, messages, tools, abortSignal: signal }),
    });

    Also exports InferChatUIMessageFromTools<typeof tools> to derive the chat UIMessage type (typed tool parts) directly from a tool set.

  • Updated dependencies:

    • @trigger.dev/core@4.5.0-rc.4

@github-actions github-actions Bot changed the title chore: release (rc) chore: release v4.5.0-rc.4 Jun 1, 2026
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@github-actions github-actions Bot changed the title chore: release v4.5.0-rc.4 chore: release (rc) Jun 1, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 0abaeba to 9a9dab9 Compare June 1, 2026 11:02
@github-actions github-actions Bot changed the title chore: release (rc) chore: release v4.5.0-rc.4 Jun 1, 2026
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

Open in Devin Review

Comment thread .server-changes/mollifier-trigger.md Outdated
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot Jun 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚩 Server-change files deleted without corresponding changeset coverage

Four .server-changes/ files were deleted (mollifier-drainer-replay.md, mollifier-mutations.md, mollifier-reads.md, mollifier-trigger.md). Per CONTRIBUTING.md, these files document server-only changes that don't have changeset coverage. The new changesets added to pre.json (mollifier-buffer-extensions, mollifier-buffer-pipeline-list-entries, mollifier-drainer-terminal-failure-callback, mollifier-tag-cap) don't appear to cover the same features described in the deleted files (drainer replay, mutations, reads, trigger-time decisions). This may be intentional if those features shipped in a prior rc and the server-change notes are no longer needed, but it's worth confirming that the release notes for those features aren't being lost.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@github-actions github-actions Bot changed the title chore: release v4.5.0-rc.4 chore: release (rc) Jun 1, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 9a9dab9 to 4120d79 Compare June 1, 2026 11:36
@github-actions github-actions Bot changed the title chore: release (rc) chore: release v4.5.0-rc.4 Jun 1, 2026
@github-actions github-actions Bot changed the title chore: release v4.5.0-rc.4 chore: release (rc) Jun 1, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 4120d79 to 2f69ccf Compare June 1, 2026 12:21
@github-actions github-actions Bot changed the title chore: release (rc) chore: release v4.5.0-rc.4 Jun 1, 2026
@github-actions github-actions Bot changed the title chore: release v4.5.0-rc.4 chore: release (rc) Jun 1, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 2f69ccf to 8958b55 Compare June 1, 2026 13:55
@github-actions github-actions Bot changed the title chore: release (rc) chore: release v4.5.0-rc.4 Jun 1, 2026
@github-actions github-actions Bot changed the title chore: release v4.5.0-rc.4 chore: release (rc) Jun 1, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 8958b55 to 5739fc1 Compare June 1, 2026 15:25
@github-actions github-actions Bot changed the title chore: release (rc) chore: release v4.5.0-rc.4 Jun 1, 2026
@github-actions github-actions Bot changed the title chore: release v4.5.0-rc.4 chore: release (rc) Jun 1, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 5739fc1 to 79e3a69 Compare June 1, 2026 15:52
@github-actions github-actions Bot changed the title chore: release (rc) chore: release v4.5.0-rc.4 Jun 1, 2026
@github-actions github-actions Bot changed the title chore: release v4.5.0-rc.4 chore: release (rc) Jun 1, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 79e3a69 to 0aa3367 Compare June 1, 2026 16:28
@github-actions github-actions Bot changed the title chore: release (rc) chore: release v4.5.0-rc.4 Jun 1, 2026
@github-actions github-actions Bot changed the title chore: release v4.5.0-rc.4 chore: release (rc) Jun 1, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 0aa3367 to af61dce Compare June 1, 2026 17:15
@github-actions github-actions Bot changed the title chore: release (rc) chore: release v4.5.0-rc.4 Jun 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants