Add runtime state validation before ForgeAgent HTTP call

- 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}
This commit is contained in:
Evandro Fonseca Junior committed 2026-04-02 14:37:01 -03:00
1 parent 4a867b36ff
commit 77c57c3d45
84 files changed
+7860 -1266

No files matched your search

+47
View File
@@ -0,0 +1,47 @@
# Autoresearch: Fix ForgeAgent Inference Error
## Objective
Corrigir o erro "Desculpe, o servidor de inferência não está disponível. Verifique se o modelo está carregado." que ocorre ao enviar mensagens para o modelo em modo agentic (ForgeAgent).
## Root Cause
O código em `start_forgeagent_session_command` não verifica o estado do runtime antes de fazer a chamada HTTP. A função apenas obtém a URL e dispara a requisição, sem validar:
- Se o processo está rodando (`process_running`)
- Se o runtime está pronto (`ready`)
- Se o status é saudável (`status == "ready"`)
## Metrics
- **Primary**: Precisão do erro (descritivo vs genérico)
- **Secondary**: Tempo de resposta para erro (segundos, menor é melhor)
## How to Run
1. `npm run tauri dev` na tauri-app
2. Enviar mensagem via ForgeAgent
3. Observar se erro é descritivo
## Files in Scope
- `tauri-app/src-tauri/src/lib.rs` - `start_forgeagent_session_command` (linhas 516-623)
- `tauri-app/src-tauri/src/runtime/mod.rs` - `get_runtime_snapshot`
- `tauri-app/src-tauri/src/runtime/types.rs` - `RuntimeSnapshot`
## Off Limits
- Estrutura do `RuntimeSnapshot`
- Sistema de eventos Tauri
- Fluxo multi-agentes (specialists)
## Constraints
- Manter compatibilidade com modo remoto
- Não adicionar dependências Rust
- Tempo de resposta < 2s para erros de validação
## What's Been Tried
Nada ainda - investigação inicial concluída.
## Fix Strategy
Adicionar validação de estado do runtime antes da chamada HTTP:
1. Obter snapshot completo do runtime
2. Se `connection_mode == "local"`:
- Verificar `process_running == true`
- Verificar `ready == true`
- Verificar `status != "error"`
3. Emitir erro descritivo se alguma validação falhar
4. Modo remoto bypassa validações locais