From f406fed92471fbd2d3a116c02f82e1d38e229157 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Mon, 6 Jul 2026 12:34:33 -0400 Subject: [PATCH] fix(cli): ignore version mismatch on reconnect --- packages/cli/src/commands/handlers/default.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/cli/src/commands/handlers/default.ts b/packages/cli/src/commands/handlers/default.ts index d7ba88a8247..62c3ace63f3 100644 --- a/packages/cli/src/commands/handlers/default.ts +++ b/packages/cli/src/commands/handlers/default.ts @@ -54,12 +54,15 @@ export default Runtime.handler(Commands, (input) => // retry the same address; for the managed service discovery re-reads the // registration and may start a replacement. const serviceOptions = server === undefined && !input.standalone ? yield* ServiceConfig.options() : undefined - const discover = serviceOptions + // Only startup enforces the CLI version. A reconnect must accept a server + // replaced by another client or the two clients will restart it forever. + const reconnectOptions = serviceOptions ? { ...serviceOptions, version: undefined } : undefined + const discover = reconnectOptions ? () => Effect.runPromise( Effect.gen(function* () { - const found = yield* Service.discover(serviceOptions) - return found ?? (yield* Service.start(serviceOptions)) + const found = yield* Service.discover(reconnectOptions) + return found ?? (yield* Service.start(reconnectOptions)) }).pipe(Effect.provide(NodeFileSystem.layer)), ) : () => Promise.resolve(transport)