diff --git a/packages/opencode/src/project/instance-store.ts b/packages/opencode/src/project/instance-store.ts index 2f60f1d57c9..a3d9e77d55f 100644 --- a/packages/opencode/src/project/instance-store.ts +++ b/packages/opencode/src/project/instance-store.ts @@ -73,12 +73,20 @@ export const layer: Layer.Layer - Effect.gen(function* () { - const exit = yield* Effect.exit(boot({ ...input, directory })) - if (Exit.isFailure(exit)) yield* removeEntry(directory, entry) - yield* Deferred.done(entry.deferred, exit).pipe(Effect.asVoid) - }) + Effect.suspend(() => boot({ ...input, directory })).pipe( + Effect.onExit((exit) => + Effect.gen(function* () { + if (Exit.isFailure(exit)) yield* removeEntry(directory, entry) + yield* Deferred.done(entry.deferred, exit) + }), + ), + ) + // kilocode_change end const emitDisposed = (input: { directory: string; project?: string }) => Effect.sync(() =>