diff --git a/packages/effect-codex-app-server/src/replay.ts b/packages/effect-codex-app-server/src/replay.ts index d3f4ea8b47b6..7d40e138e839 100644 --- a/packages/effect-codex-app-server/src/replay.ts +++ b/packages/effect-codex-app-server/src/replay.ts @@ -313,6 +313,18 @@ function normalizeLegacyInboundFrame(value: unknown): unknown { } normalized.params = params; } + if ( + normalized.method === "item/tool/requestUserInput" && + typeof normalized.params === "object" && + normalized.params !== null + ) { + const params = { ...(normalized.params as Record) }; + // Codex treats a legacy request without `isBlocking` as blocking. + if (params.isBlocking === undefined) { + params.isBlocking = true; + } + normalized.params = params; + } return normalized; }