fix(orchestrator): corrige la delegation inter-agent GLM/OpenCode sans reponse Final

La detection d'absence de reponse structuree finale (structured_no_reply_error)
ne couvrait pas AgentSessionError::Decode ni le message "aucun final textuel
exploitable" emis par l'adaptateur OpenCode, ce qui laissait idea_ask_agent
planter silencieusement sur les profils GLM/OpenCode au lieu de retomber sur
le chemin de secours prevu.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-04 09:50:02 +02:00
parent 11c405efea
commit b88d500d89
3 changed files with 301 additions and 58 deletions

View File

@ -79,12 +79,17 @@ fn submit_config_for_profile(profile: &AgentProfile) -> SubmitConfig {
}
fn structured_no_reply_error(err: &domain::ports::AgentSessionError) -> bool {
matches!(
err,
match err {
domain::ports::AgentSessionError::Io(message)
if message.contains("sans événement Final")
| domain::ports::AgentSessionError::Decode(message) => {
message.contains("sans événement Final")
|| message.contains("without a structured final")
)
|| message.contains("aucun final textuel exploitable")
}
domain::ports::AgentSessionError::Start(_) | domain::ports::AgentSessionError::Timeout => {
false
}
}
}
fn bound_task_text(value: &str, max_bytes: usize) -> String {