fix: race condition get Assistant (#5161)

This commit is contained in:
Faisal Amir 2025-06-02 14:17:55 +07:00 committed by GitHub
parent 5dd4b62bcc
commit 5c60d2887a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 20 additions and 6 deletions

View File

@ -28,9 +28,16 @@ export function DataProvider() {
getProviders().then(setProviders)
})
getMCPConfig().then((data) => setServers(data.mcpServers ?? []))
getAssistants().then((data) =>
setAssistants((data as unknown as Assistant[]) ?? [])
)
getAssistants()
.then((data) => {
// Only update assistants if we have valid data
if (data && Array.isArray(data) && data.length > 0) {
setAssistants(data as unknown as Assistant[])
}
})
.catch((error) => {
console.warn('Failed to load assistants, keeping default:', error)
})
migrateData()
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [])

View File

@ -6,9 +6,16 @@ import { Assistant, AssistantExtension, ExtensionTypeEnum } from '@janhq/core'
* @returns A promise that resolves to the assistants.
*/
export const getAssistants = async () => {
return ExtensionManager.getInstance()
.get<AssistantExtension>(ExtensionTypeEnum.Assistant)
?.getAssistants()
const extension = ExtensionManager.getInstance().get<AssistantExtension>(
ExtensionTypeEnum.Assistant
)
if (!extension) {
console.warn('AssistantExtension not found')
return null
}
return extension.getAssistants()
}
/**