From c4ccb50c37933ee4a0d7a6e37c3a3be9c8322b59 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Fri, 13 Mar 2026 09:59:11 -0500 Subject: fix(app): fork should copy prompt into new session (#17375) --- packages/app/src/context/prompt.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'packages/app/src/context') diff --git a/packages/app/src/context/prompt.tsx b/packages/app/src/context/prompt.tsx index fb8226559..4aeb05e61 100644 --- a/packages/app/src/context/prompt.tsx +++ b/packages/app/src/context/prompt.tsx @@ -151,6 +151,11 @@ const MAX_PROMPT_SESSIONS = 20 type PromptSession = ReturnType +type Scope = { + dir: string + id?: string +} + type PromptCacheEntry = { value: PromptSession dispose: VoidFunction @@ -265,6 +270,7 @@ export const { use: usePrompt, provider: PromptProvider } = createSimpleContext( } const session = createMemo(() => load(params.dir!, params.id)) + const pick = (scope?: Scope) => (scope ? load(scope.dir, scope.id) : session()) return { ready: () => session().ready(), @@ -280,8 +286,8 @@ export const { use: usePrompt, provider: PromptProvider } = createSimpleContext( session().context.updateComment(path, commentID, next), replaceComments: (items: FileContextItem[]) => session().context.replaceComments(items), }, - set: (prompt: Prompt, cursorPosition?: number) => session().set(prompt, cursorPosition), - reset: () => session().reset(), + set: (prompt: Prompt, cursorPosition?: number, scope?: Scope) => pick(scope).set(prompt, cursorPosition), + reset: (scope?: Scope) => pick(scope).reset(), } }, }) -- cgit v1.2.3