fix: Frontend updates when llama.cpp backend auto-downloads (#5926)

This commit is contained in:
Akarshan Biswas 2025-07-26 07:18:29 +05:30 committed by GitHub
parent 2e870ad4d0
commit 8ec4a36826
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 0 deletions

View File

@ -615,6 +615,17 @@ export default class llamacpp_extension extends AIEngine {
`Successfully updated to backend: ${targetBackendString} (preserved backend type: ${currentBackend})`
)
// Emit for updating fe
if (events && typeof events.emit === 'function') {
logger.info(
`Emitting settingsChanged event for version_backend with value: ${targetBackendString}`
)
events.emit('settingsChanged', {
key: 'version_backend',
value: targetBackendString,
})
}
// Clean up old versions of the same backend type
if (IS_WINDOWS) {
await new Promise((resolve) => setTimeout(resolve, 500))

View File

@ -37,6 +37,7 @@ import { IconFolderPlus, IconLoader, IconRefresh } from '@tabler/icons-react'
import { getProviders } from '@/services/providers'
import { toast } from 'sonner'
import { useEffect, useState } from 'react'
import { events } from '@janhq/core'
import { predefinedProviders } from '@/consts/providers'
import { useModelLoad } from '@/hooks/useModelLoad'
import { useLlamacppDevices } from '@/hooks/useLlamacppDevices'
@ -130,6 +131,19 @@ function ProviderDetail() {
}
}, [provider, needsBackendConfig])
// Listen for settingsChanged event and refresh backend list if version_backend changes
useEffect(() => {
const handler = (event: { key: string; value: string }) => {
if (event.key === 'version_backend') {
refreshSettings()
}
}
events.on('settingsChanged', handler)
return () => {
events.off('settingsChanged', handler)
}
}, [provider])
// Auto-refresh models for non-predefined providers
useEffect(() => {
if (