Files
IdeA/.ideai/memory/ticket287-cross-project-rendezvous-live-activity-fix.md

2.7 KiB

name, description, metadata
name description metadata
ticket287-cross-project-rendezvous-live-activity-fix memory note ticket287-cross-project-rendezvous-live-activity-fix
type
project

Ticket #287 — Cross-project headlessRendezvous réarmé par activité live

Symptôme

Un appel cross-project UnitySoundTool -> UnityPlugin/Main a expiré après 10 minutes avec le workstate cible Failed / headlessRendezvous / 4c3d6b38 et le message Timeout: rendezvous inactivity window expired for target Main.

Cause

Le chemin concerné est le rendez-vous structured/headless (ask_project_agent_for_mcp -> ask_resolved_agent -> ask_structured), pas l'ancien rendez-vous MCP idea_reply.

Le watchdog réarmable existait déjà, mais la sonde production externe observait surtout les transcripts Claude. UnityPlugin/Main étant un agent Codex, un tour structured actif pouvait ne produire aucun progrès visible pour cette sonde et expirer à la première fenêtre de 600s.

Contrat livré

Depuis le fix #287, ask_structured alimente un jeton monotone local via AgentSession::send_with_tap. Chaque ReplyEvent live non terminal réarme l'activité du rendez-vous, indépendamment du provider. La sonde transcript reste un fallback externe, notamment pour les adapters qui ne produisent pas d'événements intermédiaires.

Le Final reste la seule réponse normale. Absence réelle de tout signe de vie pendant une fenêtre complète => timeout d'inactivité. Activité continue jusqu'au plafond absolu => ceiling active.

Fichiers et commits

Fichiers touchés:

  • crates/application/src/agent/mod.rs
  • crates/application/src/agent/structured.rs
  • crates/application/src/orchestrator/service.rs
  • crates/application/tests/orchestrator_service.rs
  • crates/backend/src/lib.rs

Commit fix: 7716910. Merge local develop: 5d62515.

Validation

QA verte:

  • cargo fmt --check
  • cargo test -p application --test orchestrator_service => 81 passed
  • cargo test -p application orchestrator::rendezvous => 5 passed
  • cargo test -p infrastructure --test mcp_server => 40 passed
  • cargo test -p backend => 87 passed, 7 ignored

AppImage rebuildée le 2026-09-08: /home/anthony/Documents/Projects/IdeA/target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage (114M).

Activation

Le binaire actif reste l'AppImage installée. Pour activer le fix en live, remplacer l'AppImage installée puis relancer IdeA. Cette relance tue l'orchestrateur courant, donc elle reste manuelle.