- 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"}
2.2 KiB
2.2 KiB
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
npm run tauri devna tauri-app- Enviar mensagem via ForgeAgent
- 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_snapshottauri-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_runningandreadystate instart_forgeagent_session_commandbefore 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:
- ✅ Obter snapshot completo do runtime
- ✅ Se
connection_mode == "local":- ✅ Verificar
process_running == true - ✅ Verificar
ready == true - ✅ Verificar
statusatual
- ✅ Verificar
- ✅ Emitir erro descritivo se alguma validação falhar
- ✅ Modo remoto bypassa validações locais