+
+
Danger Zone
+
+
+ Perform actions that could affect the stability of your Rivet
+ Actors and Runners.
+
+
+
+
+ Archive namespace '{namespace?.displayName}'
+
+
+ Archiving this namespace will permanently remove all
+ associated Rivet Actors, Runners, and configurations. This
+ action cannot be undone.
+
+
+
+
+
+
+ Archive project '{project?.displayName}'
+
+
+ Archiving this project will permanently remove all
+ associated Rivet Actors, Runners, and configurations. This
+ action cannot be undone.
+
+
+
+
+ );
+}
diff --git a/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/settings.tsx b/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/settings.tsx
new file mode 100644
index 0000000000..b340de6ed2
--- /dev/null
+++ b/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/settings.tsx
@@ -0,0 +1,96 @@
+import { faQuestionCircle, Icon } from "@rivet-gg/icons";
+import { useQuery } from "@tanstack/react-query";
+import { createFileRoute, notFound, useNavigate } from "@tanstack/react-router";
+import { match } from "ts-pattern";
+import { HelpDropdown } from "@/app/help-dropdown";
+import { Content } from "@/app/layout";
+import { RouteLayout } from "@/app/route-layout";
+import { SidebarToggle } from "@/app/sidebar-toggle";
+import { Button, H1, H3, H4 } from "@/components";
+import { useCloudProjectDataProvider } from "@/components/actors";
+
+export const Route = createFileRoute(
+ "/_context/_cloud/orgs/$organization/projects/$project/settings",
+)({
+ component: match(__APP_TYPE__)
+ .with("cloud", () => RouteComponent)
+ .otherwise(() => () => {
+ throw notFound();
+ }),
+});
+
+function RouteComponent() {
+ return (
+
+
+
Danger Zone
+
+
+ Perform actions that could affect the stability of your project.
+
+
+
+
+ Archive project '{project?.displayName}'
+
+
+ Archiving this project will permanently remove all associated
+ namespaces, Rivet Actors, Runners, and configurations. This
+ action cannot be undone.
+
+
+
+
+ );
+}
diff --git a/package.json b/package.json
index 828717f8c8..75d2d2b470 100644
--- a/package.json
+++ b/package.json
@@ -45,7 +45,7 @@
"overrides": {
"react": "19.1.0",
"react-dom": "19.1.0",
- "@rivet-gg/cloud": "https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@2243d29",
+ "@rivet-gg/cloud": "https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@edc6ad0",
"@codemirror/state": "^6.5.2"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b0570289b6..80de795a85 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -16,7 +16,7 @@ overrides:
'@clerk/shared': 3.27.1
react: 19.1.0
react-dom: 19.1.0
- '@rivet-gg/cloud': https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@2243d29
+ '@rivet-gg/cloud': https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@edc6ad0
'@codemirror/state': ^6.5.2
importers:
@@ -465,8 +465,8 @@ importers:
specifier: ^4.7.0
version: 4.7.0(monaco-editor@0.55.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@rivet-gg/cloud':
- specifier: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@2243d29
- version: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@2243d29
+ specifier: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@edc6ad0
+ version: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@edc6ad0
'@rivetkit/engine-api-full':
specifier: workspace:*
version: link:../../engine/sdks/typescript/api-full
@@ -3048,8 +3048,8 @@ importers:
specifier: ^1.2.3
version: 1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@rivet-gg/cloud':
- specifier: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@2243d29
- version: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@2243d29
+ specifier: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@edc6ad0
+ version: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@edc6ad0
'@rivet-gg/icons':
specifier: workspace:*
version: link:packages/icons
@@ -3425,7 +3425,7 @@ importers:
version: 3.13.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@uiw/codemirror-extensions-basic-setup':
specifier: ^4.25.1
- version: 4.25.1(@codemirror/autocomplete@6.19.0)(@codemirror/commands@6.9.0)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.2)
+ version: 4.25.1(@codemirror/autocomplete@6.19.0)(@codemirror/commands@6.8.1)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.2)
'@uiw/codemirror-theme-github':
specifier: ^4.25.1
version: 4.25.1(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.2)
@@ -4072,6 +4072,9 @@ importers:
'@types/node':
specifier: ^24.3.1
version: 24.3.1
+ tsx:
+ specifier: ^4.20.5
+ version: 4.20.6
shared/typescript/virtual-websocket:
devDependencies:
@@ -4124,8 +4127,8 @@ importers:
specifier: 25.5.3
version: 25.5.3
'@rivet-gg/cloud':
- specifier: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@2243d29
- version: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@2243d29
+ specifier: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@edc6ad0
+ version: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@edc6ad0
'@rivet-gg/components':
specifier: workspace:*
version: link:../frontend/packages/components
@@ -8424,8 +8427,8 @@ packages:
'@rivet-gg/api@25.5.3':
resolution: {integrity: sha512-pj8xYQ+I/aQDbThmicPxvR+TWAzGoLSE53mbJi4QZHF8VH2oMvU7CMWqy7OTFH30DIRyVzsnHHRJZKGwtmQL3g==}
- '@rivet-gg/cloud@https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@2243d29':
- resolution: {tarball: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@2243d29}
+ '@rivet-gg/cloud@https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@edc6ad0':
+ resolution: {tarball: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@edc6ad0}
version: 0.0.0
'@rivetkit/bare-ts@0.6.2':
@@ -20215,7 +20218,7 @@ snapshots:
react-simple-code-editor: 0.14.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
serve-handler: 6.1.6
tailwind-merge: 2.6.0
- tailwindcss-animate: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.3)))
+ tailwindcss-animate: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2)))
zod: 3.25.76
transitivePeerDependencies:
- '@cfworker/json-schema'
@@ -21426,7 +21429,7 @@ snapshots:
transitivePeerDependencies:
- encoding
- '@rivet-gg/cloud@https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@2243d29':
+ '@rivet-gg/cloud@https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@edc6ad0':
dependencies:
cross-fetch: 4.1.0
form-data: 4.0.5
@@ -22713,16 +22716,6 @@ snapshots:
'@codemirror/state': 6.5.2
'@codemirror/view': 6.38.2
- '@uiw/codemirror-extensions-basic-setup@4.25.1(@codemirror/autocomplete@6.19.0)(@codemirror/commands@6.9.0)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.2)':
- dependencies:
- '@codemirror/autocomplete': 6.19.0
- '@codemirror/commands': 6.9.0
- '@codemirror/language': 6.11.3
- '@codemirror/lint': 6.9.0
- '@codemirror/search': 6.5.11
- '@codemirror/state': 6.5.2
- '@codemirror/view': 6.38.2
-
'@uiw/codemirror-theme-github@4.25.1(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.2)':
dependencies:
'@uiw/codemirror-themes': 4.25.1(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.2)
diff --git a/rivetkit-typescript/packages/cloudflare-workers/src/config.ts b/rivetkit-typescript/packages/cloudflare-workers/src/config.ts
index 8d502a6cdb..d30139cf02 100644
--- a/rivetkit-typescript/packages/cloudflare-workers/src/config.ts
+++ b/rivetkit-typescript/packages/cloudflare-workers/src/config.ts
@@ -1,5 +1,5 @@
import type { Client } from "rivetkit";
-import { z } from "zod";
+import { z } from "zod/v4";
const ConfigSchemaBase = z.object({
/** Path that the Rivet manager API will be mounted. */
diff --git a/rivetkit-typescript/packages/rivetkit/src/actor/config.ts b/rivetkit-typescript/packages/rivetkit/src/actor/config.ts
index 567dc6c30c..9340815294 100644
--- a/rivetkit-typescript/packages/rivetkit/src/actor/config.ts
+++ b/rivetkit-typescript/packages/rivetkit/src/actor/config.ts
@@ -1,4 +1,4 @@
-import { z } from "zod";
+import { z } from "zod/v4";
import type { UniversalWebSocket } from "@/common/websocket-interface";
import type { Conn } from "./conn/mod";
import type {
diff --git a/rivetkit-typescript/packages/rivetkit/src/actor/protocol/old.ts b/rivetkit-typescript/packages/rivetkit/src/actor/protocol/old.ts
index cea51afbde..5a6654f684 100644
--- a/rivetkit-typescript/packages/rivetkit/src/actor/protocol/old.ts
+++ b/rivetkit-typescript/packages/rivetkit/src/actor/protocol/old.ts
@@ -1,5 +1,5 @@
import * as cbor from "cbor-x";
-import { z } from "zod";
+import { z } from "zod/v4";
import type { AnyDatabaseProvider } from "@/actor/database";
import * as errors from "@/actor/errors";
import {
diff --git a/rivetkit-typescript/packages/rivetkit/src/actor/protocol/serde.ts b/rivetkit-typescript/packages/rivetkit/src/actor/protocol/serde.ts
index f86e347656..045a637d36 100644
--- a/rivetkit-typescript/packages/rivetkit/src/actor/protocol/serde.ts
+++ b/rivetkit-typescript/packages/rivetkit/src/actor/protocol/serde.ts
@@ -1,6 +1,6 @@
import * as cbor from "cbor-x";
import type { VersionedDataHandler } from "vbare";
-import { z } from "zod";
+import { z } from "zod/v4";
import * as errors from "@/actor/errors";
import { serializeWithEncoding } from "@/serde";
import { loggerWithoutContext } from "../log";
diff --git a/rivetkit-typescript/packages/rivetkit/src/client/config.ts b/rivetkit-typescript/packages/rivetkit/src/client/config.ts
index 721c7900be..f6242c39b6 100644
--- a/rivetkit-typescript/packages/rivetkit/src/client/config.ts
+++ b/rivetkit-typescript/packages/rivetkit/src/client/config.ts
@@ -1,4 +1,4 @@
-import z from "zod";
+import z from "zod/v4";
import { EncodingSchema } from "@/actor/protocol/serde";
import { type GetUpgradeWebSocket } from "@/utils";
import {
diff --git a/rivetkit-typescript/packages/rivetkit/src/client/utils.ts b/rivetkit-typescript/packages/rivetkit/src/client/utils.ts
index f518d69e92..c4d61f02e4 100644
--- a/rivetkit-typescript/packages/rivetkit/src/client/utils.ts
+++ b/rivetkit-typescript/packages/rivetkit/src/client/utils.ts
@@ -1,7 +1,7 @@
import * as cbor from "cbor-x";
import invariant from "invariant";
import type { VersionedDataHandler } from "vbare";
-import type { z } from "zod";
+import type { z } from "zod/v4";
import type { Encoding } from "@/actor/protocol/serde";
import { assertUnreachable } from "@/common/utils";
import type { HttpResponseError } from "@/schemas/client-protocol/mod";
diff --git a/rivetkit-typescript/packages/rivetkit/src/common/log.ts b/rivetkit-typescript/packages/rivetkit/src/common/log.ts
index 6a09091b87..62dd7003d6 100644
--- a/rivetkit-typescript/packages/rivetkit/src/common/log.ts
+++ b/rivetkit-typescript/packages/rivetkit/src/common/log.ts
@@ -4,7 +4,7 @@ import {
pino,
stdTimeFunctions,
} from "pino";
-import { z } from "zod";
+import { z } from "zod/v4";
import { getLogLevel, getLogTarget, getLogTimestamp } from "@/utils/env-vars";
import {
castToLogValue,
diff --git a/rivetkit-typescript/packages/rivetkit/src/driver-test-suite/tests/raw-http-request-properties.ts b/rivetkit-typescript/packages/rivetkit/src/driver-test-suite/tests/raw-http-request-properties.ts
index cdf258880d..522af066a4 100644
--- a/rivetkit-typescript/packages/rivetkit/src/driver-test-suite/tests/raw-http-request-properties.ts
+++ b/rivetkit-typescript/packages/rivetkit/src/driver-test-suite/tests/raw-http-request-properties.ts
@@ -1,5 +1,5 @@
import { describe, expect, test } from "vitest";
-import { z } from "zod";
+import { z } from "zod/v4";
import { registry } from "../../../fixtures/driver-test-suite/registry";
import type { DriverTestConfig } from "../mod";
import { setupDriverTest } from "../utils";
diff --git a/rivetkit-typescript/packages/rivetkit/src/drivers/engine/config.ts b/rivetkit-typescript/packages/rivetkit/src/drivers/engine/config.ts
index 6720c50ba4..e1620534ff 100644
--- a/rivetkit-typescript/packages/rivetkit/src/drivers/engine/config.ts
+++ b/rivetkit-typescript/packages/rivetkit/src/drivers/engine/config.ts
@@ -1,4 +1,4 @@
-import { z } from "zod";
+import { z } from "zod/v4";
import {
ClientConfigSchemaBase,
transformClientConfig,
diff --git a/rivetkit-typescript/packages/rivetkit/src/inspector/config.ts b/rivetkit-typescript/packages/rivetkit/src/inspector/config.ts
index 8ecb692054..9db05ec2e0 100644
--- a/rivetkit-typescript/packages/rivetkit/src/inspector/config.ts
+++ b/rivetkit-typescript/packages/rivetkit/src/inspector/config.ts
@@ -1,4 +1,4 @@
-import { z } from "zod";
+import { z } from "zod/v4";
import {
getRivetkitInspectorToken,
isDev,
diff --git a/rivetkit-typescript/packages/rivetkit/src/inspector/handler.ts b/rivetkit-typescript/packages/rivetkit/src/inspector/handler.ts
index 5b8cae8e7b..ca10f33933 100644
--- a/rivetkit-typescript/packages/rivetkit/src/inspector/handler.ts
+++ b/rivetkit-typescript/packages/rivetkit/src/inspector/handler.ts
@@ -3,7 +3,7 @@ import type { Unsubscribe } from "nanoevents";
import type { UpgradeWebSocketArgs } from "@/actor/router-websocket-endpoints";
import type { AnyActorInstance, RivetMessageEvent } from "@/mod";
import type { ToClient } from "@/schemas/actor-inspector/mod";
-import { encodeReadRangeWire } from "@rivetkit/traces";
+import { encodeReadRangeWire } from "@rivetkit/traces/encoding";
import {
CURRENT_VERSION as INSPECTOR_CURRENT_VERSION,
TO_CLIENT_VERSIONED as toClient,
diff --git a/rivetkit-typescript/packages/rivetkit/src/manager-api/actors.ts b/rivetkit-typescript/packages/rivetkit/src/manager-api/actors.ts
index e5bd42290e..b92b87273b 100644
--- a/rivetkit-typescript/packages/rivetkit/src/manager-api/actors.ts
+++ b/rivetkit-typescript/packages/rivetkit/src/manager-api/actors.ts
@@ -1,4 +1,4 @@
-import { z } from "zod";
+import { z } from "zod/v4";
import { RivetIdSchema } from "./common";
export const ActorSchema = z.object({
diff --git a/rivetkit-typescript/packages/rivetkit/src/manager-api/common.ts b/rivetkit-typescript/packages/rivetkit/src/manager-api/common.ts
index f74e6c217b..e4718c6fca 100644
--- a/rivetkit-typescript/packages/rivetkit/src/manager-api/common.ts
+++ b/rivetkit-typescript/packages/rivetkit/src/manager-api/common.ts
@@ -1,4 +1,4 @@
-import { z } from "zod";
+import { z } from "zod/v4";
export const RivetIdSchema = z.string();
export type RivetId = z.infer