From 7ee563402151a4b461e6fac28fe61d8683f19093 Mon Sep 17 00:00:00 2001 From: cpacker Date: Thu, 27 Nov 2025 02:24:56 -0800 Subject: [PATCH] fix: patch model selector --- src/cli/App.tsx | 6 +++++- src/cli/components/ModelSelector.tsx | 14 +++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/cli/App.tsx b/src/cli/App.tsx index e394979..b7bac86 100644 --- a/src/cli/App.tsx +++ b/src/cli/App.tsx @@ -2346,7 +2346,11 @@ export default function App({ {/* Model Selector - conditionally mounted as overlay */} {modelSelectorOpen && ( setModelSelectorOpen(false)} /> diff --git a/src/cli/components/ModelSelector.tsx b/src/cli/components/ModelSelector.tsx index 8136825..c6cab4c 100644 --- a/src/cli/components/ModelSelector.tsx +++ b/src/cli/components/ModelSelector.tsx @@ -1,6 +1,6 @@ // Import useInput from vendored Ink for bracketed paste support import { Box, Text, useInput } from "ink"; -import { useMemo, useState } from "react"; +import { useEffect, useMemo, useRef, useState } from "react"; import { models } from "../../agent/model"; import { colors } from "./colors"; @@ -40,6 +40,18 @@ export function ModelSelector({ return typedModels.slice(0, 5); }, [featuredModels, showAll, typedModels]); + // Set initial selection to current model on mount + const initializedRef = useRef(false); + useEffect(() => { + if (!initializedRef.current) { + const index = visibleModels.findIndex((m) => m.handle === currentModel); + if (index >= 0) { + setSelectedIndex(index); + } + initializedRef.current = true; + } + }, [visibleModels, currentModel]); + const totalItems = showAll ? visibleModels.length : visibleModels.length + 1; useInput((_input, key) => {