From e02234875132885e70b36307cc18d3510a39d921 Mon Sep 17 00:00:00 2001 From: cfdaily Date: Tue, 9 Jun 2026 23:40:38 +0800 Subject: [PATCH] docs(#08): update A13 revised - exit=0 always completed Merge old A12/A13 into single A13 revised: trust exit_code=0 regardless of stdout/JSON output. Old logic caused inform Mail infinite retry loop. --- docs/design/08-classify-outcome-optimization.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/design/08-classify-outcome-optimization.md b/docs/design/08-classify-outcome-optimization.md index 6402885..6f4a305 100644 --- a/docs/design/08-classify-outcome-optimization.md +++ b/docs/design/08-classify-outcome-optimization.md @@ -110,8 +110,8 @@ TCP 握手只能检测进程端口是否监听,无法检测 Gateway **业务 | 编号 | 条件 | outcome | 可恢复? | 处理 | |------|------|---------|----------|------| -| A12 | exit=0 + task_status ∈ {done, review} | completed | — | 正常完成 | -| A13 | exit=0 + task_status ∉ {done, review} | agent_error | ❌ | 标 failed + 原因写黑板 | +| A12 | ~~已合并到 A13 revised~~ | — | — | 见下方 A13 revised | +| **A13 revised** | exit=0(无 JSON 输出) | completed | — | 信任进程退出码,exit=0 即正常完成。旧逻辑按 task_status 区分,非终态判 agent_error → 导致 inform Mail 永不标 done,与 dispatcher inform auto-done 形成死循环 | | **A14** | exit=130 (SIGINT) 或 exit=143 (SIGTERM) | interrupted | ✅ | retry | | **A15** | exit≠0 + stderr 含 network 关键字 | gateway_unreachable | ✅ | retry + cooldown 30s | | **A16** | exit≠0 + stderr 含 compact 关键字 | compact_interrupted | ✅ | retry + cooldown 60s |