refactor(core): drop synchronous drain start from the coordinator
Drains now uniformly start one tick after wake or run, removing the ready-deferred release that ran the first drain synchronously inside the caller. The synchronous start was observable only by tests that asserted state immediately after fire-and-forget calls, coupling them to scheduler internals; those tests now synchronize explicitly through session.wait or stream-start signals.
This commit is contained in:
parent
fae51d853d
commit
7d598b5610
2 changed files with 10 additions and 9 deletions
|
|
@ -655,6 +655,7 @@ describe("SessionRunnerLLM", () => {
|
|||
response = []
|
||||
|
||||
const message = yield* session.prompt({ sessionID, prompt: Prompt.make({ text: "Run automatically" }) })
|
||||
yield* session.wait(sessionID)
|
||||
|
||||
expect(requests).toHaveLength(1)
|
||||
expect(yield* session.messages({ sessionID })).toMatchObject([
|
||||
|
|
@ -714,6 +715,7 @@ describe("SessionRunnerLLM", () => {
|
|||
|
||||
systemUnavailable = false
|
||||
yield* session.prompt({ id: messageID, sessionID, prompt: Prompt.make({ text: "First" }) })
|
||||
yield* session.wait(sessionID)
|
||||
|
||||
expect(requests).toHaveLength(1)
|
||||
expect(requests[0]?.messages.map((message) => message.role)).toEqual(["user"])
|
||||
|
|
@ -2537,8 +2539,9 @@ describe("SessionRunnerLLM", () => {
|
|||
|
||||
const first = yield* session.resume(sessionID).pipe(Effect.forkChild)
|
||||
yield* Deferred.await(streamStarted)
|
||||
streamStarted = yield* Deferred.make<void>()
|
||||
const second = yield* session.resume(otherSessionID).pipe(Effect.forkChild)
|
||||
yield* Effect.yieldNow
|
||||
yield* Deferred.await(streamStarted)
|
||||
|
||||
expect(requests).toHaveLength(2)
|
||||
expect(requests.map((request) => request.providerOptions?.openai?.promptCacheKey)).toEqual([
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue