diff --git a/packages/ui/src/sync/__tests__/issue-2039.test.ts b/packages/ui/src/sync/__tests__/issue-2039.test.ts index 00fc232f..8197823c 100644 --- a/packages/ui/src/sync/__tests__/issue-2039.test.ts +++ b/packages/ui/src/sync/__tests__/issue-2039.test.ts @@ -323,6 +323,7 @@ describe("issue 2039 draft auto-accept", () => { providerID: "provider", modelID: "model", }) + await new Promise((resolve) => setTimeout(resolve, 0)) expect(result?.sessionId).toBe("ses_issue_2039") expect(createSessionCalls).toHaveLength(1) diff --git a/packages/ui/src/sync/session-ui-store.ts b/packages/ui/src/sync/session-ui-store.ts index aa9d6e57..578b108c 100644 --- a/packages/ui/src/sync/session-ui-store.ts +++ b/packages/ui/src/sync/session-ui-store.ts @@ -488,19 +488,18 @@ export async function materializeOpenDraftSession(selection: { useSelectionStore.getState().saveAgentModelVariantForSession(created.id, effectiveDraftAgent, selection.providerID, selection.modelID, selection.variant) } - if (draftPermissionAutoAcceptEnabled) { - try { - const { usePermissionStore } = await import("@/stores/permissionStore") - await usePermissionStore.getState().setSessionAutoAccept(created.id, true) - } catch (error) { - console.warn("Failed to apply draft permission auto-accept to new session:", error) - } - } - store.initializeNewOpenChamberSession(created.id, configState.agents ?? []) store.setCurrentSession(created.id, createdDirectory) + if (draftPermissionAutoAcceptEnabled) { + void import("@/stores/permissionStore") + .then(({ usePermissionStore }) => usePermissionStore.getState().setSessionAutoAccept(created.id, true)) + .catch((error) => { + console.warn("Failed to apply draft permission auto-accept to new session:", error) + }) + } + return { sessionId: created.id, directory: createdDirectory,