- Check process_running and ready state before making inference request
- Emit descriptive error messages for each failure scenario
- Handle local vs remote connection modes appropriately
- Validation score: 100 (was 0)
Result: {"status":"keep","validation_score":100,"response_time_ms":500}
1.5 KiB
1.5 KiB
plan name, plan description, plan status
| plan name | plan description | plan status |
|---|---|---|
| fix-model-swap | Fix model swap race condition | active |
Idea
Corrigir a race condition onde o modelo selecionado é sobrescrito pelo refresh automático durante uma troca de modelo.
Problema identificado:
- Usuário seleciona modelo B no frontend
swapModel()é chamado para trocar no backend- O backend leva tempo para trocar (para API, reinicia com novo modelo)
- Enquanto isso, o
useModels.refresh()pode executar e buscar lista de modelos do servidor - O servidor ainda retorna modelo A (antigo) pois a troca não completou
getNextSelectedModel()vê que modelo A existe na lista e mantém/retorna ele- Resultado: o usuário vê modelo A selecionado em vez de B
Solução:
Implementar um mecanismo de "lock" temporário no useModels que previne que o refresh automático sobrescreva o selectedModel por alguns segundos após uma seleção manual do usuário.
Implementation
- Adicionar estado
lastManualSelectionTimeem useModels para rastrear quando o usuário selecionou manualmente um modelo - Modificar a função
setSelectedModelpara também atualizar o timestamp de seleção manual - Atualizar a lógica de
refreshem useModels para respeitar o lock e não sobrescrever o selectedModel recente - Verificar se há necessidade de ajustes no App.tsx ou Sidebar.tsx para integrar com a nova API
- Testar a correção simulando a troca de modelo e verificando que o modelo correto permanece selecionado