From bbe84e717b5ae312c0827197ab6e6d65dc5247c7 Mon Sep 17 00:00:00 2001 From: MasterPtato Date: Thu, 13 Nov 2025 18:40:57 -0800 Subject: [PATCH] chore: rename retry -> hibernate in runner protocol --- engine/packages/api-peer/src/actors/kv_get.rs | 2 +- engine/packages/api-public/src/actors/kv_get.rs | 6 +++++- engine/packages/pegboard-gateway/src/lib.rs | 4 ++-- engine/packages/pegboard-runner/src/lib.rs | 2 +- .../sdks/rust/runner-protocol/src/versioned.rs | 4 ++-- engine/sdks/schemas/runner-protocol/v3.bare | 2 +- .../sdks/typescript/runner-protocol/src/index.ts | 14 ++++---------- engine/sdks/typescript/runner/src/tunnel.ts | 16 ++++++++-------- .../runner/src/websocket-tunnel-adapter.ts | 4 ++-- 9 files changed, 26 insertions(+), 28 deletions(-) diff --git a/engine/packages/api-peer/src/actors/kv_get.rs b/engine/packages/api-peer/src/actors/kv_get.rs index 3ce45cf1d9..7f81aa7563 100644 --- a/engine/packages/api-peer/src/actors/kv_get.rs +++ b/engine/packages/api-peer/src/actors/kv_get.rs @@ -1,6 +1,6 @@ use anyhow::*; -use base64::prelude::BASE64_STANDARD; use base64::Engine; +use base64::prelude::BASE64_STANDARD; use pegboard_actor_kv as actor_kv; use rivet_api_builder::ApiCtx; use rivet_util::Id; diff --git a/engine/packages/api-public/src/actors/kv_get.rs b/engine/packages/api-public/src/actors/kv_get.rs index 5e9dd3b9db..0c1c4d79ca 100644 --- a/engine/packages/api-public/src/actors/kv_get.rs +++ b/engine/packages/api-public/src/actors/kv_get.rs @@ -65,7 +65,11 @@ async fn kv_get_inner(ctx: ApiCtx, path: KvGetPath) -> Result { request_remote_datacenter_raw( &ctx, path.actor_id.label(), - &format!("/actors/{}/kv/keys/{}", path.actor_id, urlencoding::encode(&path.key)), + &format!( + "/actors/{}/kv/keys/{}", + path.actor_id, + urlencoding::encode(&path.key) + ), axum::http::Method::GET, Option::<&()>::None, Option::<&()>::None, diff --git a/engine/packages/pegboard-gateway/src/lib.rs b/engine/packages/pegboard-gateway/src/lib.rs index a486607a8f..b1e53cd11d 100644 --- a/engine/packages/pegboard-gateway/src/lib.rs +++ b/engine/packages/pegboard-gateway/src/lib.rs @@ -401,10 +401,10 @@ impl CustomServeTrait for PegboardGateway { protocol::ToServerTunnelMessageKind::ToServerWebSocketClose(close) => { tracing::debug!(?close, "server closed websocket"); - if can_hibernate && close.retry { - // Successful closure + if can_hibernate && close.hibernate { return Err(WebSocketServiceHibernate.build()); } else { + // Successful closure return Ok(LifecycleResult::ServerClose(close)); } } diff --git a/engine/packages/pegboard-runner/src/lib.rs b/engine/packages/pegboard-runner/src/lib.rs index 08f24f302e..247916044c 100644 --- a/engine/packages/pegboard-runner/src/lib.rs +++ b/engine/packages/pegboard-runner/src/lib.rs @@ -257,7 +257,7 @@ impl CustomServeTrait for PegboardRunnerWsCustomServe { protocol::ToServerWebSocketClose { code: Some(close_code), reason: close_reason, - retry: true, + hibernate: true, }, ) } else { diff --git a/engine/sdks/rust/runner-protocol/src/versioned.rs b/engine/sdks/rust/runner-protocol/src/versioned.rs index ac19248cdb..6254a336c8 100644 --- a/engine/sdks/rust/runner-protocol/src/versioned.rs +++ b/engine/sdks/rust/runner-protocol/src/versioned.rs @@ -1285,7 +1285,7 @@ fn convert_to_server_tunnel_message_kind_v2_to_v3( v3::ToServerTunnelMessageKind::ToServerWebSocketClose(v3::ToServerWebSocketClose { code: close.code, reason: close.reason, - retry: close.retry, + hibernate: close.retry, }) } } @@ -1334,7 +1334,7 @@ fn convert_to_server_tunnel_message_kind_v3_to_v2( v2::ToServerTunnelMessageKind::ToServerWebSocketClose(v2::ToServerWebSocketClose { code: close.code, reason: close.reason, - retry: close.retry, + retry: close.hibernate, }) } }) diff --git a/engine/sdks/schemas/runner-protocol/v3.bare b/engine/sdks/schemas/runner-protocol/v3.bare index 507e621205..3c6040b698 100644 --- a/engine/sdks/schemas/runner-protocol/v3.bare +++ b/engine/sdks/schemas/runner-protocol/v3.bare @@ -265,7 +265,7 @@ type ToServerWebSocketMessageAck struct { type ToServerWebSocketClose struct { code: optional reason: optional - retry: bool + hibernate: bool } # To Server diff --git a/engine/sdks/typescript/runner-protocol/src/index.ts b/engine/sdks/typescript/runner-protocol/src/index.ts index 69bc8d5e0b..15b2670075 100644 --- a/engine/sdks/typescript/runner-protocol/src/index.ts +++ b/engine/sdks/typescript/runner-protocol/src/index.ts @@ -1,4 +1,4 @@ - +import assert from "node:assert" import * as bare from "@bare-ts/lib" const DEFAULT_CONFIG = /* @__PURE__ */ bare.Config({}) @@ -1180,21 +1180,21 @@ export function writeToServerWebSocketMessageAck(bc: bare.ByteCursor, x: ToServe export type ToServerWebSocketClose = { readonly code: u16 | null readonly reason: string | null - readonly retry: boolean + readonly hibernate: boolean } export function readToServerWebSocketClose(bc: bare.ByteCursor): ToServerWebSocketClose { return { code: read10(bc), reason: read5(bc), - retry: bare.readBool(bc), + hibernate: bare.readBool(bc), } } export function writeToServerWebSocketClose(bc: bare.ByteCursor, x: ToServerWebSocketClose): void { write10(bc, x.code) write5(bc, x.reason) - bare.writeBool(bc, x.retry) + bare.writeBool(bc, x.hibernate) } /** @@ -1925,9 +1925,3 @@ export function decodeToServerlessServer(bytes: Uint8Array): ToServerlessServer } return result } - - -function assert(condition: boolean, message?: string): asserts condition { - if (!condition) throw new Error(message ?? "Assertion failed") -} - diff --git a/engine/sdks/typescript/runner/src/tunnel.ts b/engine/sdks/typescript/runner/src/tunnel.ts index d0fa360e84..069a9aefca 100644 --- a/engine/sdks/typescript/runner/src/tunnel.ts +++ b/engine/sdks/typescript/runner/src/tunnel.ts @@ -401,8 +401,8 @@ export class Tunnel { existing.actorId = req.actorId; } else { this.#actorPendingRequests.set(requestIdStr, { - resolve: () => {}, - reject: () => {}, + resolve: () => { }, + reject: () => { }, streamController: controller, actorId: req.actorId, }); @@ -552,7 +552,7 @@ export class Tunnel { val: { code: 1011, reason: "Actor not found", - retry: false, + hibernate: false, }, }); return; @@ -570,7 +570,7 @@ export class Tunnel { val: { code: 1011, reason: "Not Implemented", - retry: false, + hibernate: false, }, }); return; @@ -608,7 +608,7 @@ export class Tunnel { const dataBuffer = typeof data === "string" ? (new TextEncoder().encode(data) - .buffer as ArrayBuffer) + .buffer as ArrayBuffer) : data; this.#sendMessage(requestId, { @@ -619,14 +619,14 @@ export class Tunnel { }, }); }, - (code?: number, reason?: string, retry: boolean = false) => { + (code?: number, reason?: string, hibernate: boolean = false) => { // Send close through tunnel this.#sendMessage(requestId, { tag: "ToServerWebSocketClose", val: { code: code || null, reason: reason || null, - retry, + hibernate, }, }); @@ -700,7 +700,7 @@ export class Tunnel { val: { code: 1011, reason: "Server Error", - retry: false, + hibernate: false, }, }); diff --git a/engine/sdks/typescript/runner/src/websocket-tunnel-adapter.ts b/engine/sdks/typescript/runner/src/websocket-tunnel-adapter.ts index ddebb72bc8..ab217d8184 100644 --- a/engine/sdks/typescript/runner/src/websocket-tunnel-adapter.ts +++ b/engine/sdks/typescript/runner/src/websocket-tunnel-adapter.ts @@ -215,7 +215,7 @@ export class WebSocketTunnelAdapter { closeInner( code: number | undefined, reason: string | undefined, - retry: boolean, + hibernate: boolean, callback: boolean, ): void { if ( @@ -229,7 +229,7 @@ export class WebSocketTunnelAdapter { // Send close through tunnel if (callback) { - this.#closeCallback(code, reason, retry); + this.#closeCallback(code, reason, hibernate); } // Update state and fire event