diff --git a/apps/web/src/components/Sidebar.logic.test.ts b/apps/web/src/components/Sidebar.logic.test.ts index 574e33d4dab..89a8dedb4f9 100644 --- a/apps/web/src/components/Sidebar.logic.test.ts +++ b/apps/web/src/components/Sidebar.logic.test.ts @@ -261,7 +261,7 @@ describe("resolveSidebarNewThreadEnvMode", () => { }); describe("resolveSidebarNewThreadSeedContext", () => { - it("prefers the default worktree mode over active thread context", () => { + it("preserves active draft context over the default worktree mode", () => { expect( resolveSidebarNewThreadSeedContext({ projectId: "project-1", @@ -280,15 +280,18 @@ describe("resolveSidebarNewThreadSeedContext", () => { }, }), ).toEqual({ + branch: "feature/draft", + worktreePath: "/repo/.t3/worktrees/draft", envMode: "worktree", + startFromOrigin: true, }); }); - it("inherits the active server thread context when creating a new thread in the same project", () => { + it("preserves the active branch over the default worktree mode", () => { expect( resolveSidebarNewThreadSeedContext({ projectId: "project-1", - defaultEnvMode: "local", + defaultEnvMode: "worktree", activeThread: { projectId: "project-1", branch: "effect-atom", @@ -303,6 +306,25 @@ describe("resolveSidebarNewThreadSeedContext", () => { }); }); + it("preserves the active worktree over the default worktree mode", () => { + expect( + resolveSidebarNewThreadSeedContext({ + projectId: "project-1", + defaultEnvMode: "worktree", + activeThread: { + projectId: "project-1", + branch: "feature/existing", + worktreePath: "/repo/.t3/worktrees/existing", + }, + activeDraftThread: null, + }), + ).toEqual({ + branch: "feature/existing", + worktreePath: "/repo/.t3/worktrees/existing", + envMode: "worktree", + }); + }); + it("prefers the active draft thread context when it matches the target project", () => { expect( resolveSidebarNewThreadSeedContext({ diff --git a/apps/web/src/components/Sidebar.logic.ts b/apps/web/src/components/Sidebar.logic.ts index 4e7614ed551..a19a168e529 100644 --- a/apps/web/src/components/Sidebar.logic.ts +++ b/apps/web/src/components/Sidebar.logic.ts @@ -205,12 +205,6 @@ export function resolveSidebarNewThreadSeedContext(input: { envMode: SidebarNewThreadEnvMode; startFromOrigin?: boolean; } { - if (input.defaultEnvMode === "worktree") { - return { - envMode: "worktree", - }; - } - if (input.activeDraftThread?.projectId === input.projectId) { return { branch: input.activeDraftThread.branch,