- Changed from .as_str() to direct enum matching
- Matches: Loading, Error, Starting, Stopping variants
- validation_score remains 100
Result: {"status":"keep","validation_score":100,"compilation":"passed"}
53 lines
2.2 KiB
Markdown
53 lines
2.2 KiB
Markdown
# 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
|
|
|
|
### Run 1: Add runtime state validation (KEPT)
|
|
- **Commit**: 77c57c3
|
|
- **Result**: validation_score=100 (baseline: 0)
|
|
- **What changed**: Added validation of `process_running` and `ready` state in `start_forgeagent_session_command` before spawning background task. Emits descriptive error messages for each failure scenario.
|
|
- **Insight**: Validação pré-HTTP é suficiente para capturar todos os cenários de erro. Health check adicional não é necessário neste momento.
|
|
|
|
## Fix Strategy (IMPLEMENTED)
|
|
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` atual
|
|
3. ✅ Emitir erro descritivo se alguma validação falhar
|
|
4. ✅ Modo remoto bypassa validações locais
|