chore(tickets): synchro du store local — création #256 (Rebuild AppImage) + #257 (stop custom CLI), clôture #255 ; dérive résiduelle #254

This commit is contained in:
2026-08-28 22:57:32 +02:00
parent 1aabc3d702
commit 588914c83e
10 changed files with 157 additions and 12 deletions

View File

@ -1,6 +1,27 @@
---
issueRef: "#255"
version: 3
version: 5
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1787569806822
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/`).