chore(gitignore): stop tracking local IdeA tickets state
This commit is contained in:
@ -1,54 +0,0 @@
|
||||
---
|
||||
id: "611077a6-f703-44b9-935b-64f8301085bb"
|
||||
number: 95
|
||||
title: "Rendez-vous idea_ask_agent : timeout MCP OpenCode trop court (15s), le demandeur OpenCode ne reçoit jamais la réponse"
|
||||
status: "closed"
|
||||
priority: "high"
|
||||
sprint: null
|
||||
links: []
|
||||
agentRefs: []
|
||||
createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
|
||||
updatedBy: {"kind":"user"}
|
||||
createdAt: 1784822537740
|
||||
updatedAt: 1784934174326
|
||||
version: 6
|
||||
---
|
||||
## Bug
|
||||
|
||||
Une délégation `idea_ask_agent` depuis un agent sous profil **OpenCode** (le **demandeur**) échoue systématiquement en `timeout` (-32001 « Request timed out »), peu importe la cible (Claude, Codex, ou OpenCode). Les agents cibles terminent bien leurs tâches (visible dans le workstate = done), mais leurs réponses ne sont jamais livrées au demandeur OpenCode.
|
||||
|
||||
Claude et Codex ne sont **pas** affectés, qu'ils soient demandeur ou cible.
|
||||
|
||||
## Cause racine (vérifiée dans les sources)
|
||||
|
||||
Le `"timeout": 15000` (15 secondes) **hardcoded** dans le bloc `mcp.idea` de l'`opencode.json` généré par IdeA. OpenCode applique ce timeout **par appel `tools/call`** à ses serveurs MCP. `idea_ask_agent` bloque pendant que l'agent cible travaille (potentiellement des minutes) → OpenCode tue la requête à 15s.
|
||||
|
||||
**Pourquoi Claude/Codex ne sont pas affectés** : leur config MCP (`.mcp.json` / `config.toml`) n'a **pas** de champ `timeout`. Ce champ est spécifique à la config OpenCode (`opencode.json` → `mcp.idea.timeout`).
|
||||
|
||||
### Emplacements (4 occurrences de `15000`)
|
||||
|
||||
1. `crates/application/src/agent/lifecycle.rs` — `opencode_config_json()`
|
||||
2. `crates/application/src/agent/lifecycle.rs` — `opencode_provider_config_json()`
|
||||
3. `crates/infrastructure/src/assistant/mod.rs` — `opencode_config_json()` (duplicate)
|
||||
4. `crates/infrastructure/src/assistant/mod.rs` — `opencode_provider_config_json()` (duplicate)
|
||||
|
||||
## Ce qui n'est PAS la cause
|
||||
|
||||
- Ce n'est pas un problème de sonde de vivacité du rendez-vous (la description originale pointait la sonde Claude-only côté cible — mauvaise piste).
|
||||
- Ce n'est pas un problème de permissions, de sandbox, ou de taille de payload.
|
||||
- Ce n'est pas lié au modèle : tout profil `structuredAdapter: "openCode"` est touché en tant que demandeur.
|
||||
|
||||
## Fix appliqué (feature/ticket95-opencode-mcp-timeout)
|
||||
|
||||
- Constante `DEFAULT_OPENCODE_MCP_TIMEOUT_MS` = 4h (14_400_000 ms), alignée sur `DEFAULT_RENDEZVOUS_CEILING`.
|
||||
- Fonction `resolve_opencode_mcp_timeout_ms()` — overridable via `IDEA_OPENCODE_MCP_TIMEOUT_MS`, fallback sûr.
|
||||
- Les 4 occurrences remplacées.
|
||||
- **Claude/Codex non touchés**.
|
||||
|
||||
## Tests
|
||||
|
||||
Application : 115 passed. Infrastructure : 313 passed. 0 failed.
|
||||
|
||||
## Déploiement
|
||||
|
||||
Nécessite rebuild AppImage (l'`opencode.json` est régénéré à chaque lancement d'agent).
|
||||
Reference in New Issue
Block a user