Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
78b7136
chore: vouch saasjesus as a contributor (#3917)
ericallam Jun 12, 2026
5d6ea33
refactor: share the public-token JWT scope decoder; make @trigger.dev…
matt-aitken Jun 12, 2026
f48c897
perf(webapp): parallelize streaming batch-item ingest (#3777)
matt-aitken Jun 12, 2026
eb498d1
fix(plugins): drop unused gitBranch re-export from the package entry …
matt-aitken Jun 12, 2026
a04cdff
fix(webapp): stop replica lag from double-triggering session runs and…
ericallam Jun 12, 2026
4783419
fix(sdk): stop chat.createSession wedging on stop and erroring on con…
ericallam Jun 12, 2026
002c441
feat(webapp): self serve schedules add-on (#3811)
isshaddad Jun 12, 2026
5fab8ca
chore: release v4.5.0-rc.6 (#3870)
github-actions[bot] Jun 12, 2026
97c12e2
docs(management): document TriggerClient for multi-target SDK usage (…
ericallam Jun 12, 2026
b8a576a
docs: document the trigger skills installer (replaces agent rules) (#…
ericallam Jun 12, 2026
51af9ae
docs(ai-chat): correct chat.agent reference drift (#3892)
ericallam Jun 12, 2026
84809b0
docs(ai-chat): head-start persistence contract and a clearer sessions…
ericallam Jun 12, 2026
3bc3a17
docs(ai-chat): custom agents page, backend decision table, and a buil…
ericallam Jun 12, 2026
43b4936
docs(ai-chat): add the 4.5.0-rc.6 changelog entry (#3927)
ericallam Jun 12, 2026
3d5cffc
fix(cli): point to init when dev or update runs without a project (#3…
ericallam Jun 12, 2026
5232067
fix(webapp): stop locked-version triggers failing on stale replica re…
ericallam Jun 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/cli-dev-without-project.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"trigger.dev": patch
---

Running a CLI command like `dev`, `deploy`, `preview`, or `update` before initializing a project no longer crashes with a raw `Cannot find matching package.json` stack trace. The CLI now detects the missing project and points you to `npx trigger.dev@latest init` instead.
5 changes: 5 additions & 0 deletions .changeset/create-session-stop-continuation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@trigger.dev/sdk": patch
---

Fix two `chat.createSession()` bugs: stopping a generation no longer wedges the run (the turn loop raced a `totalUsage` promise that never settles after a stop-abort), and continuation runs now wait for the next message instead of invoking the model with an empty prompt.
10 changes: 10 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,24 @@
"backpressure-scale-up-freeze",
"bundle-skills-single-pass",
"cap-idempotency-key-length",
"chat-agent-hardening",
"chat-agent-on-boot-hook",
"chat-agent-tools",
"chat-agent",
"chat-boot-cursor",
"chat-headstart-hydrate",
"chat-headstart-reasoning",
"chat-history-read-primitives",
"chat-session-attributes",
"chat-slim-wire-merge",
"chat-start-session-action-typed-client-data",
"chat-transport-recreate-missing-session",
"cli-deploy-skip-rewrite-timestamp",
"cli-init-ai-tooling",
"coerce-concurrency-key-to-string",
"create-session-stop-continuation",
"dequeue-latency-histogram",
"duplicate-task-ids",
"env-vars-tracing-forceflush-typecheck",
"envvars-import-is-secret",
"large-trigger-payload-offload",
Expand All @@ -51,13 +59,15 @@
"mollifier-tag-cap",
"otel-suite-0218",
"plugin-auth-path",
"project-environments-endpoint",
"resource-catalog-runtime-registration",
"retry-middleware-errors",
"retry-sigsegv",
"runs-list-region-filter",
"s2-batch-transform-linger-fix",
"sessions-primitive",
"trigger-client",
"trigger-skills-installer",
"unflatten-attributes-conflict",
"warm-start-external-trace-context-leak"
]
Expand Down
3 changes: 2 additions & 1 deletion .github/VOUCHED.td
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,5 @@ bharathkumar39293
bhekanik
jrossi
ThullyoCunha
ConProgramming
ConProgramming
saasjesus
6 changes: 0 additions & 6 deletions .server-changes/bulk-action-cursor-pagination.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/cancel-stale-delayed-snapshots.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/compute-network-labels.md

This file was deleted.

8 changes: 0 additions & 8 deletions .server-changes/compute-org-label.md

This file was deleted.

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/hipaa-addon-pricing-cta.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/include-prisma-cli-in-prod-image.md

This file was deleted.

6 changes: 6 additions & 0 deletions .server-changes/locked-version-trigger-stale-replica.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
area: webapp
type: fix
---

Fix locked-version triggers such as triggerAndWait occasionally failing with "task not found on locked version" for a task that is actually registered, by confirming against the primary database when the read replica returns no row.
6 changes: 0 additions & 6 deletions .server-changes/mollifier-decision-enrolled-org-labels.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/react-router-route-matching-perf.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/realtime-replica-read-consistency.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/realtime-runs-subscription-scalability.md

This file was deleted.

8 changes: 0 additions & 8 deletions .server-changes/require-plugins-fail-fast.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/retry-transient-instance-create-failures.md

This file was deleted.

14 changes: 0 additions & 14 deletions .server-changes/runs-backward-pagination-slice.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/runs-bulk-action-no-reload.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/sanitize-agent-view-urls.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/scheduled-run-region-display.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/session-route-hardening.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/snapshots-since-replica-primary-fallback.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/trace-export-formats.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/trace-page-payload-diet.md

This file was deleted.

6 changes: 0 additions & 6 deletions .server-changes/trigger-worker-queue-db-error-leak.md

This file was deleted.

4 changes: 4 additions & 0 deletions apps/webapp/app/env.server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -768,6 +768,10 @@ const EnvironmentSchema = z
// 2-phase batch API settings
STREAMING_BATCH_MAX_ITEMS: z.coerce.number().int().default(1_000), // Max items in streaming batch
STREAMING_BATCH_ITEM_MAXIMUM_SIZE: z.coerce.number().int().default(3_145_728),
// Number of streamed batch items ingested concurrently in Phase 2. Peak
// in-flight memory per request ≈ this × STREAMING_BATCH_ITEM_MAXIMUM_SIZE,
// so raise with care. Set to 1 for fully sequential ingestion.
STREAMING_BATCH_INGEST_CONCURRENCY: z.coerce.number().int().positive().default(10),
BATCH_RATE_LIMIT_REFILL_RATE: z.coerce.number().int().default(100),
BATCH_RATE_LIMIT_MAX: z.coerce.number().int().default(1200),
BATCH_RATE_LIMIT_REFILL_INTERVAL: z.string().default("10s"),
Expand Down
23 changes: 22 additions & 1 deletion apps/webapp/app/presenters/v3/ScheduleListPresenter.server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { type RuntimeEnvironmentType, type ScheduleType } from "@trigger.dev/dat
import { type ScheduleListFilters } from "~/components/runs/v3/ScheduleFilters";
import { displayableEnvironment } from "~/models/runtimeEnvironment.server";
import { getTaskIdentifiers } from "~/models/task.server";
import { getLimit } from "~/services/platform.v3.server";
import { getCurrentPlan, getLimit, getPlans } from "~/services/platform.v3.server";
import { findCurrentWorkerFromEnvironment } from "~/v3/models/workerDeployment.server";
import { ServiceValidationError } from "~/v3/services/baseService.server";
import { CheckScheduleService } from "~/v3/services/checkSchedule.server";
Expand Down Expand Up @@ -104,6 +104,25 @@ export class ScheduleListPresenter extends BasePresenter {
});

const limit = await getLimit(project.organizationId, "schedules", 100_000_000);
const [currentPlan, plans] = await Promise.all([
getCurrentPlan(project.organizationId),
getPlans(),
]);

const extraSchedules = currentPlan?.v3Subscription?.addOns?.schedules?.purchased ?? 0;
const canPurchaseSchedules =
currentPlan?.v3Subscription?.plan?.limits.schedules.canExceed === true;
const maxScheduleQuota = currentPlan?.v3Subscription?.addOns?.schedules?.quota ?? 0;
const planScheduleLimit = limit - extraSchedules;
const schedulePricing = plans?.addOnPricing.schedules ?? null;

const purchaseInfo = {
canPurchaseSchedules,
extraSchedules,
maxScheduleQuota,
planScheduleLimit,
schedulePricing,
};

//get the latest BackgroundWorker
const latestWorker = await findCurrentWorkerFromEnvironment(environment, this._replica);
Expand All @@ -119,6 +138,7 @@ export class ScheduleListPresenter extends BasePresenter {
used: schedulesCount,
limit,
},
...purchaseInfo,
filters: {
tasks,
search,
Expand Down Expand Up @@ -314,6 +334,7 @@ export class ScheduleListPresenter extends BasePresenter {
used: schedulesCount,
limit,
},
...purchaseInfo,
filters: {
tasks,
search,
Expand Down
Loading
Loading