From 4cc0a6959d4b76a3b96ea6300f5239be2fc9d8d4 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Wed, 1 Apr 2026 00:27:03 -0700 Subject: [PATCH 1/2] migrate Effect.fn in apps/server/src/orchestration/Layers/ProviderCommandReactor.ts Co-authored-by: codex --- .../Layers/ProviderCommandReactor.ts | 65 ++++++++++--------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/apps/server/src/orchestration/Layers/ProviderCommandReactor.ts b/apps/server/src/orchestration/Layers/ProviderCommandReactor.ts index d4f13ec727..7619e80398 100644 --- a/apps/server/src/orchestration/Layers/ProviderCommandReactor.ts +++ b/apps/server/src/orchestration/Layers/ProviderCommandReactor.ts @@ -633,8 +633,8 @@ const make = Effect.gen(function* () { decision: event.payload.decision, }) .pipe( - Effect.catchCause((cause) => - Effect.gen(function* () { + Effect.catchCause( + Effect.fn("processApprovalResponseRequested.handleCause")(function* (cause) { yield* appendProviderFailureActivity({ threadId: event.payload.threadId, kind: "provider.approval.respond.failed", @@ -724,39 +724,40 @@ const make = Effect.gen(function* () { }); }); - const processDomainEvent = (event: ProviderIntentEvent) => - Effect.gen(function* () { - switch (event.type) { - case "thread.runtime-mode-set": { - const thread = yield* resolveThread(event.payload.threadId); - if (!thread?.session || thread.session.status === "stopped") { - return; - } - const cachedModelSelection = threadModelSelections.get(event.payload.threadId); - yield* ensureSessionForThread( - event.payload.threadId, - event.occurredAt, - cachedModelSelection !== undefined ? { modelSelection: cachedModelSelection } : {}, - ); + const processDomainEvent = Effect.fn("processDomainEvent")(function* ( + event: ProviderIntentEvent, + ) { + switch (event.type) { + case "thread.runtime-mode-set": { + const thread = yield* resolveThread(event.payload.threadId); + if (!thread?.session || thread.session.status === "stopped") { return; } - case "thread.turn-start-requested": - yield* processTurnStartRequested(event); - return; - case "thread.turn-interrupt-requested": - yield* processTurnInterruptRequested(event); - return; - case "thread.approval-response-requested": - yield* processApprovalResponseRequested(event); - return; - case "thread.user-input-response-requested": - yield* processUserInputResponseRequested(event); - return; - case "thread.session-stop-requested": - yield* processSessionStopRequested(event); - return; + const cachedModelSelection = threadModelSelections.get(event.payload.threadId); + yield* ensureSessionForThread( + event.payload.threadId, + event.occurredAt, + cachedModelSelection !== undefined ? { modelSelection: cachedModelSelection } : {}, + ); + return; } - }); + case "thread.turn-start-requested": + yield* processTurnStartRequested(event); + return; + case "thread.turn-interrupt-requested": + yield* processTurnInterruptRequested(event); + return; + case "thread.approval-response-requested": + yield* processApprovalResponseRequested(event); + return; + case "thread.user-input-response-requested": + yield* processUserInputResponseRequested(event); + return; + case "thread.session-stop-requested": + yield* processSessionStopRequested(event); + return; + } + }); const processDomainEventSafely = (event: ProviderIntentEvent) => processDomainEvent(event).pipe( From 2b1eca9b8ed5ff93db4af956f65d22f1ffc491fa Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Wed, 1 Apr 2026 08:47:04 -0700 Subject: [PATCH 2/2] nit --- .../server/src/orchestration/Layers/ProviderCommandReactor.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/server/src/orchestration/Layers/ProviderCommandReactor.ts b/apps/server/src/orchestration/Layers/ProviderCommandReactor.ts index 7619e80398..8e2a19bcd1 100644 --- a/apps/server/src/orchestration/Layers/ProviderCommandReactor.ts +++ b/apps/server/src/orchestration/Layers/ProviderCommandReactor.ts @@ -633,8 +633,8 @@ const make = Effect.gen(function* () { decision: event.payload.decision, }) .pipe( - Effect.catchCause( - Effect.fn("processApprovalResponseRequested.handleCause")(function* (cause) { + Effect.catchCause((cause) => + Effect.gen(function* () { yield* appendProviderFailureActivity({ threadId: event.payload.threadId, kind: "provider.approval.respond.failed",