From 71402bcbc3537a9d6692c5914161beddfda590fe Mon Sep 17 00:00:00 2001 From: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Date: Thu, 25 Jun 2026 13:35:08 +0800 Subject: [PATCH] fix(app): remove produce default values in server session state (#33793) --- packages/app/src/context/server-session.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/app/src/context/server-session.ts b/packages/app/src/context/server-session.ts index 5cdcaac615..7bad408862 100644 --- a/packages/app/src/context/server-session.ts +++ b/packages/app/src/context/server-session.ts @@ -471,14 +471,18 @@ export function createServerSession(client: OpencodeClient) { } case "permission.asked": { const permission = event.properties as PermissionRequest - const permissions = data.permission[permission.sessionID] ?? [] + const permissions = data.permission[permission.sessionID] + if (!permissions) { + setData("permission", permission.sessionID, [permission]) + return + } const result = Binary.search(permissions, permission.id, (item) => item.id) if (result.found) setData("permission", permission.sessionID, result.index, reconcile(permission)) if (!result.found) setData( "permission", permission.sessionID, - produce((draft = []) => void draft.splice(result.index, 0, permission)), + produce((draft) => void draft.splice(result.index, 0, permission)), ) return } @@ -497,14 +501,18 @@ export function createServerSession(client: OpencodeClient) { } case "question.asked": { const question = event.properties as QuestionRequest - const questions = data.question[question.sessionID] ?? [] + const questions = data.question[question.sessionID] + if (!questions) { + setData("question", question.sessionID, [question]) + return + } const result = Binary.search(questions, question.id, (item) => item.id) if (result.found) setData("question", question.sessionID, result.index, reconcile(question)) if (!result.found) setData( "question", question.sessionID, - produce((draft = []) => void draft.splice(result.index, 0, question)), + produce((draft) => void draft.splice(result.index, 0, question)), ) return }