Files
IdeA/.ideai/tickets/255/carnet.md

27 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
issueRef: "#255"
version: 5
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1787569961595
---
Cause racine confirmée côté chemin headless OpenCode de `idea_ask_agent`.
Constat:
- Le run headless OpenCode était lancé depuis le run dir isolé sans `--dir <project_root>` ; une délégation pouvait donc s’exécuter hors du project root attendu.
- En reprise `--session`, OpenCode peut aussi sortir sans final JSON/textuel exploitable ; cela se manifestait côté Main par `finished without a structured Final response`.
- Le symptôme ne concernait pas la cellule visible de l’agent, ce qui isolait le bug au chemin de délégation headless.
Fix livré:
- `crates/infrastructure/src/session/factory.rs` passe désormais `ctx.project_root` à `OpenCodeSession`.
- `crates/infrastructure/src/session/opencode.rs` ajoute `--dir <project_root>` à chaque `opencode run`.
- En cas de reprise `--session` sans final exploitable, un retry unique est tenté en session fraîche, borné au même project root.
- Tests ajoutés: `send_passes_project_root_as_opencode_dir_without_changing_process_cwd` et `resumed_session_without_final_retries_once_as_fresh_project_scoped_run`.
Validation:
- QA verte le 2026-08-24 sur `cargo test -p infrastructure session::opencode -- --test-threads=1` (25 tests OK).
- Limite restante: pas d’e2e live OpenCode inter-projets exécutée contre un binaire/provider externe durant ce cycle.
Git:
- Branche de travail: `fix/255-opencode-cross-project-reattach-final`.
- Commits/merge locaux annoncés par Git: `8bea678` (fix), `6294ceb` (chore tickets), merge `9505a33` dans `develop`.
- Des changements hors sujet sont restés hors commit (`.ideai/tickets/254/*`, `scripts/`).