From bf5c102904bff7ed4190157a81f221174c1c186b Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Sat, 13 Sep 2025 15:52:45 -0700 Subject: [PATCH 1/7] chore(core): update engine runner --- packages/rivetkit/package.json | 3 +-- pnpm-lock.yaml | 34 ++++++++++++++-------------------- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/packages/rivetkit/package.json b/packages/rivetkit/package.json index 7ba5468ce..4e00006a7 100644 --- a/packages/rivetkit/package.json +++ b/packages/rivetkit/package.json @@ -148,7 +148,6 @@ }, "sideEffects": false, "scripts": { - "dev": "pnpm build --watch", "build": "tsup src/mod.ts src/client/mod.ts src/common/log.ts src/common/websocket.ts src/actor/errors.ts src/topologies/coordinate/mod.ts src/topologies/partition/mod.ts src/utils.ts src/driver-helpers/mod.ts src/driver-test-suite/mod.ts src/test/mod.ts src/inspector/mod.ts", "build:schema": "./scripts/compile-bare.ts compile schemas/client-protocol/v1.bare -o dist/schemas/client-protocol/v1.ts && ./scripts/compile-bare.ts compile schemas/file-system-driver/v1.bare -o dist/schemas/file-system-driver/v1.ts && ./scripts/compile-bare.ts compile schemas/actor-persist/v1.bare -o dist/schemas/actor-persist/v1.ts", "check-types": "tsc --noEmit", @@ -160,7 +159,7 @@ "@bare-ts/lib": "~0.3.0", "@hono/standard-validator": "^0.1.3", "@hono/zod-openapi": "^0.19.10", - "@rivetkit/engine-runner": "https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner@664a377", + "@rivetkit/engine-runner": "https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner@eed1afb", "@rivetkit/fast-json-patch": "^3.1.2", "cbor-x": "^1.6.0", "hono": "^4.7.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fb230220f..d5d2223b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1131,8 +1131,8 @@ importers: specifier: ^0.19.10 version: 0.19.10(hono@4.8.3)(zod@3.25.76) '@rivetkit/engine-runner': - specifier: https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner@664a377 - version: https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner@664a377 + specifier: https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner@eed1afb + version: https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner@eed1afb '@rivetkit/fast-json-patch': specifier: ^3.1.2 version: 3.1.2 @@ -2505,16 +2505,16 @@ packages: '@rivet-gg/actor-core@25.2.0': resolution: {integrity: sha512-4K72XcDLVAz44Ae6G6GuyzWyxQZOLN8jM/W+sVKm6fHr70X8FNCSC5+/9hFIxz/OH9E6q6Wi3V/UN/k6immUBQ==} - '@rivetkit/engine-runner-protocol@https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner-protocol@664a377784e8296d6c3f5617a1ec45ab977dc9f8': - resolution: {tarball: https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner-protocol@664a377784e8296d6c3f5617a1ec45ab977dc9f8} + '@rivetkit/engine-runner-protocol@https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner-protocol@eed1afbae69d69a4e4b1b2edadc6bcc6a03272de': + resolution: {tarball: https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner-protocol@eed1afbae69d69a4e4b1b2edadc6bcc6a03272de} version: 1.0.0 - '@rivetkit/engine-runner@https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner@664a377': - resolution: {tarball: https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner@664a377} + '@rivetkit/engine-runner@https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner@eed1afb': + resolution: {tarball: https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner@eed1afb} version: 0.0.0 - '@rivetkit/engine-tunnel-protocol@https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-tunnel-protocol@664a377784e8296d6c3f5617a1ec45ab977dc9f8': - resolution: {tarball: https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-tunnel-protocol@664a377784e8296d6c3f5617a1ec45ab977dc9f8} + '@rivetkit/engine-tunnel-protocol@https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-tunnel-protocol@eed1afbae69d69a4e4b1b2edadc6bcc6a03272de': + resolution: {tarball: https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-tunnel-protocol@eed1afbae69d69a4e4b1b2edadc6bcc6a03272de} version: 1.0.0 '@rivetkit/fast-json-patch@3.1.2': @@ -4605,10 +4605,6 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - uuid@12.0.0: - resolution: {integrity: sha512-USe1zesMYh4fjCA8ZH5+X5WIVD0J4V1Jksm1bFTVBX2F/cwSXt0RO5w/3UXbdLKmZX65MiWV+hwhSS8p6oBTGA==} - hasBin: true - vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -5811,21 +5807,21 @@ snapshots: dependencies: zod: 3.25.76 - '@rivetkit/engine-runner-protocol@https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner-protocol@664a377784e8296d6c3f5617a1ec45ab977dc9f8': + '@rivetkit/engine-runner-protocol@https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner-protocol@eed1afbae69d69a4e4b1b2edadc6bcc6a03272de': dependencies: '@bare-ts/lib': 0.4.0 - '@rivetkit/engine-runner@https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner@664a377': + '@rivetkit/engine-runner@https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner@eed1afb': dependencies: - '@rivetkit/engine-runner-protocol': https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner-protocol@664a377784e8296d6c3f5617a1ec45ab977dc9f8 - '@rivetkit/engine-tunnel-protocol': https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-tunnel-protocol@664a377784e8296d6c3f5617a1ec45ab977dc9f8 - uuid: 12.0.0 + '@rivetkit/engine-runner-protocol': https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner-protocol@eed1afbae69d69a4e4b1b2edadc6bcc6a03272de + '@rivetkit/engine-tunnel-protocol': https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-tunnel-protocol@eed1afbae69d69a4e4b1b2edadc6bcc6a03272de + pino: 9.9.5 ws: 8.18.3 transitivePeerDependencies: - bufferutil - utf-8-validate - '@rivetkit/engine-tunnel-protocol@https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-tunnel-protocol@664a377784e8296d6c3f5617a1ec45ab977dc9f8': + '@rivetkit/engine-tunnel-protocol@https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-tunnel-protocol@eed1afbae69d69a4e4b1b2edadc6bcc6a03272de': dependencies: '@bare-ts/lib': 0.4.0 @@ -8086,8 +8082,6 @@ snapshots: util-deprecate@1.0.2: {} - uuid@12.0.0: {} - vary@1.1.2: {} vite-node@3.2.4(@types/node@20.19.9)(tsx@4.20.3)(yaml@2.8.0): From d742ff18e29a830c50d3236850d29e03447ad490 Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Sun, 14 Sep 2025 11:49:05 -0700 Subject: [PATCH 2/7] chore(core): add logger to engine runner --- packages/rivetkit/src/drivers/engine/actor-driver.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/rivetkit/src/drivers/engine/actor-driver.ts b/packages/rivetkit/src/drivers/engine/actor-driver.ts index d579756ed..9ed7ea8c3 100644 --- a/packages/rivetkit/src/drivers/engine/actor-driver.ts +++ b/packages/rivetkit/src/drivers/engine/actor-driver.ts @@ -8,6 +8,7 @@ import { WSContext } from "hono/ws"; import invariant from "invariant"; import { EncodingSchema } from "@/actor/protocol/serde"; import type { Client } from "@/client/client"; +import { getLogger } from "@/common/log"; import { type ActorDriver, type AnyActorInstance, @@ -119,6 +120,7 @@ export class EngineActorDriver implements ActorDriver { websocket: this.#runnerWebSocket.bind(this), onActorStart: this.#runnerOnActorStart.bind(this), onActorStop: this.#runnerOnActorStop.bind(this), + logger: getLogger("engine-runner"), }; // Create and start runner From d91b21693020cef9791ac497ed719f1386c3916b Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Sun, 14 Sep 2025 11:49:12 -0700 Subject: [PATCH 3/7] chore(core): add readme --- AGENTS.md | 2 +- packages/cloudflare-workers/README.md | 2 +- packages/cloudflare-workers/package.json | 1 + packages/db/README.md | 11 +++++++++++ packages/db/package.json | 1 + packages/framework-base/README.md | 2 +- packages/framework-base/package.json | 1 + packages/next-js/package.json | 1 + packages/react/README.md | 2 +- packages/react/package.json | 1 + packages/rivetkit/README.md | 11 +++++++++++ packages/rivetkit/package.json | 1 + packages/sql-loader/README.md | 11 +++++++++++ packages/sql-loader/package.json | 1 + 14 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 packages/db/README.md create mode 100644 packages/rivetkit/README.md create mode 100644 packages/sql-loader/README.md diff --git a/AGENTS.md b/AGENTS.md index 70b1fd7b4..b9939356b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -17,7 +17,7 @@ Always include a README.md for new packages. The `README.md` should always follo ```md # RivetKit {subname, e.g. library: Rivet Actor, driver and platform: RivetKit Cloudflare Workers Adapter} - _Lightweight Libraries for Backends_ + _Library to build and scale stateful workloads_ [Learn More →](https://github.com/rivet-gg/rivetkit) diff --git a/packages/cloudflare-workers/README.md b/packages/cloudflare-workers/README.md index 6a8204849..625bc38ce 100644 --- a/packages/cloudflare-workers/README.md +++ b/packages/cloudflare-workers/README.md @@ -1,6 +1,6 @@ # RivetKit Cloudflare Workers Adapter -_Lightweight Libraries for Backends_ +_Library to build and scale stateful workloads_ [Learn More →](https://github.com/rivet-gg/rivetkit) diff --git a/packages/cloudflare-workers/package.json b/packages/cloudflare-workers/package.json index 229adbfca..383a2f08a 100644 --- a/packages/cloudflare-workers/package.json +++ b/packages/cloudflare-workers/package.json @@ -1,6 +1,7 @@ { "name": "@rivetkit/cloudflare-workers", "version": "2.0.3", + "description": "Cloudflare Workers adapter for RivetKit actors", "keywords": [ "rivetkit", "cloudflare", diff --git a/packages/db/README.md b/packages/db/README.md new file mode 100644 index 000000000..ad66789ec --- /dev/null +++ b/packages/db/README.md @@ -0,0 +1,11 @@ +# RivetKit Database + +_Lightweight Libraries for Backends_ + +[Learn More →](https://github.com/rivet-gg/rivetkit) + +[Discord](https://rivet.gg/discord) — [Documentation](https://rivetkit.org) — [Issues](https://github.com/rivet-gg/rivetkit/issues) + +## License + +Apache 2.0 \ No newline at end of file diff --git a/packages/db/package.json b/packages/db/package.json index b9befb4a7..f39e9a10d 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -1,6 +1,7 @@ { "name": "@rivetkit/db", "version": "2.0.3", + "description": "Database providers and adapters for RivetKit actors", "license": "Apache-2.0", "sideEffects": false, "type": "module", diff --git a/packages/framework-base/README.md b/packages/framework-base/README.md index 81b8867ee..2e31226cc 100644 --- a/packages/framework-base/README.md +++ b/packages/framework-base/README.md @@ -1,6 +1,6 @@ # RivetKit Framework Base -_Lightweight Libraries for Backends_ +_Library to build and scale stateful workloads_ [Learn More →](https://github.com/rivet-gg/rivetkit) diff --git a/packages/framework-base/package.json b/packages/framework-base/package.json index d75043a59..2a2c4f49d 100644 --- a/packages/framework-base/package.json +++ b/packages/framework-base/package.json @@ -1,6 +1,7 @@ { "name": "@rivetkit/framework-base", "version": "2.0.3", + "description": "Base framework utilities for RivetKit client integrations", "license": "Apache-2.0", "keywords": [ "rivetkit", diff --git a/packages/next-js/package.json b/packages/next-js/package.json index f2840764c..9ceefe7dc 100644 --- a/packages/next-js/package.json +++ b/packages/next-js/package.json @@ -1,6 +1,7 @@ { "name": "@rivetkit/next-js", "version": "2.0.3", + "description": "Next.js integration for RivetKit actors and client", "license": "Apache-2.0", "keywords": [ "rivetkit", diff --git a/packages/react/README.md b/packages/react/README.md index bd8da28af..515f8c1fe 100644 --- a/packages/react/README.md +++ b/packages/react/README.md @@ -1,6 +1,6 @@ # RivetKit React -_Lightweight Libraries for Backends_ +_Library to build and scale stateful workloads_ [Learn More →](https://github.com/rivet-gg/rivetkit) diff --git a/packages/react/package.json b/packages/react/package.json index 121f86b6d..7cc18fa9e 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,7 @@ { "name": "@rivetkit/react", "version": "2.0.3", + "description": "React hooks and components for RivetKit client applications", "license": "Apache-2.0", "keywords": [ "rivetkit", diff --git a/packages/rivetkit/README.md b/packages/rivetkit/README.md new file mode 100644 index 000000000..dc68e8261 --- /dev/null +++ b/packages/rivetkit/README.md @@ -0,0 +1,11 @@ +# RivetKit + +_Library to build and scale stateful workloads_ + +[Learn More →](https://github.com/rivet-gg/rivetkit) + +[Discord](https://rivet.gg/discord) — [Documentation](https://rivetkit.org) — [Issues](https://github.com/rivet-gg/rivetkit/issues) + +## License + +Apache 2.0 diff --git a/packages/rivetkit/package.json b/packages/rivetkit/package.json index 4e00006a7..7c0a1e4a8 100644 --- a/packages/rivetkit/package.json +++ b/packages/rivetkit/package.json @@ -1,6 +1,7 @@ { "name": "rivetkit", "version": "2.0.3", + "description": "Lightweight libraries for building stateful actors on edge platforms", "license": "Apache-2.0", "keywords": [ "rivetkit", diff --git a/packages/sql-loader/README.md b/packages/sql-loader/README.md new file mode 100644 index 000000000..8ec361854 --- /dev/null +++ b/packages/sql-loader/README.md @@ -0,0 +1,11 @@ +# RivetKit SQL Loader + +_Lightweight Libraries for Backends_ + +[Learn More →](https://github.com/rivet-gg/rivetkit) + +[Discord](https://rivet.gg/discord) — [Documentation](https://rivetkit.org) — [Issues](https://github.com/rivet-gg/rivetkit/issues) + +## License + +Apache 2.0 \ No newline at end of file diff --git a/packages/sql-loader/package.json b/packages/sql-loader/package.json index 2e1d3ed3a..0c4a61261 100644 --- a/packages/sql-loader/package.json +++ b/packages/sql-loader/package.json @@ -1,6 +1,7 @@ { "name": "@rivetkit/sql-loader", "version": "2.0.3", + "description": "SQL file loader and migration utilities for RivetKit", "license": "Apache-2.0", "sideEffects": false, "type": "module", From 587f2df46a6d6b7c7767bc2fdd3269691293485d Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Sun, 14 Sep 2025 12:03:43 -0700 Subject: [PATCH 4/7] chore(fs): remove unneeded warning for onRunnerStart --- packages/rivetkit/src/drivers/file-system/global-state.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/rivetkit/src/drivers/file-system/global-state.ts b/packages/rivetkit/src/drivers/file-system/global-state.ts index 71d97a84e..c2e6b2f61 100644 --- a/packages/rivetkit/src/drivers/file-system/global-state.ts +++ b/packages/rivetkit/src/drivers/file-system/global-state.ts @@ -418,7 +418,6 @@ export class FileSystemGlobalState { actorDriver: ActorDriver, ) { if (this.#runnerParams) { - logger().warn("already called onRunnerStart"); return; } From d0306f767e041c296301a3ac6d81774ca8d4b8b3 Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Sun, 14 Sep 2025 12:28:54 -0700 Subject: [PATCH 5/7] chore(core): add welcome message --- .../cloudflare-workers/src/manager-driver.ts | 8 ++++++++ packages/rivetkit/scripts/dump-openapi.ts | 1 + packages/rivetkit/src/driver-helpers/mod.ts | 1 + .../src/drivers/engine/manager-driver.ts | 12 ++++++++++++ .../src/drivers/file-system/global-state.ts | 4 ++++ .../rivetkit/src/drivers/file-system/manager.ts | 11 +++++++++++ packages/rivetkit/src/manager/driver.ts | 8 ++++++++ packages/rivetkit/src/manager/mod.ts | 2 +- packages/rivetkit/src/registry/mod.ts | 16 ++++++++++++++++ packages/rivetkit/src/registry/run-config.ts | 3 +++ packages/rivetkit/tsconfig.json | 1 + 11 files changed, 66 insertions(+), 1 deletion(-) diff --git a/packages/cloudflare-workers/src/manager-driver.ts b/packages/cloudflare-workers/src/manager-driver.ts index 178b520b3..8be947e71 100644 --- a/packages/cloudflare-workers/src/manager-driver.ts +++ b/packages/cloudflare-workers/src/manager-driver.ts @@ -10,6 +10,7 @@ import { HEADER_CONN_PARAMS, HEADER_ENCODING, HEADER_EXPOSE_INTERNAL_ERROR, + type ManagerDisplayInformation, type ManagerDriver, } from "rivetkit/driver-helpers"; import { ActorAlreadyExists, InternalError } from "rivetkit/errors"; @@ -345,4 +346,11 @@ export class CloudflareActorsManagerDriver implements ManagerDriver { key: actorData.key, }; } + + displayInformation(): ManagerDisplayInformation { + return { + name: "Cloudflare Workers", + properties: {}, + }; + } } diff --git a/packages/rivetkit/scripts/dump-openapi.ts b/packages/rivetkit/scripts/dump-openapi.ts index 4b8ce6020..9962e818a 100644 --- a/packages/rivetkit/scripts/dump-openapi.ts +++ b/packages/rivetkit/scripts/dump-openapi.ts @@ -38,6 +38,7 @@ function main() { openWebSocket: unimplemented, proxyRequest: unimplemented, proxyWebSocket: unimplemented, + displayInformation: unimplemented, }; const { openapi } = createManagerRouter( diff --git a/packages/rivetkit/src/driver-helpers/mod.ts b/packages/rivetkit/src/driver-helpers/mod.ts index 0a1b13cc0..0e00cc679 100644 --- a/packages/rivetkit/src/driver-helpers/mod.ts +++ b/packages/rivetkit/src/driver-helpers/mod.ts @@ -16,6 +16,7 @@ export type { GetForIdInput, GetOrCreateWithKeyInput, GetWithKeyInput, + ManagerDisplayInformation, ManagerDriver, } from "@/manager/driver"; export { DriverConfigSchema, RunConfigSchema } from "@/registry/run-config"; diff --git a/packages/rivetkit/src/drivers/engine/manager-driver.ts b/packages/rivetkit/src/drivers/engine/manager-driver.ts index 8e7233615..c7eddf28f 100644 --- a/packages/rivetkit/src/drivers/engine/manager-driver.ts +++ b/packages/rivetkit/src/drivers/engine/manager-driver.ts @@ -18,6 +18,7 @@ import type { GetWithKeyInput, ManagerDriver, } from "@/driver-helpers/mod"; +import type { ManagerDisplayInformation } from "@/manager/driver"; import { type Encoding, noopNext, type RunConfig } from "@/mod"; import { createActor, @@ -135,6 +136,17 @@ export class EngineManagerDriver implements ManagerDriver { return await upgradeWebSocket(() => args)(c, noopNext()); } + displayInformation(): ManagerDisplayInformation { + return { + name: "Rivet Engine", + properties: { + Endpoint: this.#config.endpoint, + Namespace: this.#config.namespace, + Runner: this.#config.runnerName, + }, + }; + } + extraStartupLog() { return { engine: this.#config.endpoint, diff --git a/packages/rivetkit/src/drivers/file-system/global-state.ts b/packages/rivetkit/src/drivers/file-system/global-state.ts index c2e6b2f61..d6a6ee2d0 100644 --- a/packages/rivetkit/src/drivers/file-system/global-state.ts +++ b/packages/rivetkit/src/drivers/file-system/global-state.ts @@ -84,6 +84,10 @@ export class FileSystemGlobalState { actorDriver: ActorDriver; }; + get persist(): boolean { + return this.#persist; + } + get storagePath() { return this.#storagePath; } diff --git a/packages/rivetkit/src/drivers/file-system/manager.ts b/packages/rivetkit/src/drivers/file-system/manager.ts index 36b00bb78..fa1aabd8b 100644 --- a/packages/rivetkit/src/drivers/file-system/manager.ts +++ b/packages/rivetkit/src/drivers/file-system/manager.ts @@ -20,6 +20,7 @@ import type { import { createInlineClientDriver } from "@/inline-client-driver/mod"; import { ManagerInspector } from "@/inspector/manager"; import { type Actor, ActorFeature, type ActorId } from "@/inspector/mod"; +import type { ManagerDisplayInformation } from "@/manager/driver"; import { type DriverConfig, type Encoding, @@ -297,6 +298,16 @@ export class FileSystemManagerDriver implements ManagerDriver { }; } + displayInformation(): ManagerDisplayInformation { + return { + name: this.#state.persist ? "File System" : "Memory", + properties: { + ...(this.#state.persist ? { Data: this.#state.storagePath } : {}), + Instances: this.#state.actorCountOnStartup.toString(), + }, + }; + } + extraStartupLog() { return { instances: this.#state.actorCountOnStartup, diff --git a/packages/rivetkit/src/manager/driver.ts b/packages/rivetkit/src/manager/driver.ts index 15d20247a..5395bfcb6 100644 --- a/packages/rivetkit/src/manager/driver.ts +++ b/packages/rivetkit/src/manager/driver.ts @@ -36,6 +36,8 @@ export interface ManagerDriver { authData: unknown, ): Promise; + displayInformation(): ManagerDisplayInformation; + extraStartupLog?: () => Record; modifyManagerRouter?: (registryConfig: RegistryConfig, router: Hono) => void; @@ -45,6 +47,12 @@ export interface ManagerDriver { */ readonly inspector?: ManagerInspector; } + +export interface ManagerDisplayInformation { + name: string; + properties: Record; +} + export interface GetForIdInput { c?: HonoContext | undefined; name: string; diff --git a/packages/rivetkit/src/manager/mod.ts b/packages/rivetkit/src/manager/mod.ts index 293b5264c..beea2e0d0 100644 --- a/packages/rivetkit/src/manager/mod.ts +++ b/packages/rivetkit/src/manager/mod.ts @@ -1,2 +1,2 @@ -export { ManagerDriver } from "./driver"; +export { ManagerDisplayInformation, ManagerDriver } from "./driver"; export { createManagerRouter } from "./router"; diff --git a/packages/rivetkit/src/registry/mod.ts b/packages/rivetkit/src/registry/mod.ts index 3de1944f6..94eba9953 100644 --- a/packages/rivetkit/src/registry/mod.ts +++ b/packages/rivetkit/src/registry/mod.ts @@ -9,6 +9,7 @@ import { chooseDefaultDriver } from "@/drivers/default"; import { createInlineClientDriver } from "@/inline-client-driver/mod"; import { getInspectorUrl } from "@/inspector/utils"; import { createManagerRouter } from "@/manager/router"; +import pkg from "../../package.json" with { type: "json" }; import { type RegistryActors, type RegistryConfig, @@ -92,6 +93,21 @@ export class Registry { logger().info({ msg: "inspector ready", url: getInspectorUrl(config) }); } + // Print welcome information + if (!config.noWelcome) { + const displayInfo = managerDriver.displayInformation(); + console.log(); + console.log(` RivetKit ${pkg.version} (${displayInfo.name})`); + for (const [k, v] of Object.entries(displayInfo.properties)) { + const padding = " ".repeat(Math.max(0, 13 - k.length)); + console.log(` - ${k}:${padding}${v}`); + } + if (config.inspector?.enabled) { + console.log(` - Inspector: ${getInspectorUrl(config)}`); + } + console.log(); + } + // Create runner if (config.role === "all" || config.role === "runner") { const inlineClient = createClientWithDriver( diff --git a/packages/rivetkit/src/registry/run-config.ts b/packages/rivetkit/src/registry/run-config.ts index 46d175399..62521702f 100644 --- a/packages/rivetkit/src/registry/run-config.ts +++ b/packages/rivetkit/src/registry/run-config.ts @@ -50,6 +50,9 @@ export const RunConfigSchema = z */ basePath: z.string().optional().default("/"), + /** Disable welcome message. */ + noWelcome: z.boolean().optional().default(false), + logging: z .object({ baseLogger: z.custom().optional(), diff --git a/packages/rivetkit/tsconfig.json b/packages/rivetkit/tsconfig.json index 2aba10920..fc714fd67 100644 --- a/packages/rivetkit/tsconfig.json +++ b/packages/rivetkit/tsconfig.json @@ -2,6 +2,7 @@ "extends": "../../tsconfig.base.json", "compilerOptions": { "types": ["node"], + "resolveJsonModule": true, "paths": { "@/*": ["./src/*"], // Used for test fixtures From eccece977a2dbbbd5daf8ebf6a74699a8f790561 Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Sun, 14 Sep 2025 12:42:34 -0700 Subject: [PATCH 6/7] chore(core): remove engine runner addresses config --- packages/rivetkit/src/drivers/engine/config.ts | 10 +--------- packages/rivetkit/src/drivers/engine/manager-driver.ts | 3 --- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/packages/rivetkit/src/drivers/engine/config.ts b/packages/rivetkit/src/drivers/engine/config.ts index bba07e28c..32f5cd05b 100644 --- a/packages/rivetkit/src/drivers/engine/config.ts +++ b/packages/rivetkit/src/drivers/engine/config.ts @@ -17,21 +17,13 @@ export const ConfigSchema = z runnerName: z .string() .default(() => getEnvUniversal("RIVET_RUNNER") ?? "rivetkit"), - // TODO: Automatically attempt ot determine key by common env vars (e.g. k8s pod name) + // TODO: Automatically attempt to determine key by common env vars (e.g. k8s pod name) runnerKey: z .string() .default( () => getEnvUniversal("RIVET_RUNNER_KEY") ?? crypto.randomUUID(), ), totalSlots: z.number().default(100_000), - addresses: z - .record( - z.object({ - host: z.string(), - port: z.number(), - }), - ) - .default({ main: { host: "127.0.0.1", port: 5051 } }), }) .default({}); diff --git a/packages/rivetkit/src/drivers/engine/manager-driver.ts b/packages/rivetkit/src/drivers/engine/manager-driver.ts index c7eddf28f..3f436716c 100644 --- a/packages/rivetkit/src/drivers/engine/manager-driver.ts +++ b/packages/rivetkit/src/drivers/engine/manager-driver.ts @@ -152,9 +152,6 @@ export class EngineManagerDriver implements ManagerDriver { engine: this.#config.endpoint, namespace: this.#config.namespace, runner: this.#config.runnerName, - address: Object.values(this.#config.addresses) - .map((v) => `${v.host}:${v.port}`) - .join(", "), }; } From 09ab4a469146a46c7daef50001ef1053790d8ee6 Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Sun, 14 Sep 2025 12:58:20 -0700 Subject: [PATCH 7/7] chore(core): simplify engine keys --- packages/rivetkit/src/drivers/engine/kv.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rivetkit/src/drivers/engine/kv.ts b/packages/rivetkit/src/drivers/engine/kv.ts index 6b3fe5955..9ea919fca 100644 --- a/packages/rivetkit/src/drivers/engine/kv.ts +++ b/packages/rivetkit/src/drivers/engine/kv.ts @@ -1,3 +1,3 @@ export const KEYS = { - PERSIST_DATA: Uint8Array.from([1, 1]), + PERSIST_DATA: Uint8Array.from([1]), };