--- 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 ` ; 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 ` à 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/`).