fix: enable Requesty refresh models with credentials (#10273)

This commit is contained in:
Daniel 2025-12-22 12:43:42 -05:00 committed by GitHub
parent e3cd031f17
commit 529e0d7a94
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 3 deletions

View file

@ -790,6 +790,9 @@ export const webviewMessageHandler = async (
const requestedProvider = message?.values?.provider
const providerFilter = requestedProvider ? toRouterName(requestedProvider) : undefined
// Optional refresh flag to flush cache before fetching (useful for providers requiring credentials)
const shouldRefresh = message?.values?.refresh === true
const routerModels: Record<RouterName, ModelRecord> = providerFilter
? ({} as Record<RouterName, ModelRecord>)
: {
@ -887,6 +890,12 @@ export const webviewMessageHandler = async (
? candidates.filter(({ key }) => key === providerFilter)
: candidates
// If refresh flag is set and we have a specific provider, flush its cache first
if (shouldRefresh && providerFilter && modelFetchPromises.length > 0) {
const targetCandidate = modelFetchPromises[0]
await flushModels(targetCandidate.options, true)
}
const results = await Promise.allSettled(
modelFetchPromises.map(async ({ key, options }) => {
const models = await safeGetModels(options)

View file

@ -30,7 +30,6 @@ export const Requesty = ({
apiConfiguration,
setApiConfigurationField,
routerModels,
refetchRouterModels,
organizationAllowList,
modelValidationError,
uriScheme,
@ -127,8 +126,7 @@ export const Requesty = ({
<Button
variant="outline"
onClick={() => {
vscode.postMessage({ type: "flushRouterModels", text: "requesty" })
refetchRouterModels()
vscode.postMessage({ type: "requestRouterModels", values: { provider: "requesty", refresh: true } })
}}>
<div className="flex items-center gap-2">
<span className="codicon codicon-refresh" />