Skip to content

chore: release v4.4.5#3406

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

chore: release v4.4.5#3406
github-actions[bot] wants to merge 1 commit intomainfrom
changeset-release/main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Apr 17, 2026

Summary

7 new features, 15 improvements, 11 bug fixes.

Breaking changes

  • Add server-side deprecation gate for deploys from v3 CLI versions (gated by DEPRECATE_V3_CLI_DEPLOYS_ENABLED). v4 CLI deploys are unaffected. (#3415)

Improvements

  • Add isReplay boolean to the run context (ctx.run.isReplay), derived from the existing replayedFromTaskRunFriendlyId database field. Defaults to false for backwards compatibility. (#3454)
  • Add SessionId friendly ID generator and schemas for the new durable Session primitive. Exported from @trigger.dev/core/v3/isomorphic alongside RunId, BatchId, etc. Ships the CreateSessionStreamWaitpoint request/response schemas alongside the main Session CRUD. (#3417)
  • Truncate large error stacks and messages to prevent OOM crashes. Stack traces are capped at 50 frames (keeping top 5 + bottom 45 with an omission notice), individual stack lines at 1024 chars, and error messages at 1000 chars. Applied in parseError, sanitizeError, and OTel span recording. (#3405)

Server changes

These changes affect the self-hosted Docker image and Trigger.dev Cloud:

  • Add a "Back office" tab to /admin and a per-organization detail page at /admin/back-office/orgs/:orgId. The first action available on that page is editing the org's API rate limit: admins can save a tokenBucket override (refill rate, interval, max tokens) and see a plain-English preview of the resulting sustained rate and burst allowance. Writes are audit-logged via the server logger. (#3434)

  • Optional DEPLOY_REGISTRY_ECR_DEFAULT_REPOSITORY_POLICY env var to apply a default repository policy when the webapp creates new ECR repos (#3467)

  • Ship the Errors page to all users, with a polish + bug-fix pass: pinned "No channel" item in the Slack alert channel picker, viewer-timezone alert timestamps via Slack's <!date^> token, Activity sparkline peak tooltip, centered loading spinner and bug-icon empty state on the error detail page, ellipsis on the Configure alerts trigger. (#3477)

  • Regenerating a RuntimeEnvironment API key no longer invalidates the previous key immediately. The old key is recorded in a new RevokedApiKey table with a 24 hour grace window, and findEnvironmentByApiKey falls back to it when the submitted key doesn't match any live environment. The grace window can be ended early (or extended) by updating expiresAt on the row. (#3420)

  • Add the Session primitive — a durable, task-bound, bidirectional I/O channel that outlives a single run and acts as the run manager for chat.agent. Ships the Postgres Session + SessionRun tables, ClickHouse sessions_v1 + replication service, the sessions JWT scope, and the public CRUD + realtime routes (/api/v1/sessions, /realtime/v1/sessions/:session/:io) including end-and-continue for server-orchestrated run handoffs and session-stream waitpoints. (#3417)

  • Add KUBERNETES_POD_DNS_NDOTS_OVERRIDE_ENABLED flag (off by default) that overrides the cluster default and sets dnsConfig.options.ndots on runner pods (defaulting to 2, configurable via KUBERNETES_POD_DNS_NDOTS). Kubernetes defaults pods to ndots: 5, so any name with fewer than 5 dots — including typical external domains like api.example.com — is first walked through every entry in the cluster search list (<ns>.svc.cluster.local, svc.cluster.local, cluster.local) before being tried as-is, turning one resolution into 4+ CoreDNS queries (×2 with A+AAAA). Using a lower ndots value reduces DNS query amplification in the cluster.local zone.

    Note: before enabling, make sure no code path relies on search-list expansion for names with dots ≥ the configured value — those names will hit their as-is form first and could resolve externally before falling back to the cluster search path. (#3441)

  • Vercel integration option to disable auto promotions (#3376)

  • Make it clear in the admin that feature flags are global and should rarely be changed. (#3408)

  • Admin worker groups API: add GET loader and expose more fields on POST. (#3390)

  • Add 60s fresh / 60s stale SWR cache to getEntitlement in platform.v3.server.ts. Eliminates a synchronous billing-service HTTP round trip on every trigger. Reuses the existing platformCache (LRU memory + Redis) pattern already used for limits and usage. Cache key is ${orgId}. Errors return a permissive { hasAccess: true } fallback (existing behavior) and are also cached to prevent thundering-herd on billing outages. (#3388)

  • Show a MicroVM badge next to the region name on the regions page. (#3407)

  • Increase default maximum project count per organization from 10 to 25 (#3409)

  • Merge execution snapshot creation into the dequeue taskRun.update transaction, reducing 2 DB commits to 1 per dequeue operation (#3395)

  • Add per-worker Node.js heap metrics to the OTel meter — nodejs.memory.heap.used, nodejs.memory.heap.total, nodejs.memory.heap.limit, nodejs.memory.external, nodejs.memory.array_buffers, nodejs.memory.rss. Host-metrics only publishes RSS, which overstates V8 heap by the external + native footprint; these give direct heap visibility per cluster worker so NODE_MAX_OLD_SPACE_SIZE can be sized against observed heap peaks rather than RSS. (#3437)

  • Tag Prisma spans with db.datasource: "writer" | "replica" so monitors and trace queries can distinguish the writer pool from the replica pool. Applies to all prisma:engine:* spans (including prisma:engine:connection used by the connection-pool monitors) and the outer prisma:client:operation span. (#3422)

  • Clarify the cross-region intent in the Terraform and AI-prompt helpers on the Add Private Connection page. Both already default supported_regions to ["us-east-1", "eu-central-1"]; added an inline comment / parenthetical so the user understands why both regions are listed (Trigger.dev runs in both, so the service must be consumable from either). (#3465)

  • Add RUN_ENGINE_READ_REPLICA_SNAPSHOTS_SINCE_ENABLED flag (default off) to route the Prisma reads inside RunEngine.getSnapshotsSince through the read-only replica client. Offloads the snapshot polling queries (fired by every running task runner) from the primary. When disabled, behavior is unchanged. (#3423)

  • Stop creating TaskRunTag records and _TaskRunToTaskRunTag join table entries during task triggering. The denormalized runTags string array on TaskRun already stores tag names, making the M2M relation redundant write overhead. (#3369)

  • Replace the expensive DISTINCT query for task filter dropdowns with a dedicated TaskIdentifier registry table backed by Redis. Environments migrate automatically on their next deploy, with a transparent fallback to the legacy query for unmigrated environments. Also fixes duplicate dropdown entries when a task changes trigger source, and adds active/archived grouping for removed tasks. Moves BackgroundWorkerTask reads in the trigger hot path to the read replica. (#3368)

  • Public Access Tokens (PATs) minted before an API key rotation now keep working during the 24h grace window. validatePublicJwtKey falls back to any non-expired RevokedApiKey rows for the signing environment when the primary signature check against the env's current apiKey fails. The fallback query only runs on the failure path, so the hot success path is unchanged. (#3464)

  • Batch items that hit the environment queue size limit now fast-fail without
    retries and without creating pre-failed TaskRuns. (#3352)

  • Show the cancel button in the runs list for runs in DEQUEUED status. DEQUEUED was missing from NON_FINAL_RUN_STATUSES so the list hid the button even though the single run page allowed it. (#3421)

  • Reduce 5xx feedback loops on hot debounce keys by quantizing delayUntil,
    adding an unlocked fast-path skip, and gracefully handling redlock
    contention in handleDebounce so the SDK no longer retries into a herd. (#3453)

  • Fix RSS memory leak in the realtime proxy routes. /realtime/v1/runs, /realtime/v1/runs/:id, and /realtime/v1/batches/:id called fetch() into Electric with no abort signal, so when a client disconnected mid long-poll, undici kept the upstream socket open and buffered response chunks that would never be consumed — retained only in RSS, invisible to V8 heap tooling. Thread getRequestAbortSignal() through RealtimeClient.streamRun/streamRuns/streamBatch to longPollingFetch and cancel the upstream body in the error path. Isolated reproducer showed ~44 KB retained per leaked request; signal propagation releases it cleanly. (#3442)

  • Fix memory leak where every aborted SSE connection pinned the full request/response graph on Node 20, caused by AbortSignal.any() in sse.ts retaining its source signals indefinitely (see AbortSignal.any() causes memory leak nodejs/node#54614, AbortSignal.any() leaks when any of the provided signal is long-lived nodejs/node#55351). Also clear the setTimeout(abort) timer in entry.server.tsx so successful HTML renders don't pin the React tree for 30s per request. (#3430)

  • Preserve filters on the queues page when submitting modal actions. (#3471)

  • Fix Redis connection leak in realtime streams and broken abort signal propagation.

    Redis connections: Non-blocking methods (ingestData, appendPart, getLastChunkIndex) now share a single Redis connection instead of creating one per request. streamResponse still uses dedicated connections (required for XREAD BLOCK) but now tears them down immediately via disconnect() instead of graceful quit(), with a 15s inactivity fallback.

    Abort signal: request.signal is broken in Remix/Express due to a Node.js undici GC bug (Request signal isn't aborted after garbage collection nodejs/node#55428) that severs the signal chain when Remix clones the Request internally. Added getRequestAbortSignal() wired to Express res.on("close") via httpAsyncStorage, which fires reliably on client disconnect. All SSE/streaming routes updated to use it. (#3399)

  • Prevent dashboard crash (React error Fix issue with zod schemas getting serialized through loaders and causing errors #31) when span accessory item text is not a string. Filters out malformed accessory items in SpanCodePathAccessory instead of passing objects to React as children. (#3400)

  • Upgrade Remix packages from 2.1.0 to 2.17.4 to address security vulnerabilities in React Router (#3372)

  • Fix Vercel integration settings page (remove redundant section toggles) and improve the Vercel onboarding flow so the modal closes after connecting a GitHub repo and the marketplace next URL is preserved across the GitHub app install redirect. (#3424)

Raw changeset output

Releases

@trigger.dev/build@4.4.5

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.4.5

trigger.dev@4.4.5

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.4.5
    • @trigger.dev/build@4.4.5
    • @trigger.dev/schema-to-json@4.4.5

@trigger.dev/core@4.4.5

Patch Changes

  • Add isReplay boolean to the run context (ctx.run.isReplay), derived from the existing replayedFromTaskRunFriendlyId database field. Defaults to false for backwards compatibility. (#3454)
  • Add SessionId friendly ID generator and schemas for the new durable Session primitive. Exported from @trigger.dev/core/v3/isomorphic alongside RunId, BatchId, etc. Ships the CreateSessionStreamWaitpoint request/response schemas alongside the main Session CRUD. (#3417)
  • Truncate large error stacks and messages to prevent OOM crashes. Stack traces are capped at 50 frames (keeping top 5 + bottom 45 with an omission notice), individual stack lines at 1024 chars, and error messages at 1000 chars. Applied in parseError, sanitizeError, and OTel span recording. (#3405)

@trigger.dev/python@4.4.5

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.4.5
    • @trigger.dev/build@4.4.5
    • @trigger.dev/sdk@4.4.5

@trigger.dev/react-hooks@4.4.5

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.4.5

@trigger.dev/redis-worker@4.4.5

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.4.5

@trigger.dev/rsc@4.4.5

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.4.5

@trigger.dev/schema-to-json@4.4.5

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.4.5

@trigger.dev/sdk@4.4.5

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.4.5

@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 17, 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.4.5 chore: release Apr 17, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 7359fb6 to 78ff2ec Compare April 17, 2026 12:41
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 17, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 17, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from aa6eb0c to a3ec40f Compare April 17, 2026 12:50
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 17, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 17, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 9ecddb5 to 394b6e0 Compare April 17, 2026 15:07
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 17, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 20, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from fc52fa4 to 892960a Compare April 20, 2026 14:28
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 20, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 20, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 47c9e8c to 5e9a421 Compare April 20, 2026 17:29
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 20, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 21, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 901b466 to c9fa869 Compare April 21, 2026 10:34
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 21, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 21, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 58277ea to 3550d2c Compare April 21, 2026 15:57
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 21, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 22, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 7eabd2a to d883a8b Compare April 22, 2026 10:49
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 22, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 22, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from b1dd38d to a1cc041 Compare April 22, 2026 17:02
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 22, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 23, 2026
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 24, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 28, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from d1324b1 to 2272d4c Compare April 28, 2026 09:24
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 28, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 28, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 901c5a1 to eeaeda5 Compare April 28, 2026 09:59
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 28, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 28, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 3ecd4a5 to e2f76e2 Compare April 28, 2026 10:23
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 28, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 28, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from aa23cf5 to bd98a45 Compare April 28, 2026 11:39
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 28, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 28, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 31185c8 to b17d8a7 Compare April 28, 2026 19:21
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 28, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 29, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from acece21 to 071485f Compare April 29, 2026 09:01
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 29, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 29, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 2ae595a to e330c0f Compare April 29, 2026 12:07
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 29, 2026
@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 29, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 647d55d to d1fde60 Compare April 29, 2026 14:18
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 29, 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 0 new potential issues.

Open in Devin Review

@github-actions github-actions Bot changed the title chore: release v4.4.5 chore: release Apr 30, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 71e7f2f to 62fd139 Compare April 30, 2026 16:58
@github-actions github-actions Bot changed the title chore: release chore: release v4.4.5 Apr 30, 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