diff options
| author | Adam <[email protected]> | 2026-03-13 09:59:11 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-03-13 09:59:11 -0500 |
| commit | c4ccb50c37933ee4a0d7a6e37c3a3be9c8322b59 (patch) | |
| tree | 87df304d118a34f4a1b04da2f4968cc1c12d5061 /packages/app/src/context | |
| parent | 5aaf1ddfb77ccce50efc4b1070bd38d44e1e91f2 (diff) | |
| download | opencode-c4ccb50c37933ee4a0d7a6e37c3a3be9c8322b59.tar.gz opencode-c4ccb50c37933ee4a0d7a6e37c3a3be9c8322b59.zip | |
fix(app): fork should copy prompt into new session (#17375)
Diffstat (limited to 'packages/app/src/context')
| -rw-r--r-- | packages/app/src/context/prompt.tsx | 10 |
1 files changed, 8 insertions, 2 deletions
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<typeof createPromptSession> +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(), } }, }) |
