From 62bd87a65a748cd89794f69ec35ffc630b81661a Mon Sep 17 00:00:00 2001 From: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 14:04:49 +0000 Subject: [PATCH] fix(webchat): create dashboard sessions from New Chat --- ui/src/ui/app-render.helpers.node.test.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/ui/src/ui/app-render.helpers.node.test.ts b/ui/src/ui/app-render.helpers.node.test.ts index 01b857a8788..6f456e1ac47 100644 --- a/ui/src/ui/app-render.helpers.node.test.ts +++ b/ui/src/ui/app-render.helpers.node.test.ts @@ -130,6 +130,8 @@ function createChatSessionState(overrides: Partial = {}) { chatStreamStartedAt: null, connected: true, client: { request: vi.fn() }, + sessionsLoading: false, + sessionsError: null, sessionsResult: { ts: 0, path: "", @@ -634,6 +636,22 @@ describe("createChatSession", () => { "Session list is still refreshing. Try New Chat again in a moment.", ); }); + + it("shows retry feedback when creation is skipped without a session error", async () => { + const state = createChatSessionState({ lastError: "previous error" }); + createSessionAndRefreshMock.mockResolvedValue(null); + + await createChatSession(state); + + expect(createSessionAndRefreshMock).toHaveBeenCalledTimes(1); + expect(state.sessionKey).toBe("agent:ops:main"); + expect(state.chatMessage).toBe("draft prompt"); + expect(state.sessionsError).toBeNull(); + expect(state.lastError).toBe( + "Session list is still refreshing. Try New Chat again in a moment.", + ); + expect(loadChatHistoryMock).not.toHaveBeenCalled(); + }); }); describe("switchChatSession", () => {