fix(orchestrator,agent): rendezvous cross-project réarmé par jeton d'activité live model-agnostique — #287 (le watchdog d'inactivité du rendez-vous expirait à 600s sur un tour structured actif car seul le transcript Claude servait de signe de vie; nouveau drain_with_readiness_announcements_and_activity_outcome exposant un jeton monotone AtomicU64 incrémenté par chaque ReplyEvent non terminal du tap send_with_tap, passé au watchdog via AskWatchdogActivity pour réarmer la fenêtre quelle que soit l'adapter; la sonde transcript devient fallback externe; QA verte: orchestrator_service 81/81, rendezvous 5/5, mcp_server 40/40, backend 87+7 ignored, cargo fmt --check; scripts/ hors périmètre)
This commit is contained in:
@ -3346,9 +3346,9 @@ impl BackendCore {
|
||||
// Fenêtre d'inactivité réarmable (signe de vie) du rendez-vous délégué : la
|
||||
// borne de tour dans le service n'est plus un timeout plat mais une fenêtre
|
||||
// réarmée à chaque progrès observé de la cible (octets cumulés de son
|
||||
// transcript Claude), sous le plafond ci-dessous. SANS cette sonde, la borne
|
||||
// dégrade vers un timeout plat (fallback, zéro régression) et coupe un long
|
||||
// tour unique à 600 s — c'est précisément la sonde qui rend le fix effectif.
|
||||
// transcript Claude), sous le plafond ci-dessous. Cette sonde est le fallback
|
||||
// externe du tap live model-agnostique alimenté par `AgentSession::send_with_tap` ;
|
||||
// l'une ou l'autre source suffit désormais à réarmer la fenêtre.
|
||||
// Keyée par (project_root, agent_id) : le run-dir transcript = `<root>/.ideai/
|
||||
// run/<agent_id>`, encodé par Claude sous `<home>/.claude/projects/...`.
|
||||
.with_ask_liveness_probe({
|
||||
|
||||
Reference in New Issue
Block a user