releases.shpreview

Task-level TTL defaults, 11 new MCP server tools, and major MCP improvements

Rollup

v4.4.4

2 new features, 11 new MCP tools, 6 bug fixes, and 15 server changes.

Highlights

Task-level and global TTL defaults

You can now set TTL (time-to-live) defaults at the task level in your task definition and globally in trigger.config.ts. If a run isn't dequeued within the configured window, it expires and never executes. Per-trigger overrides still take precedence over both.

// trigger.config.ts — set a project-wide default
import { defineConfig } from "@trigger.dev/sdk";

export default defineConfig({
  project: "<project ref>",
  ttl: "1h", // runs expire after 1 hour if not dequeued
});
// task — override the global default for this task
export const myTask = task({
  id: "my-task",
  ttl: "30m", // this task's runs expire after 30 minutes
  run: async (payload) => {
    // ...
  },
});

Set ttl: 0 on a task to opt out of the global default entirely.

Multi-provider object storage for large run outputs

Large run outputs now use a new storage API that supports switching object storage providers with zero-downtime migration via protocol-based routing. IAM role-based authentication is also supported, eliminating the need for access keys.

CLI improvements

  • Platform notifications: the trigger dev and trigger login commands now fetch and display notifications (info, warn, error, success) from the server with color markup rendering. Discovery-based filtering shows notifications based on your project file patterns. Use --skip-platform-notifications to disable.

MCP server improvements

New tools

  • get_span_details — inspect individual spans within a run trace, including attributes, timing, events, and AI enrichment (model, tokens, cost). Span IDs are now shown in get_run_details trace output for easy discovery.
  • get_query_schema — discover available TRQL tables and columns
  • query — execute TRQL queries against your data
  • list_dashboards — list built-in dashboards and their widgets
  • run_dashboard_query — execute a single dashboard widget query
  • whoami — show current profile, user, and API URL
  • list_profiles — list all configured CLI profiles
  • switch_profile — switch the active profile for the MCP session
  • start_dev_server — start trigger dev in the background and stream output
  • stop_dev_server — stop the running dev server
  • dev_server_status — check dev server status and view recent logs

Improvements

  • --readonly flag hides write tools (deploy, trigger_task, cancel_run) so the AI cannot make changes
  • get_run_details trace output is now paginated with cursor support
  • get_query_schema now requires a table name and returns only that table's schema
  • get_current_worker no longer inlines payload schemas — use the new get_task_schema tool instead
  • Query results formatted as text tables instead of JSON (~50% fewer tokens)
  • cancel_run, list_deploys, list_preview_branches formatted as text instead of raw JSON
  • Schema and dashboard API responses cached to avoid redundant fetches
  • MCP tool annotations (readOnlyHint, destructiveHint) added to all tools
  • read:query JWT scope added for query endpoint authorization
  • CLI API client now propagates the trigger source via HTTP headers

Bug fixes

  • Fix dev CLI leaking build directories on rebuild. Deprecated workers are now pruned (capped at 2 retained) when no active runs reference them.
  • Fix --load flag being silently ignored on local and self-hosted builds.
  • Fixed search_docs MCP tool failing due to a renamed upstream Mintlify tool (SearchTriggerDevsearch_trigger_dev).
  • Fixed list_deploys MCP tool failing when deployments have null runtime or runtimeVersion fields.
  • Fixed list_preview_branches MCP tool crashing due to incorrect response shape access.
  • Fixed metrics TRQL table column documented as value instead of metric_value.

Server changes

These changes are included in the v4.4.4 Docker image and are already live on Trigger.dev Cloud:

  • Add admin UI for viewing and editing feature flags with org-level overrides and global defaults.
  • Add allowRollbacks query param to the promote deployment API to support version downgrades.
  • Automatic LLM cost calculation for spans with GenAI semantic conventions. Costs are calculated from an in-memory pricing registry and written to span attributes.
  • New GET /api/v1/runs/:runId/spans/:spanId endpoint returning span properties, events, AI enrichment, and triggered child runs.
  • Multi-provider object storage with protocol-based routing for zero-downtime migration. Adds IAM role-based auth for object stores (no access keys required).
  • Platform notifications for informing users about new features and platform events directly in the CLI and dashboard.
  • Private networking support via AWS PrivateLink. Includes BillingClient methods for managing connections, org settings UI for connection management, and supervisor pod labels for CiliumNetworkPolicy matching.
  • Reduce run start latency by skipping the intermediate queue when concurrency is available, rolled out per-region and enabled automatically for development environments.
  • Environment variable page search now matches on environment type (production, staging, development, preview) and branch name, not just variable name and value.
  • Set application_name on Prisma connections from SERVICE_NAME for DB load attribution by service.
  • Add p-retry (3 attempts, 500ms–2s exponential backoff) around object store uploads in BatchPayloadProcessor.
  • Concurrency-keyed queues now use a single master queue entry per base queue instead of one per key, preventing high-CK-count tenants from starving others on the same shard.
  • Reduce lock contention when processing large batchTriggerAndWait batches by removing the per-item Redis lock acquisition.
  • Strip secure query parameter from QUERY_CLICKHOUSE_URL before passing to the ClickHouse client, fixing a startup crash with Error: Unknown URL parameters: secure.
  • Fix dev environment selection for teams with multiple members: now filters DEVELOPMENT environments by orgMember.userId to ensure the logged-in user's dev environment is returned.

How to upgrade

Update the trigger.dev/* packages to v4.4.4 using your package manager:

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 users: update your Docker image to ghcr.io/triggerdotdev/trigger.dev:v4.4.4.

Fetched June 3, 2026