Skip to content

Commit 74373f8

Browse files
committed
fix: skip reload disposal for fresh instances
Previously reload always called disposeInstance + emitted server.instance.disposed even when no previous entry existed in the cache, sending a phantom dispose event for an instance that was never loaded.
1 parent 1b146ad commit 74373f8

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

packages/opencode/src/project/instance-store.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,11 @@ export const layer: Layer.Layer<Service, never, Project.Service> = Layer.effect(
123123
cache.set(directory, entry)
124124
yield* Effect.gen(function* () {
125125
yield* Effect.logInfo("reloading instance", { directory })
126-
if (previous) yield* Deferred.await(previous.deferred).pipe(Effect.exit, Effect.asVoid)
127-
yield* Effect.promise(() => disposeInstance(directory))
128-
yield* emitDisposed({ directory, project: input.project?.id })
126+
if (previous) {
127+
yield* Deferred.await(previous.deferred).pipe(Effect.exit, Effect.asVoid)
128+
yield* Effect.promise(() => disposeInstance(directory))
129+
yield* emitDisposed({ directory, project: input.project?.id })
130+
}
129131
yield* completeLoad(directory, input, entry)
130132
}).pipe(Effect.forkIn(scope, { startImmediately: true }))
131133
return yield* restore(Deferred.await(entry.deferred))

0 commit comments

Comments
 (0)