# 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