From 09f0156bfc66643870835251eef873d6e62f2791 Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 14 May 2026 12:50:10 +0200 Subject: [PATCH] fix(vscode): keep worktree model search open --- .changeset/model-picker-search-focus.md | 5 +++++ .../webview-ui/agent-manager/NewWorktreeDialog.tsx | 2 ++ .../webview-ui/src/components/shared/ModelSelector.tsx | 3 +++ 3 files changed, 10 insertions(+) create mode 100644 .changeset/model-picker-search-focus.md diff --git a/.changeset/model-picker-search-focus.md b/.changeset/model-picker-search-focus.md new file mode 100644 index 0000000000..33e7b6a635 --- /dev/null +++ b/.changeset/model-picker-search-focus.md @@ -0,0 +1,5 @@ +--- +"kilo-code": patch +--- + +Keep the New Worktree model picker open when interacting with its search field. diff --git a/packages/kilo-vscode/webview-ui/agent-manager/NewWorktreeDialog.tsx b/packages/kilo-vscode/webview-ui/agent-manager/NewWorktreeDialog.tsx index 5f3e40399e..6099c173db 100644 --- a/packages/kilo-vscode/webview-ui/agent-manager/NewWorktreeDialog.tsx +++ b/packages/kilo-vscode/webview-ui/agent-manager/NewWorktreeDialog.tsx @@ -397,6 +397,7 @@ export const NewWorktreeDialog: Component<{ onClose: () => void; defaultBaseBran if (pid && mid) setModel({ providerID: pid, modelID: mid }) }} placement="top-start" + portal={false} deferDismiss /> void; defaultBaseBran placement="top-start" flip={false} sameWidth + portal={false} deferDismiss class="am-compare-popover" trigger={ diff --git a/packages/kilo-vscode/webview-ui/src/components/shared/ModelSelector.tsx b/packages/kilo-vscode/webview-ui/src/components/shared/ModelSelector.tsx index 6011b7a304..1513cc2278 100644 --- a/packages/kilo-vscode/webview-ui/src/components/shared/ModelSelector.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/shared/ModelSelector.tsx @@ -96,6 +96,8 @@ export interface ModelSelectorBaseProps { favorites?: boolean /** Delay outside dismissal while the popover opens inside a dialog. */ deferDismiss?: boolean + /** Render inline instead of through a portal when nested in a dialog. */ + portal?: boolean } export const ModelSelectorBase: Component = (props) => { @@ -537,6 +539,7 @@ export const ModelSelectorBase: Component = (props) => { minHeight={200} placement={props.placement ?? "top-start"} deferDismiss={props.deferDismiss} + portal={props.portal} open={open()} onOpenChange={setOpen} triggerAs={Button}