chore: adopt TypeScript 7.0 beta (tsgo) for typecheck#3431
chore: adopt TypeScript 7.0 beta (tsgo) for typecheck#3431
Conversation
Co-Authored-By: Eric Allam <eallam@icloud.com>
|
WalkthroughThis pull request performs a monorepo-wide migration from the TypeScript compiler ( Estimated code review effort🎯 2 (Simple) | ⏱️ ~20 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@package.json`:
- Around line 55-56: Run pnpm install to regenerate pnpm-lock.yaml so the new
package `@typescript/native-preview`@7.0.0-dev.20260421.2 and its
platform-specific optional dependencies are recorded; after installing, verify
the lockfile contains entries for "@typescript/native-preview" and its platform
variants (tsgo binary/platform packages), then commit the updated
pnpm-lock.yaml.
In `@packages/rsc/package.json`:
- Line 35: This PR modified public packages but lacks changesets: add a
changeset entry for each touched public package "@trigger.dev/rsc",
"@trigger.dev/react-hooks", and "@trigger.dev/trigger-sdk" (commit d69e5464) by
running "pnpm run changeset:add" (or manually create .changeset/*.md files) and
specify the package name and bump type, or if these are intentional
tooling-only, add a short changeset explaining the change is release-neutral and
why; ensure the new entries are committed so the releases tooling recognizes the
updates rather than only having the existing `@trigger.dev/core` changeset.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: b1f81889-02d8-4680-8812-b70747ab4bcd
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (47)
.configs/tsconfig.base.jsonapps/coordinator/package.jsonapps/docker-provider/package.jsonapps/kubernetes-provider/package.jsonapps/supervisor/package.jsonapps/webapp/app/routes/otel.v1.logs.tsapps/webapp/app/routes/otel.v1.metrics.tsapps/webapp/app/routes/otel.v1.traces.tsapps/webapp/app/services/realtime/redisRealtimeStreams.server.tsapps/webapp/package.jsonapps/webapp/test/setup-test-env.tsapps/webapp/tsconfig.jsoninternal-packages/cache/package.jsoninternal-packages/clickhouse/package.jsoninternal-packages/clickhouse/src/client/client.tsinternal-packages/compute/package.jsoninternal-packages/database/package.jsoninternal-packages/database/tsconfig.typecheck.jsoninternal-packages/emails/package.jsoninternal-packages/emails/tsconfig.jsoninternal-packages/llm-model-catalog/package.jsoninternal-packages/otlp-importer/package.jsoninternal-packages/otlp-importer/tsconfig.jsoninternal-packages/redis/package.jsoninternal-packages/replication/package.jsoninternal-packages/run-engine/package.jsoninternal-packages/schedule-engine/package.jsoninternal-packages/sdk-compat-tests/package.jsoninternal-packages/testcontainers/package.jsoninternal-packages/testcontainers/tsconfig.jsoninternal-packages/tracing/package.jsoninternal-packages/tsql/package.jsoninternal-packages/tsql/tsconfig.jsoninternal-packages/zod-worker/package.jsoninternal-packages/zod-worker/tsconfig.jsonpackage.jsonpackages/build/package.jsonpackages/cli-v3/package.jsonpackages/cli-v3/src/apiClient.tspackages/core/package.jsonpackages/python/package.jsonpackages/react-hooks/package.jsonpackages/redis-worker/package.jsonpackages/rsc/package.jsonpackages/schema-to-json/package.jsonpackages/trigger-sdk/package.jsonpnpm-workspace.yaml
💤 Files with no reviewable changes (3)
- .configs/tsconfig.base.json
- apps/webapp/test/setup-test-env.ts
- apps/webapp/tsconfig.json
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (28)
- GitHub Check: units / internal / 🧪 Unit Tests: Internal (6, 8)
- GitHub Check: units / internal / 🧪 Unit Tests: Internal (8, 8)
- GitHub Check: units / internal / 🧪 Unit Tests: Internal (1, 8)
- GitHub Check: units / internal / 🧪 Unit Tests: Internal (5, 8)
- GitHub Check: units / internal / 🧪 Unit Tests: Internal (3, 8)
- GitHub Check: units / internal / 🧪 Unit Tests: Internal (7, 8)
- GitHub Check: units / internal / 🧪 Unit Tests: Internal (4, 8)
- GitHub Check: units / internal / 🧪 Unit Tests: Internal (2, 8)
- GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (2, 8)
- GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (8, 8)
- GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (7, 8)
- GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (4, 8)
- GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (6, 8)
- GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (3, 8)
- GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (5, 8)
- GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (1, 8)
- GitHub Check: units / packages / 🧪 Unit Tests: Packages (1, 1)
- GitHub Check: sdk-compat / Node.js 22.12 (ubuntu-latest)
- GitHub Check: sdk-compat / Node.js 20.20 (ubuntu-latest)
- GitHub Check: sdk-compat / Bun Runtime
- GitHub Check: sdk-compat / Cloudflare Workers
- GitHub Check: e2e / 🧪 CLI v3 tests (windows-latest - npm)
- GitHub Check: e2e / 🧪 CLI v3 tests (ubuntu-latest - npm)
- GitHub Check: e2e / 🧪 CLI v3 tests (windows-latest - pnpm)
- GitHub Check: e2e / 🧪 CLI v3 tests (ubuntu-latest - pnpm)
- GitHub Check: sdk-compat / Deno Runtime
- GitHub Check: typecheck / typecheck
- GitHub Check: Analyze (javascript-typescript)
🧰 Additional context used
📓 Path-based instructions (9)
**/tsconfig.json
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Use strict mode in TypeScript configuration
Files:
internal-packages/emails/tsconfig.jsoninternal-packages/tsql/tsconfig.jsoninternal-packages/testcontainers/tsconfig.jsoninternal-packages/otlp-importer/tsconfig.jsoninternal-packages/zod-worker/tsconfig.json
**/*.{js,ts,jsx,tsx,json,md,yaml,yml}
📄 CodeRabbit inference engine (AGENTS.md)
Format code using Prettier before committing
Files:
internal-packages/emails/tsconfig.jsoninternal-packages/llm-model-catalog/package.jsonapps/kubernetes-provider/package.jsoninternal-packages/tsql/tsconfig.jsoninternal-packages/testcontainers/package.jsoninternal-packages/cache/package.jsonpackages/cli-v3/package.jsoninternal-packages/zod-worker/package.jsoninternal-packages/replication/package.jsoninternal-packages/otlp-importer/package.jsoninternal-packages/tsql/package.jsoninternal-packages/database/package.jsonpackages/redis-worker/package.jsonpackages/rsc/package.jsoninternal-packages/tracing/package.jsoninternal-packages/emails/package.jsoninternal-packages/database/tsconfig.typecheck.jsoninternal-packages/clickhouse/package.jsoninternal-packages/run-engine/package.jsonpackages/build/package.jsonpackages/trigger-sdk/package.jsonapps/coordinator/package.jsonapps/webapp/app/routes/otel.v1.logs.tspackages/core/package.jsonpackages/schema-to-json/package.jsoninternal-packages/redis/package.jsoninternal-packages/schedule-engine/package.jsoninternal-packages/testcontainers/tsconfig.jsoninternal-packages/otlp-importer/tsconfig.jsonpackages/python/package.jsonapps/webapp/app/routes/otel.v1.traces.tsapps/docker-provider/package.jsonapps/supervisor/package.jsonpackage.jsoninternal-packages/zod-worker/tsconfig.jsonpnpm-workspace.yamlapps/webapp/app/services/realtime/redisRealtimeStreams.server.tsinternal-packages/sdk-compat-tests/package.jsonpackages/cli-v3/src/apiClient.tsapps/webapp/app/routes/otel.v1.metrics.tsinternal-packages/clickhouse/src/client/client.tsinternal-packages/compute/package.jsonpackages/react-hooks/package.jsonapps/webapp/package.json
**/*.{ts,tsx}
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
**/*.{ts,tsx}: Use types over interfaces for TypeScript
Avoid using enums; prefer string unions or const objects instead
Files:
apps/webapp/app/routes/otel.v1.logs.tsapps/webapp/app/routes/otel.v1.traces.tsapps/webapp/app/services/realtime/redisRealtimeStreams.server.tspackages/cli-v3/src/apiClient.tsapps/webapp/app/routes/otel.v1.metrics.tsinternal-packages/clickhouse/src/client/client.ts
{packages/core,apps/webapp}/**/*.{ts,tsx}
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Use zod for validation in packages/core and apps/webapp
Files:
apps/webapp/app/routes/otel.v1.logs.tsapps/webapp/app/routes/otel.v1.traces.tsapps/webapp/app/services/realtime/redisRealtimeStreams.server.tsapps/webapp/app/routes/otel.v1.metrics.ts
**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Use function declarations instead of default exports
Add crumbs as you write code using
//@Crumbscomments or `// `#region` `@crumbsblocks. These are temporary debug instrumentation and must be stripped usingagentcrumbs stripbefore merge.
Files:
apps/webapp/app/routes/otel.v1.logs.tsapps/webapp/app/routes/otel.v1.traces.tsapps/webapp/app/services/realtime/redisRealtimeStreams.server.tspackages/cli-v3/src/apiClient.tsapps/webapp/app/routes/otel.v1.metrics.tsinternal-packages/clickhouse/src/client/client.ts
**/*.ts
📄 CodeRabbit inference engine (.cursor/rules/otel-metrics.mdc)
**/*.ts: When creating or editing OTEL metrics (counters, histograms, gauges), ensure metric attributes have low cardinality by using only enums, booleans, bounded error codes, or bounded shard IDs
Do not use high-cardinality attributes in OTEL metrics such as UUIDs/IDs (envId, userId, runId, projectId, organizationId), unbounded integers (itemCount, batchSize, retryCount), timestamps (createdAt, startTime), or free-form strings (errorMessage, taskName, queueName)
When exporting OTEL metrics via OTLP to Prometheus, be aware that the exporter automatically adds unit suffixes to metric names (e.g., 'my_duration_ms' becomes 'my_duration_ms_milliseconds', 'my_counter' becomes 'my_counter_total'). Account for these transformations when writing Grafana dashboards or Prometheus queries
Files:
apps/webapp/app/routes/otel.v1.logs.tsapps/webapp/app/routes/otel.v1.traces.tsapps/webapp/app/services/realtime/redisRealtimeStreams.server.tspackages/cli-v3/src/apiClient.tsapps/webapp/app/routes/otel.v1.metrics.tsinternal-packages/clickhouse/src/client/client.ts
**/*.ts{,x}
📄 CodeRabbit inference engine (CLAUDE.md)
Always import from
@trigger.dev/sdkwhen writing Trigger.dev tasks. Never use@trigger.dev/sdk/v3or deprecatedclient.defineJob.
Files:
apps/webapp/app/routes/otel.v1.logs.tsapps/webapp/app/routes/otel.v1.traces.tsapps/webapp/app/services/realtime/redisRealtimeStreams.server.tspackages/cli-v3/src/apiClient.tsapps/webapp/app/routes/otel.v1.metrics.tsinternal-packages/clickhouse/src/client/client.ts
apps/webapp/**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/webapp.mdc)
apps/webapp/**/*.{ts,tsx}: Access environment variables through theenvexport ofenv.server.tsinstead of directly accessingprocess.env
Use subpath exports from@trigger.dev/corepackage instead of importing from the root@trigger.dev/corepathUse named constants for sentinel/placeholder values (e.g.
const UNSET_VALUE = '__unset__') instead of raw string literals scattered across comparisons
Files:
apps/webapp/app/routes/otel.v1.logs.tsapps/webapp/app/routes/otel.v1.traces.tsapps/webapp/app/services/realtime/redisRealtimeStreams.server.tsapps/webapp/app/routes/otel.v1.metrics.ts
apps/webapp/**/*.server.ts
📄 CodeRabbit inference engine (apps/webapp/CLAUDE.md)
apps/webapp/**/*.server.ts: Never userequest.signalfor detecting client disconnects. UsegetRequestAbortSignal()fromapp/services/httpAsyncStorage.server.tsinstead, which is wired directly to Expressres.on('close')and fires reliably
Access environment variables viaenvexport fromapp/env.server.ts. Never useprocess.envdirectly
Always usefindFirstinstead offindUniquein Prisma queries.findUniquehas an implicit DataLoader that batches concurrent calls and has active bugs even in Prisma 6.x (uppercase UUIDs returning null, composite key SQL correctness issues, 5-10x worse performance).findFirstis never batched and avoids this entire class of issues
Files:
apps/webapp/app/services/realtime/redisRealtimeStreams.server.ts
🧠 Learnings (59)
📓 Common learnings
Learnt from: ericallam
Repo: triggerdotdev/trigger.dev PR: 2710
File: packages/schema-to-json/package.json:0-0
Timestamp: 2025-11-26T14:40:07.146Z
Learning: Node.js 24+ has native TypeScript support and can execute .ts files directly without tsx or ts-node for scripts that use only erasable TypeScript syntax (type annotations, interfaces, etc.). The trigger.dev repository uses Node.js 24.11.1+ and scripts like updateVersion.ts can be run with `node` instead of `tsx`.
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-27T16:26:37.432Z
Learning: Applies to packages/trigger-sdk/**/*.{ts,tsx} : In the Trigger.dev SDK (packages/trigger-sdk), prefer isomorphic code like fetch and ReadableStream instead of Node.js-specific code
Learnt from: isshaddad
Repo: triggerdotdev/trigger.dev PR: 3262
File: docs/guides/frameworks/nango.mdx:71-71
Timestamp: 2026-03-25T00:18:26.339Z
Learning: Applies to docs/guides/frameworks/**/*.mdx : The trigger.dev docs repo uses `ts` (not `typescript`) as the code-fence language tag for TypeScript snippets. This is the consistent convention across all framework guides (nextjs, sequin, prisma, remix, drizzle, etc.).
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: packages/redis-worker/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:43.173Z
Learning: Applies to packages/redis-worker/**/*@(job|queue|worker|background).{ts,tsx} : Use trigger.dev/redis-worker for all new background job implementations, replacing graphile-worker and zodworker
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-27T16:26:37.432Z
Learning: Applies to {packages/core,apps/webapp}/**/*.{ts,tsx} : Use zod for validation in packages/core and apps/webapp
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-27T16:26:37.432Z
Learning: Applies to internal-packages/database/**/*.{ts,tsx} : Use Prisma for database interactions in internal-packages/database with PostgreSQL
📚 Learning: 2026-03-02T12:43:34.140Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: packages/cli-v3/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:34.140Z
Learning: Applies to packages/cli-v3/src/build/**/* : Build system in `src/build/` should use configuration from `trigger.config.ts` in user projects to determine bundling, build extensions, and output structure
Applied to files:
internal-packages/emails/tsconfig.jsoninternal-packages/tsql/tsconfig.jsoninternal-packages/cache/package.jsonpackages/cli-v3/package.jsoninternal-packages/replication/package.jsoninternal-packages/database/package.jsonpackages/redis-worker/package.jsonpackages/rsc/package.jsoninternal-packages/tracing/package.jsoninternal-packages/database/tsconfig.typecheck.jsoninternal-packages/clickhouse/package.jsoninternal-packages/run-engine/package.jsonpackages/build/package.jsonpackages/trigger-sdk/package.jsonpackages/core/package.jsonpackages/schema-to-json/package.jsoninternal-packages/redis/package.jsoninternal-packages/schedule-engine/package.jsoninternal-packages/testcontainers/tsconfig.jsoninternal-packages/otlp-importer/tsconfig.jsonpackages/python/package.jsoninternal-packages/zod-worker/tsconfig.jsoninternal-packages/sdk-compat-tests/package.jsoninternal-packages/compute/package.jsonpackages/react-hooks/package.jsonapps/webapp/package.json
📚 Learning: 2025-11-27T16:26:37.432Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-27T16:26:37.432Z
Learning: Applies to **/tsconfig.json : Use strict mode in TypeScript configuration
Applied to files:
internal-packages/emails/tsconfig.jsoninternal-packages/tsql/tsconfig.jsoninternal-packages/zod-worker/package.jsoninternal-packages/database/tsconfig.typecheck.jsoninternal-packages/testcontainers/tsconfig.jsoninternal-packages/otlp-importer/tsconfig.jsoninternal-packages/zod-worker/tsconfig.json
📚 Learning: 2026-03-25T15:29:25.889Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .cursor/rules/writing-tasks.mdc:0-0
Timestamp: 2026-03-25T15:29:25.889Z
Learning: Applies to trigger.config.ts : Configure build options including `external` packages, `jsx` settings, `conditions`, and `extensions` in the `build` option
Applied to files:
internal-packages/emails/tsconfig.jsoninternal-packages/tsql/tsconfig.jsoninternal-packages/database/tsconfig.typecheck.jsoninternal-packages/testcontainers/tsconfig.jsoninternal-packages/otlp-importer/tsconfig.jsonpackages/python/package.jsoninternal-packages/zod-worker/tsconfig.jsoninternal-packages/compute/package.json
📚 Learning: 2026-03-02T12:43:34.140Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: packages/cli-v3/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:34.140Z
Learning: Applies to packages/cli-v3/src/build/**/* : Bundle worker code using the build system in `src/build/` based on configuration from `trigger.config.ts`
Applied to files:
internal-packages/emails/tsconfig.jsoninternal-packages/tsql/tsconfig.jsoninternal-packages/zod-worker/package.jsoninternal-packages/replication/package.jsonpackages/redis-worker/package.jsonpackages/rsc/package.jsoninternal-packages/database/tsconfig.typecheck.jsoninternal-packages/clickhouse/package.jsoninternal-packages/run-engine/package.jsonpackages/build/package.jsonpackages/core/package.jsonpackages/schema-to-json/package.jsoninternal-packages/schedule-engine/package.jsonpackages/python/package.jsonpackage.jsoninternal-packages/zod-worker/tsconfig.jsoninternal-packages/compute/package.jsonpackages/react-hooks/package.json
📚 Learning: 2026-03-22T19:26:49.299Z
Learnt from: matt-aitken
Repo: triggerdotdev/trigger.dev PR: 3187
File: internal-packages/emails/emails/alert-error-group.tsx:58-58
Timestamp: 2026-03-22T19:26:49.299Z
Learning: In the triggerdotdev/trigger.dev codebase, email template files under `internal-packages/emails/emails/` must use `export default function Email(...)` (default export) because the React Email previewer requires a default export to discover and render templates. Do not flag default exports in these files as violations of the "use named exports" coding guideline.
Applied to files:
internal-packages/emails/tsconfig.jsoninternal-packages/emails/package.json
📚 Learning: 2025-11-27T16:26:37.432Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-27T16:26:37.432Z
Learning: Applies to {packages/core,apps/webapp}/**/*.{ts,tsx} : Use zod for validation in packages/core and apps/webapp
Applied to files:
internal-packages/emails/tsconfig.jsoninternal-packages/zod-worker/package.jsoninternal-packages/otlp-importer/package.jsoninternal-packages/tsql/package.jsoninternal-packages/database/package.jsoninternal-packages/emails/package.jsonpackages/build/package.jsoninternal-packages/otlp-importer/tsconfig.jsonapps/supervisor/package.jsoninternal-packages/zod-worker/tsconfig.jsoninternal-packages/sdk-compat-tests/package.jsonapps/webapp/package.json
📚 Learning: 2025-11-27T16:26:37.432Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-27T16:26:37.432Z
Learning: Applies to **/*.{ts,tsx,js,jsx} : Use function declarations instead of default exports
Applied to files:
internal-packages/emails/tsconfig.jsoninternal-packages/tsql/tsconfig.jsoninternal-packages/database/tsconfig.typecheck.jsoninternal-packages/testcontainers/tsconfig.jsoninternal-packages/otlp-importer/tsconfig.jsoninternal-packages/zod-worker/tsconfig.json
📚 Learning: 2026-04-15T15:39:31.575Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .cursor/rules/webapp.mdc:0-0
Timestamp: 2026-04-15T15:39:31.575Z
Learning: Applies to apps/webapp/**/*.{ts,tsx} : Use subpath exports from `trigger.dev/core` package instead of importing from the root `trigger.dev/core` path
Applied to files:
internal-packages/emails/tsconfig.jsoninternal-packages/tracing/package.jsonpackages/trigger-sdk/package.jsoninternal-packages/redis/package.jsoninternal-packages/zod-worker/tsconfig.json
📚 Learning: 2026-04-15T15:39:06.868Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-15T15:39:06.868Z
Learning: Use `pnpm run typecheck` to verify changes in apps and internal packages (`apps/*`, `internal-packages/*`). Never use `build` for these — building proves almost nothing about correctness.
Applied to files:
internal-packages/llm-model-catalog/package.jsonapps/kubernetes-provider/package.jsoninternal-packages/testcontainers/package.jsoninternal-packages/cache/package.jsonpackages/cli-v3/package.jsoninternal-packages/zod-worker/package.jsoninternal-packages/replication/package.jsoninternal-packages/otlp-importer/package.jsoninternal-packages/tsql/package.jsoninternal-packages/database/package.jsonpackages/redis-worker/package.jsonpackages/rsc/package.jsoninternal-packages/tracing/package.jsoninternal-packages/emails/package.jsoninternal-packages/database/tsconfig.typecheck.jsoninternal-packages/clickhouse/package.jsoninternal-packages/run-engine/package.jsonpackages/build/package.jsonpackages/trigger-sdk/package.jsonapps/coordinator/package.jsonpackages/core/package.jsonpackages/schema-to-json/package.jsoninternal-packages/redis/package.jsoninternal-packages/schedule-engine/package.jsonpackages/python/package.jsonapps/docker-provider/package.jsonapps/supervisor/package.jsonpackage.jsoninternal-packages/sdk-compat-tests/package.jsoninternal-packages/compute/package.jsonpackages/react-hooks/package.jsonapps/webapp/package.json
📚 Learning: 2025-11-26T14:40:07.146Z
Learnt from: ericallam
Repo: triggerdotdev/trigger.dev PR: 2710
File: packages/schema-to-json/package.json:0-0
Timestamp: 2025-11-26T14:40:07.146Z
Learning: Node.js 24+ has native TypeScript support and can execute .ts files directly without tsx or ts-node for scripts that use only erasable TypeScript syntax (type annotations, interfaces, etc.). The trigger.dev repository uses Node.js 24.11.1+ and scripts like updateVersion.ts can be run with `node` instead of `tsx`.
Applied to files:
internal-packages/llm-model-catalog/package.jsonapps/kubernetes-provider/package.jsoninternal-packages/testcontainers/package.jsoninternal-packages/cache/package.jsonpackages/cli-v3/package.jsoninternal-packages/zod-worker/package.jsoninternal-packages/replication/package.jsoninternal-packages/otlp-importer/package.jsoninternal-packages/tsql/package.jsoninternal-packages/database/package.jsonpackages/redis-worker/package.jsonpackages/rsc/package.jsoninternal-packages/tracing/package.jsoninternal-packages/emails/package.jsoninternal-packages/clickhouse/package.jsoninternal-packages/run-engine/package.jsonpackages/build/package.jsonpackages/trigger-sdk/package.jsonapps/coordinator/package.jsonpackages/core/package.jsonpackages/schema-to-json/package.jsoninternal-packages/redis/package.jsoninternal-packages/schedule-engine/package.jsoninternal-packages/testcontainers/tsconfig.jsoninternal-packages/otlp-importer/tsconfig.jsonpackages/python/package.jsonapps/docker-provider/package.jsonapps/supervisor/package.jsonpackage.jsoninternal-packages/zod-worker/tsconfig.jsoninternal-packages/sdk-compat-tests/package.jsoninternal-packages/compute/package.jsonpackages/react-hooks/package.jsonapps/webapp/package.json
📚 Learning: 2026-04-16T14:19:16.330Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: apps/webapp/CLAUDE.md:0-0
Timestamp: 2026-04-16T14:19:16.330Z
Learning: Never run `pnpm run build --filter webapp` to verify changes. Use typecheck from the repo root instead (`pnpm run typecheck --filter webapp`). Building proves almost nothing about correctness; only run typecheck after major changes (new files, significant refactors, schema changes)
Applied to files:
internal-packages/llm-model-catalog/package.jsoninternal-packages/testcontainers/package.jsoninternal-packages/cache/package.jsonpackages/cli-v3/package.jsoninternal-packages/replication/package.jsoninternal-packages/otlp-importer/package.jsoninternal-packages/tsql/package.jsoninternal-packages/database/package.jsonpackages/redis-worker/package.jsonpackages/rsc/package.jsoninternal-packages/tracing/package.jsoninternal-packages/emails/package.jsoninternal-packages/clickhouse/package.jsoninternal-packages/run-engine/package.jsonpackages/build/package.jsonpackages/trigger-sdk/package.jsonapps/coordinator/package.jsonpackages/core/package.jsonpackages/schema-to-json/package.jsoninternal-packages/redis/package.jsoninternal-packages/schedule-engine/package.jsonpackages/python/package.jsonapps/docker-provider/package.jsonapps/supervisor/package.jsoninternal-packages/sdk-compat-tests/package.jsoninternal-packages/compute/package.jsonpackages/react-hooks/package.jsonapps/webapp/package.json
📚 Learning: 2026-01-15T10:48:02.687Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T10:48:02.687Z
Learning: Applies to **/*.test.{ts,tsx,js,jsx} : Use vitest for running unit tests
Applied to files:
internal-packages/llm-model-catalog/package.jsoninternal-packages/tsql/tsconfig.jsoninternal-packages/cache/package.jsonpackages/cli-v3/package.jsoninternal-packages/replication/package.jsoninternal-packages/tsql/package.jsonpackages/redis-worker/package.jsoninternal-packages/run-engine/package.jsonpackages/trigger-sdk/package.jsonpackages/core/package.jsonpackages/schema-to-json/package.jsoninternal-packages/schedule-engine/package.jsoninternal-packages/testcontainers/tsconfig.jsonapps/supervisor/package.jsonpackage.jsoninternal-packages/zod-worker/tsconfig.jsoninternal-packages/sdk-compat-tests/package.json
📚 Learning: 2025-11-27T16:26:37.432Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-27T16:26:37.432Z
Learning: Applies to **/*.{test,spec}.{ts,tsx} : Use vitest for all tests in the Trigger.dev repository
Applied to files:
internal-packages/llm-model-catalog/package.jsoninternal-packages/tsql/tsconfig.jsoninternal-packages/cache/package.jsonpackages/cli-v3/package.jsoninternal-packages/replication/package.jsoninternal-packages/tsql/package.jsonpackages/redis-worker/package.jsoninternal-packages/tracing/package.jsoninternal-packages/emails/package.jsoninternal-packages/clickhouse/package.jsoninternal-packages/run-engine/package.jsonpackages/build/package.jsonpackages/trigger-sdk/package.jsonpackages/core/package.jsonpackages/schema-to-json/package.jsoninternal-packages/redis/package.jsoninternal-packages/schedule-engine/package.jsoninternal-packages/testcontainers/tsconfig.jsonapps/supervisor/package.jsonpackage.jsoninternal-packages/zod-worker/tsconfig.jsoninternal-packages/sdk-compat-tests/package.jsoninternal-packages/compute/package.jsonapps/webapp/package.json
📚 Learning: 2025-11-27T16:26:44.496Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .cursor/rules/executing-commands.mdc:0-0
Timestamp: 2025-11-27T16:26:44.496Z
Learning: For running tests, navigate into the package directory and run `pnpm run test --run` to enable single-file test execution (e.g., `pnpm run test ./src/engine/tests/ttl.test.ts --run`)
Applied to files:
internal-packages/llm-model-catalog/package.jsonpackages/cli-v3/package.jsoninternal-packages/replication/package.jsonpackages/redis-worker/package.jsonpackages/rsc/package.jsoninternal-packages/run-engine/package.jsonpackages/build/package.jsonpackages/trigger-sdk/package.jsonpackages/core/package.jsonpackages/schema-to-json/package.jsoninternal-packages/schedule-engine/package.jsonpackages/python/package.jsonapps/supervisor/package.jsoninternal-packages/compute/package.jsonpackages/react-hooks/package.jsonapps/webapp/package.json
📚 Learning: 2026-04-15T15:39:06.868Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-15T15:39:06.868Z
Learning: Applies to **/*.test.{ts,tsx} : Use vitest exclusively for testing. Never mock anything — use testcontainers instead.
Applied to files:
internal-packages/llm-model-catalog/package.jsoninternal-packages/testcontainers/package.jsoninternal-packages/cache/package.jsoninternal-packages/testcontainers/tsconfig.json
📚 Learning: 2026-03-02T12:43:34.140Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: packages/cli-v3/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:34.140Z
Learning: Applies to packages/cli-v3/src/deploy/buildImage.ts : Build Docker images using `src/deploy/buildImage.ts` for local Docker/Depot or remote builds
Applied to files:
apps/kubernetes-provider/package.jsonapps/coordinator/package.jsonapps/docker-provider/package.json
📚 Learning: 2026-03-02T12:43:43.173Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: packages/redis-worker/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:43.173Z
Learning: Applies to packages/redis-worker/**/redis-worker/**/*.{test,spec}.{ts,tsx} : Use testcontainers for Redis in test files for redis-worker
Applied to files:
internal-packages/testcontainers/package.jsonpackages/redis-worker/package.jsoninternal-packages/redis/package.jsoninternal-packages/testcontainers/tsconfig.jsonpackage.json
📚 Learning: 2026-04-15T15:39:06.868Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-15T15:39:06.868Z
Learning: When modifying any public package (`packages/*` or `integrations/*`), add a changeset using `pnpm run changeset:add`.
Applied to files:
internal-packages/testcontainers/package.jsoninternal-packages/cache/package.jsoninternal-packages/zod-worker/package.jsoninternal-packages/replication/package.jsoninternal-packages/otlp-importer/package.jsoninternal-packages/tsql/package.jsoninternal-packages/database/package.jsonpackages/redis-worker/package.jsonpackages/rsc/package.jsoninternal-packages/tracing/package.jsoninternal-packages/emails/package.jsoninternal-packages/clickhouse/package.jsoninternal-packages/run-engine/package.jsonpackages/build/package.jsonapps/coordinator/package.jsonpackages/core/package.jsoninternal-packages/redis/package.jsoninternal-packages/schedule-engine/package.jsonpackage.jsonpnpm-workspace.yamlinternal-packages/sdk-compat-tests/package.jsoninternal-packages/compute/package.jsonpackages/react-hooks/package.jsonapps/webapp/package.json
📚 Learning: 2026-03-02T12:43:25.254Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: internal-packages/run-engine/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:25.254Z
Learning: Applies to internal-packages/run-engine/src/engine/tests/**/*.test.ts : Implement tests for RunEngine in `src/engine/tests/` using testcontainers for Redis and PostgreSQL containerization
Applied to files:
internal-packages/testcontainers/package.jsoninternal-packages/run-engine/package.jsoninternal-packages/redis/package.jsoninternal-packages/testcontainers/tsconfig.json
📚 Learning: 2026-04-15T15:39:06.868Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-15T15:39:06.868Z
Learning: Applies to **/*.test.{ts,tsx} : For Redis/PostgreSQL tests in vitest, use testcontainers helpers: `redisTest`, `postgresTest`, or `containerTest` imported from `internal/testcontainers`.
Applied to files:
internal-packages/testcontainers/package.jsoninternal-packages/testcontainers/tsconfig.json
📚 Learning: 2026-04-15T15:39:06.868Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-15T15:39:06.868Z
Learning: Use `pnpm run build` to verify changes in public packages (`packages/*`). Build proves correctness for these published packages.
Applied to files:
internal-packages/cache/package.jsoninternal-packages/replication/package.jsonpackages/rsc/package.jsoninternal-packages/run-engine/package.jsonpackages/build/package.jsonpackages/trigger-sdk/package.jsonpackages/core/package.jsonpackages/schema-to-json/package.jsoninternal-packages/schedule-engine/package.jsonpackages/python/package.jsonpackage.jsoninternal-packages/compute/package.jsonpackages/react-hooks/package.json
📚 Learning: 2026-03-02T12:43:34.140Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: packages/cli-v3/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:34.140Z
Learning: Applies to packages/cli-v3/src/commands/dev.ts : Implement `dev.ts` command in `src/commands/` for local development mode
Applied to files:
packages/cli-v3/package.jsoninternal-packages/replication/package.jsoninternal-packages/otlp-importer/package.jsoninternal-packages/database/package.jsonpackages/redis-worker/package.jsonpackages/rsc/package.jsoninternal-packages/emails/package.jsoninternal-packages/clickhouse/package.jsoninternal-packages/run-engine/package.jsonpackages/build/package.jsonpackages/trigger-sdk/package.jsonpackages/python/package.jsonapps/docker-provider/package.jsoninternal-packages/compute/package.jsonpackages/react-hooks/package.jsonapps/webapp/package.json
📚 Learning: 2026-03-02T12:43:34.140Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: packages/cli-v3/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:34.140Z
Learning: Applies to packages/cli-v3/src/commands/deploy.ts : Implement `deploy.ts` command in `src/commands/` for production deployment
Applied to files:
packages/cli-v3/package.jsonpackages/cli-v3/src/apiClient.ts
📚 Learning: 2026-04-15T15:39:06.868Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-15T15:39:06.868Z
Learning: Applies to **/*.ts{,x} : Always import from `trigger.dev/sdk` when writing Trigger.dev tasks. Never use `trigger.dev/sdk/v3` or deprecated `client.defineJob`.
Applied to files:
packages/cli-v3/package.jsoninternal-packages/tracing/package.jsonpackages/trigger-sdk/package.jsoninternal-packages/redis/package.jsoninternal-packages/zod-worker/tsconfig.jsoninternal-packages/sdk-compat-tests/package.json
📚 Learning: 2026-03-02T12:43:34.140Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: packages/cli-v3/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:34.140Z
Learning: Applies to packages/cli-v3/src/commands/promote.ts : Implement `promote.ts` command in `src/commands/` for deployment promotion
Applied to files:
packages/cli-v3/package.jsonpackages/cli-v3/src/apiClient.ts
📚 Learning: 2026-03-02T12:43:48.124Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: packages/trigger-sdk/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:48.124Z
Learning: Applies to packages/trigger-sdk/**/*.{ts,tsx,js,jsx} : Always import from `trigger.dev/sdk`. Never use `trigger.dev/sdk/v3` (deprecated path alias)
Applied to files:
packages/cli-v3/package.jsonpackages/trigger-sdk/package.jsonpnpm-workspace.yamlinternal-packages/sdk-compat-tests/package.json
📚 Learning: 2025-11-27T16:26:37.432Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-27T16:26:37.432Z
Learning: Applies to **/*.{ts,tsx} : Use types over interfaces for TypeScript
Applied to files:
packages/cli-v3/package.jsoninternal-packages/database/tsconfig.typecheck.jsoninternal-packages/otlp-importer/tsconfig.json
📚 Learning: 2025-11-27T16:26:37.432Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-27T16:26:37.432Z
Learning: Applies to internal-packages/database/**/*.{ts,tsx} : Use Prisma for database interactions in internal-packages/database with PostgreSQL
Applied to files:
internal-packages/zod-worker/package.jsoninternal-packages/database/package.jsoninternal-packages/database/tsconfig.typecheck.json
📚 Learning: 2026-03-02T12:43:17.177Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: internal-packages/database/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:17.177Z
Learning: Applies to internal-packages/database/**/{app,src,webapp}/**/*.{ts,tsx,js,jsx} : Use `$replica` from `~/db.server` for read-heavy queries in the webapp instead of the primary database connection
Applied to files:
internal-packages/replication/package.jsoninternal-packages/database/tsconfig.typecheck.json
📚 Learning: 2026-03-25T15:29:25.889Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .cursor/rules/writing-tasks.mdc:0-0
Timestamp: 2026-03-25T15:29:25.889Z
Learning: Applies to **/trigger/**/*.{ts,tsx,js,jsx} : Use `schemaTask()` from `trigger.dev/sdk` with a Zod schema for payload validation
Applied to files:
internal-packages/tsql/package.jsoninternal-packages/tracing/package.jsoninternal-packages/clickhouse/package.jsonpackages/trigger-sdk/package.jsoninternal-packages/redis/package.jsoninternal-packages/sdk-compat-tests/package.json
📚 Learning: 2026-03-02T12:43:17.177Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: internal-packages/database/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:17.177Z
Learning: Edit Prisma schema at `prisma/schema.prisma` and generate migrations using `pnpm run db:migrate:dev:create --name "descriptive_name"` from the `internal-packages/database` directory
Applied to files:
internal-packages/database/package.json
📚 Learning: 2026-01-15T10:48:02.687Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T10:48:02.687Z
Learning: Applies to **/*.{js,ts,jsx,tsx,json,md,yaml,yml} : Format code using Prettier before committing
Applied to files:
internal-packages/database/package.json
📚 Learning: 2026-03-02T12:43:43.173Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: packages/redis-worker/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:43.173Z
Learning: Applies to packages/redis-worker/**/*@(job|queue|worker|background).{ts,tsx} : Use trigger.dev/redis-worker for all new background job implementations, replacing graphile-worker and zodworker
Applied to files:
packages/redis-worker/package.jsoninternal-packages/redis/package.json
📚 Learning: 2026-03-02T12:43:43.173Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: packages/redis-worker/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:43.173Z
Learning: Applies to packages/redis-worker/**/redis-worker/src/queue.ts : Job queue abstraction should be Redis-backed in src/queue.ts
Applied to files:
packages/redis-worker/package.jsonapps/webapp/app/services/realtime/redisRealtimeStreams.server.ts
📚 Learning: 2026-03-02T12:43:43.173Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: packages/redis-worker/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:43.173Z
Learning: Applies to packages/redis-worker/**/redis-worker/src/worker.ts : Worker loop and job processing should implement concurrency control in src/worker.ts
Applied to files:
packages/redis-worker/package.json
📚 Learning: 2026-03-25T15:29:25.889Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .cursor/rules/writing-tasks.mdc:0-0
Timestamp: 2026-03-25T15:29:25.889Z
Learning: Applies to **/trigger/**/*.{ts,tsx,js,jsx} : Export every task, including subtasks
Applied to files:
packages/rsc/package.jsonpackages/build/package.jsonpackages/trigger-sdk/package.jsoninternal-packages/otlp-importer/tsconfig.jsonpackages/python/package.jsonpackages/react-hooks/package.json
📚 Learning: 2026-03-02T12:43:25.254Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: internal-packages/run-engine/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:43:25.254Z
Learning: Applies to internal-packages/run-engine/src/engine/systems/**/*.ts : Integrate OpenTelemetry tracer and meter instrumentation in RunEngine systems for observability
Applied to files:
internal-packages/tracing/package.jsoninternal-packages/run-engine/package.json
📚 Learning: 2026-03-25T15:29:25.889Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .cursor/rules/writing-tasks.mdc:0-0
Timestamp: 2026-03-25T15:29:25.889Z
Learning: Applies to **/trigger/**/*.{ts,tsx,js,jsx} : Use `task()` from `trigger.dev/sdk` for basic task definitions with `id` and `run` properties
Applied to files:
internal-packages/tracing/package.jsoninternal-packages/clickhouse/package.jsonpackages/trigger-sdk/package.jsoninternal-packages/redis/package.jsoninternal-packages/sdk-compat-tests/package.json
📚 Learning: 2026-03-25T00:18:26.339Z
Learnt from: isshaddad
Repo: triggerdotdev/trigger.dev PR: 3262
File: docs/guides/frameworks/nango.mdx:71-71
Timestamp: 2026-03-25T00:18:26.339Z
Learning: Applies to docs/guides/frameworks/**/*.mdx : The trigger.dev docs repo uses `ts` (not `typescript`) as the code-fence language tag for TypeScript snippets. This is the consistent convention across all framework guides (nextjs, sequin, prisma, remix, drizzle, etc.).
Applied to files:
internal-packages/tracing/package.jsoninternal-packages/redis/package.json
📚 Learning: 2026-03-25T15:29:25.889Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .cursor/rules/writing-tasks.mdc:0-0
Timestamp: 2026-03-25T15:29:25.889Z
Learning: Applies to **/trigger/**/*.{ts,tsx,js,jsx} : Import from `trigger.dev/sdk` (NEVER from `trigger.dev/sdk/v3`)
Applied to files:
internal-packages/tracing/package.jsonpackages/trigger-sdk/package.jsoninternal-packages/redis/package.json
📚 Learning: 2026-03-25T15:29:25.889Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .cursor/rules/writing-tasks.mdc:0-0
Timestamp: 2026-03-25T15:29:25.889Z
Learning: Applies to trigger.config.ts : Configure the Trigger.dev project using `defineConfig()` with properties like `project`, `dirs`, `retries`, `runtime`, and `build`
Applied to files:
internal-packages/tracing/package.jsoninternal-packages/clickhouse/package.jsoninternal-packages/redis/package.json
📚 Learning: 2025-11-27T16:26:37.432Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-27T16:26:37.432Z
Learning: The SDK at packages/trigger-sdk is an isomorphic TypeScript SDK
Applied to files:
packages/trigger-sdk/package.jsoninternal-packages/sdk-compat-tests/package.json
📚 Learning: 2025-11-27T16:26:37.432Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-27T16:26:37.432Z
Learning: Applies to packages/trigger-sdk/**/*.{ts,tsx} : In the Trigger.dev SDK (packages/trigger-sdk), prefer isomorphic code like fetch and ReadableStream instead of Node.js-specific code
Applied to files:
packages/trigger-sdk/package.jsonpackage.jsonpnpm-workspace.yamlinternal-packages/sdk-compat-tests/package.json
📚 Learning: 2026-03-22T13:26:12.060Z
Learnt from: ericallam
Repo: triggerdotdev/trigger.dev PR: 3244
File: apps/webapp/app/components/code/TextEditor.tsx:81-86
Timestamp: 2026-03-22T13:26:12.060Z
Learning: In the triggerdotdev/trigger.dev codebase, do not flag `navigator.clipboard.writeText(...)` calls for `missing-await`/`unhandled-promise` issues. These clipboard writes are intentionally invoked without `await` and without `catch` handlers across the project; keep that behavior consistent when reviewing TypeScript/TSX files (e.g., usages like in `apps/webapp/app/components/code/TextEditor.tsx`).
Applied to files:
apps/webapp/app/routes/otel.v1.logs.tsapps/webapp/app/routes/otel.v1.traces.tsapps/webapp/app/services/realtime/redisRealtimeStreams.server.tspackages/cli-v3/src/apiClient.tsapps/webapp/app/routes/otel.v1.metrics.tsinternal-packages/clickhouse/src/client/client.ts
📚 Learning: 2026-03-22T19:24:14.403Z
Learnt from: matt-aitken
Repo: triggerdotdev/trigger.dev PR: 3187
File: apps/webapp/app/v3/services/alerts/deliverErrorGroupAlert.server.ts:200-204
Timestamp: 2026-03-22T19:24:14.403Z
Learning: In the triggerdotdev/trigger.dev codebase, webhook URLs are not expected to contain embedded credentials/secrets (e.g., fields like `ProjectAlertWebhookProperties` should only hold credential-free webhook endpoints). During code review, if you see logging or inclusion of raw webhook URLs in error messages, do not automatically treat it as a credential-leak/secrets-in-logs issue by default—first verify the URL does not contain embedded credentials (for example, no username/password in the URL, no obvious secret/token query params or fragments). If the URL is credential-free per this project’s conventions, allow the logging.
Applied to files:
apps/webapp/app/routes/otel.v1.logs.tsapps/webapp/app/routes/otel.v1.traces.tsapps/webapp/app/services/realtime/redisRealtimeStreams.server.tspackages/cli-v3/src/apiClient.tsapps/webapp/app/routes/otel.v1.metrics.tsinternal-packages/clickhouse/src/client/client.ts
📚 Learning: 2025-11-27T16:26:44.496Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .cursor/rules/executing-commands.mdc:0-0
Timestamp: 2025-11-27T16:26:44.496Z
Learning: Execute most monorepo commands using `pnpm run` from the root directory, with `--filter` flag for specific packages (e.g., `pnpm run dev --filter webapp`)
Applied to files:
packages/core/package.jsonpackages/schema-to-json/package.json
📚 Learning: 2026-03-25T15:29:25.889Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .cursor/rules/writing-tasks.mdc:0-0
Timestamp: 2026-03-25T15:29:25.889Z
Learning: Applies to **/trigger/**/*.{ts,tsx,js,jsx} : Use `schedules.task()` for scheduled (cron) tasks with either declarative cron patterns or imperative schedule creation
Applied to files:
internal-packages/schedule-engine/package.json
📚 Learning: 2026-01-15T10:48:02.687Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T10:48:02.687Z
Learning: Use pnpm as the package manager (version 10.23.0 or later) and Node.js 20.20.0
Applied to files:
packages/python/package.jsonpackage.json
📚 Learning: 2026-03-27T22:45:00.623Z
Learnt from: nicktrn
Repo: triggerdotdev/trigger.dev PR: 3114
File: apps/supervisor/src/index.ts:252-281
Timestamp: 2026-03-27T22:45:00.623Z
Learning: In `apps/supervisor/src/index.ts`, compute supervisors (COMPUTE_GATEWAY_URL set) and K8s/Docker supervisors are always separate deployments. A compute supervisor will never receive K8s/Docker checkpoint messages, so there is no routing mismatch between the compute restore path and the legacy `checkpointClient.restoreRun()` path. Do not flag this as an architectural concern.
Applied to files:
apps/supervisor/package.json
📚 Learning: 2026-03-02T12:42:47.652Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: apps/supervisor/CLAUDE.md:0-0
Timestamp: 2026-03-02T12:42:47.652Z
Learning: Applies to apps/supervisor/src/env.ts : Environment configuration should be defined in `src/env.ts`
Applied to files:
apps/supervisor/package.json
📚 Learning: 2026-03-21T21:23:35.117Z
Learnt from: ericallam
Repo: triggerdotdev/trigger.dev PR: 3244
File: apps/webapp/app/components/runs/v3/ai/extractAISummarySpanData.ts:149-150
Timestamp: 2026-03-21T21:23:35.117Z
Learning: In `apps/webapp/app/components/runs/v3/ai/extractAISummarySpanData.ts` (and related AI span extraction files in `apps/webapp/app/components/runs/v3/ai/`), manual JSON.parse with typeof guards and type assertions is intentional. These functions are on the hot path for span rendering, so Zod validation is deliberately avoided for performance reasons. Do not suggest replacing manual JSON parsing with Zod schemas in these files.
Applied to files:
internal-packages/zod-worker/tsconfig.json
📚 Learning: 2026-04-15T15:39:06.868Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-15T15:39:06.868Z
Learning: Applies to **/*.{ts,tsx,js,jsx} : Add crumbs as you write code using `// crumbs` comments or `// `#region` crumbs` blocks. These are temporary debug instrumentation and must be stripped using `agentcrumbs strip` before merge.
Applied to files:
pnpm-workspace.yaml
📚 Learning: 2026-04-16T13:24:09.546Z
Learnt from: ericallam
Repo: triggerdotdev/trigger.dev PR: 3399
File: apps/webapp/app/services/realtime/redisRealtimeStreams.server.ts:26-42
Timestamp: 2026-04-16T13:24:09.546Z
Learning: In `apps/webapp/app/services/realtime/redisRealtimeStreams.server.ts`, `RedisRealtimeStreams` is only ever instantiated once as a process-wide singleton via `singleton("realtimeStreams", initializeRedisRealtimeStreams)` in `apps/webapp/app/services/realtime/v1StreamsGlobal.server.ts` (line 30). Therefore, the instance-level `_sharedRedis` field and `sharedRedis` getter are effectively process-scoped. Do not flag them as a per-request connection leak. The v2 streaming path uses a completely separate class (`S2RealtimeStreams`).
Applied to files:
apps/webapp/app/services/realtime/redisRealtimeStreams.server.ts
📚 Learning: 2026-04-16T14:21:11.115Z
Learnt from: ericallam
Repo: triggerdotdev/trigger.dev PR: 3368
File: apps/webapp/app/services/taskIdentifierCache.server.ts:33-39
Timestamp: 2026-04-16T14:21:11.115Z
Learning: In `apps/webapp/app/services/taskIdentifierCache.server.ts`, the `decode()` function intentionally uses a plain `JSON.parse` cast instead of Zod validation. The Redis cache is exclusively written by the internal `populateTaskIdentifierCache` function via the symmetric `encode()` helper — there is no external input path. Any shape mismatch would be a serialization bug to surface explicitly, not untrusted data to filter out. Do not suggest adding Zod validation to the `decode()` function or the `getTaskIdentifiersFromCache` return path in future reviews.
Applied to files:
apps/webapp/app/services/realtime/redisRealtimeStreams.server.ts
📚 Learning: 2026-04-16T14:07:46.808Z
Learnt from: ericallam
Repo: triggerdotdev/trigger.dev PR: 3399
File: apps/webapp/app/services/realtime/redisRealtimeStreams.server.ts:282-291
Timestamp: 2026-04-16T14:07:46.808Z
Learning: In `apps/webapp/app/services/realtime/redisRealtimeStreams.server.ts` (`streamResponse`), the pattern `signal.addEventListener("abort", cleanup, { once: true })` does NOT need an explicit `removeEventListener` call in the non-abort cleanup paths (inactivity, cancel). The `AbortController` is per-request, scoped to `httpAsyncStorage` (created in `apps/webapp/server.ts` per-request middleware), so it gets GC'd when the request ends — taking the listener and closure with it. The `isCleanedUp` guard prevents double-execution, and `redis.disconnect()` is called before the request ends. Do not flag this as a listener/closure leak.
Applied to files:
apps/webapp/app/services/realtime/redisRealtimeStreams.server.ts
📚 Learning: 2026-04-20T15:06:11.054Z
Learnt from: ericallam
Repo: triggerdotdev/trigger.dev PR: 3417
File: apps/webapp/app/routes/realtime.v1.streams.$runId.$target.$streamId.append.ts:16-26
Timestamp: 2026-04-20T15:06:11.054Z
Learning: In `apps/webapp/app/routes/realtime.v1.streams.$runId.$target.$streamId.append.ts` and `apps/webapp/app/routes/realtime.v1.sessions.$session.$io.append.ts`, the `MAX_APPEND_BODY_BYTES` cap of 512 KiB (1024 * 512) is intentional even though `appendPart` wraps the body in JSON (which could expand quote-heavy payloads beyond S2's 1 MiB per-record limit). The maintainer considers worst-case quote-heavy payloads pathological and not realistic. If S2 rejections occur in practice, an encoded-size guard will be added inside `appendPart` rather than lowering the raw body cap on every caller. Do not flag this as an issue in future reviews.
Applied to files:
apps/webapp/app/services/realtime/redisRealtimeStreams.server.ts
📚 Learning: 2026-03-26T09:02:07.973Z
Learnt from: myftija
Repo: triggerdotdev/trigger.dev PR: 3274
File: apps/webapp/app/services/runsReplicationService.server.ts:922-924
Timestamp: 2026-03-26T09:02:07.973Z
Learning: When parsing Trigger.dev task run annotations in server-side services, keep `TaskRun.annotations` strictly conforming to the `RunAnnotations` schema from `trigger.dev/core/v3`. If the code already uses `RunAnnotations.safeParse` (e.g., in a `#parseAnnotations` helper), treat that as intentional/necessary for atomic, schema-accurate annotation handling. Do not recommend relaxing the annotation payload schema or using a permissive “passthrough” parse path, since the annotations are expected to be written atomically in one operation and should not contain partial/legacy payloads that would require a looser parser.
Applied to files:
apps/webapp/app/services/realtime/redisRealtimeStreams.server.ts
📚 Learning: 2026-01-08T15:57:09.323Z
Learnt from: CR
Repo: triggerdotdev/trigger.dev PR: 0
File: .cursor/rules/otel-metrics.mdc:0-0
Timestamp: 2026-01-08T15:57:09.323Z
Learning: Applies to **/*.ts : When exporting OTEL metrics via OTLP to Prometheus, be aware that the exporter automatically adds unit suffixes to metric names (e.g., 'my_duration_ms' becomes 'my_duration_ms_milliseconds', 'my_counter' becomes 'my_counter_total'). Account for these transformations when writing Grafana dashboards or Prometheus queries
Applied to files:
apps/webapp/app/routes/otel.v1.metrics.ts
| "@types/node": "20.19.39", | ||
| "@typescript/native-preview": "7.0.0-dev.20260421.2", |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Description: Verify registry metadata for the pinned compiler packages and confirm pnpm-lock.yaml contains them.
# Expected:
# - `@typescript/native-preview` metadata includes a tsgo bin and platform optional dependencies.
# - `@types/node`@20.19.39 exists.
# - pnpm-lock.yaml includes `@typescript/native-preview` and platform package entries.
npm view `@typescript/native-preview`@7.0.0-dev.20260421.2 bin optionalDependencies --json
npm view `@types/node`@20.19.39 version --json
lockfile="$(fd -H '^pnpm-lock\.yaml$' | head -n 1)"
test -n "$lockfile"
rg -n '@typescript/native-preview|@typescript/native-preview-|@types/node' "$lockfile"Repository: triggerdotdev/trigger.dev
Length of output: 787
Regenerate pnpm-lock.yaml to include @typescript/native-preview and its platform packages.
The @typescript/native-preview@7.0.0-dev.20260421.2 package is properly configured in the registry with the tsgo binary and all platform-specific optional dependencies. However, pnpm-lock.yaml does not include entries for this package or its platform variants. Run pnpm install to update the lockfile.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@package.json` around lines 55 - 56, Run pnpm install to regenerate
pnpm-lock.yaml so the new package
`@typescript/native-preview`@7.0.0-dev.20260421.2 and its platform-specific
optional dependencies are recorded; after installing, verify the lockfile
contains entries for "@typescript/native-preview" and its platform variants
(tsgo binary/platform packages), then commit the updated pnpm-lock.yaml.
| "build": "tshy && pnpm run update-version", | ||
| "dev": "tshy --watch", | ||
| "typecheck": "tsc --noEmit", | ||
| "typecheck": "tsgo --noEmit", |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Description: Check whether this PR includes a changeset mentioning the touched public packages.
# Expected: at least one .changeset markdown file references `@trigger.dev/rsc`, `@trigger.dev/core`, or `@trigger.dev/sdk`,
# unless maintainers intentionally approve no changeset for this tooling-only change.
changeset_files="$(fd -H -e md | rg '(^|/)\.changeset/' || true)"
if [ -z "$changeset_files" ]; then
echo "No .changeset markdown files found."
exit 1
fi
printf '%s\n' "$changeset_files" | xargs rg -n '@trigger\.dev/(rsc|core|sdk)'Repository: triggerdotdev/trigger.dev
Length of output: 133
🏁 Script executed:
#!/bin/bash
# Search all changeset files (including non-markdown) for any mention of `@trigger.dev/rsc`
fd -H '\.changeset' -type f | xargs cat 2>/dev/null | grep -i 'rsc\|@trigger\.dev/rsc' || echo "No changeset entries found for `@trigger.dev/rsc`"Repository: triggerdotdev/trigger.dev
Length of output: 304
🏁 Script executed:
#!/bin/bash
# List all changeset markdown files to see what's covered
fd -H '\.changeset' -name '*.md' -type fRepository: triggerdotdev/trigger.dev
Length of output: 299
🏁 Script executed:
#!/bin/bash
# Check the git diff for packages/rsc/package.json to see what changed
git diff HEAD -- packages/rsc/package.json || echo "Unable to show diff"Repository: triggerdotdev/trigger.dev
Length of output: 51
🏁 Script executed:
#!/bin/bash
# List all changeset markdown files
find .changeset -name '*.md' 2>/dev/null | sortRepository: triggerdotdev/trigger.dev
Length of output: 125
🏁 Script executed:
#!/bin/bash
# Show changeset directory contents
ls -la .changeset/ 2>/dev/null | head -20Repository: triggerdotdev/trigger.dev
Length of output: 379
🏁 Script executed:
#!/bin/bash
# Try to get the diff for packages/rsc/package.json using git show or status
git status packages/rsc/package.json 2>/dev/null || echo "File status check failed"
git log --oneline -n 5 -- packages/rsc/package.json 2>/dev/null || echo "Git log check failed"Repository: triggerdotdev/trigger.dev
Length of output: 197
🏁 Script executed:
#!/bin/bash
# Let's check the actual content of packages/rsc/package.json around line 35
cat -n packages/rsc/package.json | sed -n '30,40p'Repository: triggerdotdev/trigger.dev
Length of output: 494
🏁 Script executed:
#!/bin/bash
# Check if packages/rsc/package.json was recently modified
git log --all --oneline -- packages/rsc/package.json | head -10Repository: triggerdotdev/trigger.dev
Length of output: 482
🏁 Script executed:
#!/bin/bash
# See what the truncate-error-stacks.md changeset actually covers
cat .changeset/truncate-error-stacks.mdRepository: triggerdotdev/trigger.dev
Length of output: 394
🏁 Script executed:
#!/bin/bash
# Check which packages have the same typecheck script change
grep -r '"typecheck": "tsgo --noEmit"' packages/*/package.json 2>/dev/null | cut -d: -f1Repository: triggerdotdev/trigger.dev
Length of output: 162
🏁 Script executed:
#!/bin/bash
# Check what other packages were modified in the same commit
git show --name-only d69e5464 | grep -E 'packages/.*/package\.json'Repository: triggerdotdev/trigger.dev
Length of output: 1843
🏁 Script executed:
#!/bin/bash
# Verify if packages/rsc is actually in the PR/commit being reviewed
git diff HEAD~1 HEAD -- packages/rsc/package.json 2>/dev/null | head -20 || echo "No recent diff found"Repository: triggerdotdev/trigger.dev
Length of output: 51
🏁 Script executed:
#!/bin/bash
# Check the changeset config to see if there are any special skip rules
cat .changeset/config.json 2>/dev/nullRepository: triggerdotdev/trigger.dev
Length of output: 655
🏁 Script executed:
#!/bin/bash
# Let's see what the previous typecheck command was in these files (if git history shows)
git show d69e5464~1:packages/rsc/package.json 2>/dev/null | sed -n '30,40p'Repository: triggerdotdev/trigger.dev
Length of output: 51
🏁 Script executed:
#!/bin/bash
# Let's check what packages have "ignore" status in changelog to understand the release structure
# Also, verify what changed between commits by looking at the actual file diffs
git show d69e5464 -- packages/rsc/package.json packages/react-hooks/package.json packages/trigger-sdk/package.json 2>/dev/null | head -40Repository: triggerdotdev/trigger.dev
Length of output: 1143
🏁 Script executed:
#!/bin/bash
# Check if there are any other changesets we may have missed
find .changeset -type f -name '*.md' ! -name 'README.md' -exec sh -c 'echo "=== $1 ===" && cat "$1"' _ {} \;Repository: triggerdotdev/trigger.dev
Length of output: 438
Add changesets for modified public packages.
This PR modified three public packages (@trigger.dev/rsc, @trigger.dev/react-hooks, @trigger.dev/trigger-sdk) in commit d69e546 (TypeScript 7.0 beta adoption). Only @trigger.dev/core has a changeset entry (for an unrelated error stack truncation fix). Per project policy, add changesets for the three touched packages using pnpm run changeset:add, or document why this tooling-only change is intentionally release-neutral.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@packages/rsc/package.json` at line 35, This PR modified public packages but
lacks changesets: add a changeset entry for each touched public package
"@trigger.dev/rsc", "@trigger.dev/react-hooks", and "@trigger.dev/trigger-sdk"
(commit d69e5464) by running "pnpm run changeset:add" (or manually create
.changeset/*.md files) and specify the package name and bump type, or if these
are intentional tooling-only, add a short changeset explaining the change is
release-neutral and why; ensure the new entries are committed so the releases
tooling recognizes the updates rather than only having the existing
`@trigger.dev/core` changeset.
Runtime test — TS 7 source changesTested the
No errors in webapp or CLI stdout during the test window (grepped Evidence (open)Test page (before submit) / Trace timeline (after completion):
Span drill-down / Runs list:
No screen recording — Devin session: https://app.devin.ai/sessions/89038603ea414395a95cc8681a9d0a5a |




✅ Checklist
Testing
Ran the full workspace typecheck with the native-preview compiler on every app and package:
This also builds every package whose typecheck depends on emitted outputs (core, sdk, cli-v3, database, clickhouse, run-engine, schedule-engine, replication, compute, redis-worker, react-hooks, rsc, build, schema-to-json, python), all with
tsc5.5.4 — so both pipelines are exercised.Benchmarks: tsgo 7.0 beta vs tsc 5.5.4
Measured on the development VM (AMD x86_64, 2 physical cores, 8 GB RAM, Linux 6.x, Node.js 20.20.0). Numbers are
bash timewall clock, over the same source tree, withnode_modulesalready installed, upstream packagebuildoutputs already produced and cached in Turbo (so the typecheck task is the only thing being re-run). Thetsccolumn was produced bysed-swappingtsgo→tscin everytypecheckscript, running the same commands, then reverting — no config differences.Full monorepo (45 workspaces via Turbo)
tsgo(TS 7.0 beta)tsc5.5.4pnpm run typecheck --force(typecheck cache cleared,^buildoutputs cached)pnpm run typecheck(full Turbo cache hit, no compiler runs)Single workspace —
apps/webapp(pure compiler, no Turbo)Runs
<compiler> --noEmitdirectly fromapps/webapp/, filesystem cache pre-warmed.tsgotsc5.5.4tscneedsNODE_OPTIONS=--max-old-space-size=6144; at the default 2 GB heap it aborts withv8 OrderedHashTable/Mark-Compact allocation failureafter ~52 s.Takeaways
typechecktask, both compilers are equivalent (because neither runs). This PR does not speed up the>>> FULL TURBOgreen path.tsc --noEmitonapps/webappOOMs at the default Node heap size;tsgofinishes well below 1 GB RSS.tsgo's user-CPU / wall-clock ratio is ~1.6× (close to 2 cores saturated). On dev machines with more cores the speedup should widen closer to the ~10× the TS 7 launch post measured.tscsurfaced in the benchmark runs (TS2550,TS2578,TS2339,TS18048, etc.) was also surfaced bytsgo. No silent false negatives were observed.Reproducing
Changelog
Adopts the newly-announced TypeScript 7.0 beta (the Go-native
tsgocompiler) for type-checking across the monorepo. The TypeScript 5.5.4tscis retained for emit (package builds), so published artifacts are byte-for-byte identical tomain.Approach
@typescript/native-preview@7.0.0-dev.20260421.2to the rootdevDependencies. This pulls in thetsgobinary and the platform-specific native packages (@typescript/native-preview-linux-x64, etc.).@typescript/native-preview-*platform packages) topnpm-workspace.yaml'sminimumReleaseAgeExcludeso pnpm doesn't block the nightly beta on the 3-day release-age rule.tscwithtsgoonly intypecheckscripts across 30package.jsonfiles (43 occurrences).buildanddevscripts that actually emit (apps/supervisor,internal-packages/{database,compute,clickhouse,replication,run-engine,schedule-engine}) continue to usetscto avoid any runtime surprises from the beta emitter."typescript": "5.5.4"as a pnpm override so every programmatic TS consumer (typescript-eslint, vite, remix, tshy, ts-proto, etc.) continues to run against a known-stable compiler.Config changes required by TS 7.0 (= TS 6.0 semantics)
TS 6.0 removed several long-deprecated
tsconfigoptions. The following edits make existing configs forward-compatible while staying valid fortsc5.5.4:apps/webapp/tsconfig.json: droppedbaseUrl(removed in TS 6.0;pathsalone is sufficient)..configs/tsconfig.base.json: droppeddownlevelIteration(removed in TS 6.0; modern targets don't need it).moduleResolution: "node"/"Node"→"bundler"in the five packages that still used the legacy value:internal-packages/{tsql,zod-worker,testcontainers,emails}. Those packages are typecheck-only (--noEmit), sobundleris the least-invasive choice; I bumpedmoduletoESNextinzod-worker/testcontainersto satisfy the bundler-resolution constraint.internal-packages/databasestill emits withtsc, sotsconfig.jsonkeepsmoduleResolution: "node"for the build. Typecheck goes through a newtsconfig.typecheck.jsonthat extends it and setsmoduleResolution: "bundler"/module: "ESNext".internal-packages/otlp-importer/tsconfig.json: added"types": ["node"]. tsgo doesn't auto-include@types/nodeas eagerly as tsc whenlibalready pulls in DOM.Dependency bump
@types/node:20.14.14→20.19.39(direct dep and pnpm override, pluspackages/python). TS 7's lib.d.ts tightensUint8Array<TArrayBuffer extends ArrayBufferLike>, so the older types drove ~30 genuineBuffervsUint8Arraymismatches inotlp-importergenerated code and webapp routes. The bump reconciles them.Source-level fixes flushed out by the stricter checker
All minimal, bug-for-bug equivalent:
apps/webapp/app/routes/otel.v1.{logs,metrics,traces}.ts:new Response(buf)with a protobufUint8Arraynow needs an explicitas BodyInitcast (DOM'sBodyInitunion vs. node's genericUint8Array).apps/webapp/app/services/realtime/redisRealtimeStreams.server.ts: castnew TextDecoderStream()throughReadableWritablePair<string, Uint8Array>for the same reason.apps/webapp/test/setup-test-env.ts: removed a danglingimport "@testing-library/jest-dom/extend-expect"— the package isn't in the dep tree and this file isn't wired into the vitest setup, so the import was dead.internal-packages/clickhouse/src/client/client.ts: typedrow.json<Record<number, unknown>>()so subsequent index access type-checks (previously inferredunknown).packages/cli-v3/src/apiClient.ts: pre-existing bug —onConnectionErrorwas readingerror.status, but theeventsource@3ErrorEventfield iserror.code. User-visible in thetrigger.dev deployerror message for SSE connection failures.What this does not do
build/devemission to tsgo. tsgo still has rough edges around--watchand some emit options, and switching would change shipped artifacts. This PR is pure typechecker swap.typescriptversion (5.5.4). tsgo implements TS 6.0 semantics today; the JStscstays put until TS 6.x / 7.x ships stable.@types/nodepast the 20.x line (pinned because the runtime is Node 20.20.0).Screenshots
n/a — dev tooling only.
Link to Devin session: https://app.devin.ai/sessions/89038603ea414395a95cc8681a9d0a5a
Requested by: @ericallam