diff options
Diffstat (limited to 'packages/cli/src/ui/App.tsx')
| -rw-r--r-- | packages/cli/src/ui/App.tsx | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx index c25d74e2..7824f0f7 100644 --- a/packages/cli/src/ui/App.tsx +++ b/packages/cli/src/ui/App.tsx @@ -115,6 +115,7 @@ const App = ({ config, settings, startupWarnings = [] }: AppProps) => { const [editorError, setEditorError] = useState<string | null>(null); const [footerHeight, setFooterHeight] = useState<number>(0); const [corgiMode, setCorgiMode] = useState(false); + const [currentModel, setCurrentModel] = useState(config.getModel()); const [shellModeActive, setShellModeActive] = useState(false); const [showErrorDetails, setShowErrorDetails] = useState<boolean>(false); const [showToolDescriptions, setShowToolDescriptions] = @@ -214,6 +215,42 @@ const App = ({ config, settings, startupWarnings = [] }: AppProps) => { } }, [config, addItem]); + // Watch for model changes (e.g., from Flash fallback) + useEffect(() => { + const checkModelChange = () => { + const configModel = config.getModel(); + if (configModel !== currentModel) { + setCurrentModel(configModel); + } + }; + + // Check immediately and then periodically + checkModelChange(); + const interval = setInterval(checkModelChange, 1000); // Check every second + + return () => clearInterval(interval); + }, [config, currentModel]); + + // Set up Flash fallback handler + useEffect(() => { + const flashFallbackHandler = async ( + currentModel: string, + fallbackModel: string, + ): Promise<boolean> => { + // Add message to UI history + addItem( + { + type: MessageType.INFO, + text: `⚡ Rate limiting detected. Automatically switching from ${currentModel} to ${fallbackModel} for faster responses for the remainder of this session.`, + }, + Date.now(), + ); + return true; // Always accept the fallback + }; + + config.setFlashFallbackHandler(flashFallbackHandler); + }, [config, addItem]); + const { handleSlashCommand, slashCommands, @@ -787,7 +824,7 @@ const App = ({ config, settings, startupWarnings = [] }: AppProps) => { </Box> )} <Footer - model={config.getModel()} + model={currentModel} targetDir={config.getTargetDir()} debugMode={config.getDebugMode()} branchName={branchName} |
