From 16390ca47d22400d3ba760e4fa15b6280b2bbfb8 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Tue, 18 Aug 2026 10:15:36 -0400 Subject: [PATCH] fix(cli): log background service startup --- packages/cli/src/commands/handlers/default.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/commands/handlers/default.ts b/packages/cli/src/commands/handlers/default.ts index 492a571cc5..72d389152b 100644 --- a/packages/cli/src/commands/handlers/default.ts +++ b/packages/cli/src/commands/handlers/default.ts @@ -4,7 +4,7 @@ import { run } from "@opencode-ai/tui" import { Commands } from "../commands" import { Runtime } from "../../framework/runtime" import { Config } from "../../config" -import { Context, Effect, FileSystem, Option } from "effect" +import { Context, Effect, FileSystem, Option, Queue } from "effect" import { ServerConnection } from "../../services/server-connection" import { Updater } from "../../services/updater" import { UpdatePreflight } from "../../services/update-preflight" @@ -19,11 +19,21 @@ export default Runtime.handler(Commands, (input) => if (requestedDirectory !== undefined) process.chdir(requestedDirectory) const preflight = UpdatePreflight.make() yield* Effect.addFinalizer(() => Effect.promise(() => preflight.close())) + const serviceStarts = yield* Queue.unbounded<{ + readonly reason: "missing" | "version-mismatch" + readonly previousVersion?: string + }>() + yield* Queue.take(serviceStarts).pipe( + Effect.flatMap((event) => Effect.logInfo("background service starting", event)), + Effect.forever, + Effect.forkScoped, + ) const server = yield* ServerConnection.resolve({ server: requestedServer, standalone: input.standalone, mismatch: "replace", onStart: (reason, previousVersion) => { + Queue.offerUnsafe(serviceStarts, { reason, previousVersion }) if (reason === "version-mismatch" && preflight.begin(previousVersion)) return process.stderr.write( reason === "version-mismatch"