diff --git a/core/src/browser/extension.ts b/core/src/browser/extension.ts index 01d16c9887..3f3148e8fb 100644 --- a/core/src/browser/extension.ts +++ b/core/src/browser/extension.ts @@ -128,6 +128,10 @@ export abstract class BaseExtension implements ExtensionType { setting.controllerProps.value = oldSettings.find( (e: any) => e.key === setting.key )?.controllerProps?.value + if ('options' in setting.controllerProps) + setting.controllerProps.options = setting.controllerProps.options?.length + ? setting.controllerProps.options + : oldSettings.find((e: any) => e.key === setting.key)?.controllerProps?.options }) } localStorage.setItem(this.name, JSON.stringify(settings)) diff --git a/web-app/src/hooks/useModelProvider.ts b/web-app/src/hooks/useModelProvider.ts index 5d32565c1d..2e2d1be4a2 100644 --- a/web-app/src/hooks/useModelProvider.ts +++ b/web-app/src/hooks/useModelProvider.ts @@ -36,16 +36,20 @@ export const useModelProvider = create()( }, setProviders: (providers) => set((state) => { - const existingProviders = state.providers.map((provider) => { - return { - ...provider, - models: provider.models.filter( - (e) => - ('id' in e || 'model' in e) && - typeof (e.id ?? e.model) === 'string' - ), - } - }) + const existingProviders = state.providers + // Filter out legacy llama.cpp provider for migration + // Can remove after a couple of releases + .filter((e) => e.provider !== 'llama.cpp') + .map((provider) => { + return { + ...provider, + models: provider.models.filter( + (e) => + ('id' in e || 'model' in e) && + typeof (e.id ?? e.model) === 'string' + ), + } + }) // Ensure deletedModels is always an array const currentDeletedModels = Array.isArray(state.deletedModels) ? state.deletedModels