chore: retire legacy v3 dev websocket + delete legacy self-hosting docs#4198
Conversation
… docs The v3 (engine V1) is end-of-lifed and enforced off in prod. Remove the dead legacy execution behind the deprecated dev websocket while KEEPING the user-facing deprecation message so old `trigger dev` CLIs are still told to upgrade: - app/v3/handleWebsockets.server.ts: the /ws websocket is only used by the legacy v3 dev CLI (v4 uses a different transport). Authenticate, then close with V3_DEV_DEPRECATION_MESSAGE. Drops the AuthenticatedSocketConnection / DevQueueConsumer legacy path that can no longer run. - Delete app/v3/authenticatedSocketConnection.server.ts (its only consumer). Docs: delete the intentionally-legacy 'Docker (legacy)' self-hosting page and redirect /open-source-self-hosting (+ the /v3 alias) to /self-hosting/overview; repoint the two inbound links. Scoped deliberately: MarQS and the rest of the v3-engine removal are left for a follow-up - MarQS is entangled with live v2 queue/metrics/cleanup code and needs a per-file reviewed pass, not a bulk delete.
|
|
Caution Review failedFailed to post review comments. GitHub was unavailable or timed out while CodeRabbit was posting the review. Please request a new review later if the pull request still needs one. This happened while posting 1 inline comment. Use ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (7)
💤 Files with no reviewable changes (2)
⏰ Context from checks skipped due to timeout. (14)
🧰 Additional context used📓 Path-based instructions (8){.changeset/**/*.md,.server-changes/**/*.md}📄 CodeRabbit inference engine (AGENTS.md)
Files:
docs/**/*.mdx📄 CodeRabbit inference engine (docs/CLAUDE.md)
Files:
**/*.{ts,tsx}📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Files:
{packages/core,apps/webapp}/**/*.{ts,tsx}📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Files:
**/*.{ts,tsx,js,jsx}📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Files:
**/*.ts📄 CodeRabbit inference engine (.cursor/rules/otel-metrics.mdc)
Files:
apps/webapp/**/*.{ts,tsx}📄 CodeRabbit inference engine (.cursor/rules/webapp.mdc)
Files:
docs/**/docs.json📄 CodeRabbit inference engine (docs/CLAUDE.md)
Files:
🧠 Learnings (19)📚 Learning: 2026-05-14T14:54:39.095ZApplied to files:
📚 Learning: 2026-03-10T12:44:14.176ZApplied to files:
📚 Learning: 2026-04-30T20:30:29.458ZApplied to files:
📚 Learning: 2026-03-22T13:26:12.060ZApplied to files:
📚 Learning: 2026-03-22T19:24:14.403ZApplied to files:
📚 Learning: 2026-05-18T08:21:27.694ZApplied to files:
📚 Learning: 2026-05-18T08:21:27.694ZApplied to files:
📚 Learning: 2026-06-13T19:53:13.759ZApplied to files:
📚 Learning: 2026-06-17T17:13:49.929ZApplied to files:
📚 Learning: 2026-06-23T13:04:21.413ZApplied to files:
📚 Learning: 2026-03-29T19:16:28.864ZApplied to files:
📚 Learning: 2026-06-09T16:27:26.195ZApplied to files:
📚 Learning: 2026-05-05T09:38:02.512ZApplied to files:
📚 Learning: 2026-05-12T21:04:05.815ZApplied to files:
📚 Learning: 2026-06-25T18:21:51.905ZApplied to files:
📚 Learning: 2026-07-03T17:10:21.498ZApplied to files:
📚 Learning: 2026-05-14T08:21:07.614ZApplied to files:
📚 Learning: 2026-06-04T18:16:35.386ZApplied to files:
📚 Learning: 2026-06-09T17:58:04.699ZApplied to files:
WalkthroughThis PR retires legacy v3 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ 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 |
## Summary 1 improvement, 2 bug fixes. ## Breaking changes - Removed support for the end-of-life v3 `trigger dev` CLI. Starting a dev session with an old v3 CLI now returns an upgrade message instead of connecting - upgrade to the v4 CLI to continue using `trigger dev`. ([#4198](#4198)) ## Bug fixes - Fix TS2742 ("inferred type cannot be named") when exporting a `chat.agent` from a project with declaration emit: `ChatTaskWirePayload` and `ChatInputChunk` are now declared in the public `@trigger.dev/sdk/chat` subpath, so inferred agent types emit portable declarations and the wire types are directly importable. ([#4218](#4218)) ## Server changes These changes affect the self-hosted Docker image and Trigger.dev Cloud: - Reduce primary database load on the runs page by serving its empty-state check from ClickHouse instead of Postgres. ([#4202](#4202)) - Fixed submitting your email on the login page reloading back to an empty form instead of showing the magic link confirmation screen. ([#4215](#4215)) <details> <summary>Raw changeset output</summary> # Releases ## @trigger.dev/build@4.5.3 ### Patch Changes - Updated dependencies: - `@trigger.dev/core@4.5.3` ## trigger.dev@4.5.3 ### Patch Changes - Updated dependencies: - `@trigger.dev/build@4.5.3` - `@trigger.dev/core@4.5.3` - `@trigger.dev/schema-to-json@4.5.3` ## @trigger.dev/python@4.5.3 ### Patch Changes - Updated dependencies: - `@trigger.dev/sdk@4.5.3` - `@trigger.dev/build@4.5.3` - `@trigger.dev/core@4.5.3` ## @trigger.dev/react-hooks@4.5.3 ### Patch Changes - Updated dependencies: - `@trigger.dev/core@4.5.3` ## @trigger.dev/redis-worker@4.5.3 ### Patch Changes - Updated dependencies: - `@trigger.dev/core@4.5.3` ## @trigger.dev/rsc@4.5.3 ### Patch Changes - Updated dependencies: - `@trigger.dev/core@4.5.3` ## @trigger.dev/schema-to-json@4.5.3 ### Patch Changes - Updated dependencies: - `@trigger.dev/core@4.5.3` ## @trigger.dev/sdk@4.5.3 ### Patch Changes - Fix TS2742 ("inferred type cannot be named") when exporting a `chat.agent` from a project with declaration emit: `ChatTaskWirePayload` and `ChatInputChunk` are now declared in the public `@trigger.dev/sdk/chat` subpath, so inferred agent types emit portable declarations and the wire types are directly importable. ([#4218](#4218)) - Updated dependencies: - `@trigger.dev/core@4.5.3` ## @trigger.dev/core@4.5.3 </details> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Follow-up to #4194 (v3 execution app + core-helper removal). The v3 (engine V1) is end-of-lifed and enforced off in prod, so this removes a self-contained slice of the remaining dead v3 code while keeping every user-facing deprecation message - a user still on v3 must still be told to upgrade.
Legacy dev websocket
app/v3/handleWebsockets.server.tsbacks the/wstransport used only by the legacy v3trigger devCLI (v4 dev uses a different transport). It's now authenticate-then-close withV3_DEV_DEPRECATION_MESSAGE, so an old CLI is still told what to do - only the legacyAuthenticatedSocketConnection/DevQueueConsumerexecution behind it (which can no longer run) is removed.app/v3/authenticatedSocketConnection.server.ts(its only consumer).engineDeprecation.server.tsand the deprecation message constants are untouched.Docs
Deleted the intentionally-legacy "Docker (legacy)" self-hosting page (
open-source-self-hosting.mdx) and redirected/open-source-self-hosting(+ the existing/v3/open-source-self-hostingalias) to/self-hosting/overview; repointed the two inbound links. The currentself-hosting/*docs already describe the v4 (single supervisor) setup.Deliberately out of scope
Despite the branch name, this PR does not touch MarQS or the socket.io coordinator/provider namespaces. Investigation found MarQS is entangled with live v2 queue/metrics/concurrency/project-cleanup code (
runQueue,queueSizeLimits,taskRunConcurrencyTracker,EnvironmentQueuePresenter,registerProjectMetrics,deleteProject), so it needs a per-file reviewed pass, not a bulk delete. That remainder stays on TRI-11883.refs TRI-11883