fix(agent): timeout MCP OpenCode aligné sur le plafond du rendez-vous (#95)
Le timeout hardcoded 15000ms (15s) dans le bloc mcp.idea de l'opencode.json généré par IdeA était far too short pour idea_ask_agent, qui bloque pendant que l'agent cible travaille. OpenCode tuait la requête à 15s avec l'erreur -32001 « Request timed out », même si la cible répondait correctement (visible dans le workstate). Claude/Codex n'étaient pas affectés car leur config MCP n'a pas de champ timeout. Désormais le timeout est résolu par resolve_opencode_mcp_timeout_ms() : - défaut 4h (14_400_000 ms), aligné sur DEFAULT_RENDEZVOUS_CEILING ; - overridable via IDEA_OPENCODE_MCP_TIMEOUT_MS ; - fallback sûr sur 0/parse-error (jamais d'expiration instantanée). Les 4 occurrences (lifecycle.rs x2 + assistant/mod.rs x2) utilisent la même fonction exportée depuis application::agent. Aucune modification des configs MCP Claude/Codex.
This commit is contained in:
@ -407,7 +407,7 @@ fn opencode_config_json(
|
||||
"command": command_array,
|
||||
"cwd": project_root,
|
||||
"enabled": true,
|
||||
"timeout": 15000
|
||||
"timeout": application::agent::resolve_opencode_mcp_timeout_ms()
|
||||
}
|
||||
}),
|
||||
);
|
||||
@ -492,7 +492,7 @@ fn opencode_provider_config_json(
|
||||
"command": command_array,
|
||||
"cwd": project_root,
|
||||
"enabled": true,
|
||||
"timeout": 15000
|
||||
"timeout": application::agent::resolve_opencode_mcp_timeout_ms()
|
||||
}
|
||||
}),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user