diff --git a/apps/server/src/modules/agent/investigate.ts b/apps/server/src/modules/agent/investigate.ts index f1e4341a..19f76224 100644 --- a/apps/server/src/modules/agent/investigate.ts +++ b/apps/server/src/modules/agent/investigate.ts @@ -375,14 +375,18 @@ export async function applyRecoveryOutcome( else if (check?.state === "recovered") outcome = "recovered"; else if (check?.state === "failed") outcome = "failed"; else if (done.length > 0) outcome = "unverified"; + // 恢复动作执行了但本身失败(如下载器不可达):算 failed,不能写成"没有执行恢复动作" + else if (acts.actions.length > 0) outcome = "failed"; else if (res.reason === "budget") outcome = "budget_exceeded"; else outcome = "not_attempted"; - const what = done.map((a) => a.capabilityId).join(" + "); + const what = (done.length > 0 ? done : acts.actions).map((a) => a.capabilityId).join(" + "); const summary = outcome === "recovered" ? `已恢复(系统核实):执行 ${what} 后业务状态已恢复。` : outcome === "failed" - ? `未恢复:执行 ${what} 后业务状态仍为失败,已退回待处理。` + ? done.length > 0 + ? `未恢复:执行 ${what} 后业务状态仍为失败,已退回待处理。` + : `未恢复:${what} 执行失败,已退回待处理。` : outcome === "unverified" ? `未恢复:执行 ${what} 后在核实时限内业务状态未恢复,已退回待处理。` : outcome === "budget_exceeded"