--- issueRef: "#263" version: 14 updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedAt: 1788792738864 --- # Carnet #263 Contexte implementation backend issu de #262: - Identite canonique cross-project: `CrossProjectAgentRef { projectId, agentId }`; ne jamais router par nom. - Tools MCP additifs: `idea_project_list`, `idea_project_read_context`, `idea_project_list_agents`, `idea_project_ask_agent`, `idea_project_cancel_agent`. - Runtime target et busy/cancel indexes par `RuntimeAgentKey(projectId, agentId)`. - Permissions: agent contactable cross-project par projet, templates avec default materialise a la creation d'agent. Git: - Lot initial committe par Git: `9895498` sur `feature/260-backend`, merge root `530ce01` dans `feature/260-cross-project-agents`. Corrections QA: - Homonymes ask/cancel: `crates/application/src/orchestrator/service.rs` route via l'Agent resolu par `agentId`, sans repasser par nom; `idea_project_cancel_agent` stoppe via `agentId`. - App-tauri fixture: `crates/app-tauri/src/templates.rs` corrige `with_metadata(...)` avec `default_contactable`. - Provider template update: `crates/domain/src/template.rs` serialise toujours `default_contactable`, y compris `false`, pour renvoyer `defaultContactable: false` au lieu de Null. Tests verts connus: - `cargo test -p application cross_project_ --test orchestrator_service -- --nocapture` (5 passed) - `cargo test -p app-tauri --test dto_templates -- --nocapture` (22 passed) - `cargo test -p app-tauri template_provider_crud_round_trips_and_update_publishes_event -- --nocapture` (1 passed) - `cargo fmt --check` - `cargo check -p application -p infrastructure -p backend -p app-tauri --lib` - `cargo check -p domain -p app-tauri --lib`