fix(audit): Batch 0-1 文档校准 + let _ = 静默错误修复
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
Batch 0: - TRUTH.md 中间件层 14→15 (补 EvolutionMiddleware@78) - wiki/middleware.md 同步 15 层 + 优先级分类更新 - Store 数字确认 25 个 Batch 1: - approvals.rs: 3 处 map_err+let _ = 简化为 if let Err - director.rs: oneshot send 失败添加 debug 日志 - task.rs: 4 处子任务状态更新添加 debug 日志 - chat.rs: 流消息发送和事件 emit 添加 warn/debug 日志 - heartbeat.rs: 告警广播添加 debug 日志 + break 优化 全量测试通过: 719 passed, 0 failed
This commit is contained in:
@@ -291,15 +291,19 @@ pub async fn agent_chat_stream(
|
||||
);
|
||||
|
||||
let (tx, rx) = tokio::sync::mpsc::channel(32);
|
||||
let _ = tx.send(zclaw_runtime::LoopEvent::Delta(confirm_msg)).await;
|
||||
let _ = tx.send(zclaw_runtime::LoopEvent::Complete(
|
||||
if tx.send(zclaw_runtime::LoopEvent::Delta(confirm_msg)).await.is_err() {
|
||||
tracing::warn!("[agent_chat_stream] Failed to send confirm msg to new channel");
|
||||
}
|
||||
if tx.send(zclaw_runtime::LoopEvent::Complete(
|
||||
zclaw_runtime::AgentLoopResult {
|
||||
response: String::new(),
|
||||
input_tokens: 0,
|
||||
output_tokens: 0,
|
||||
iterations: 1,
|
||||
}
|
||||
)).await;
|
||||
)).await.is_err() {
|
||||
tracing::warn!("[agent_chat_stream] Failed to send complete to new channel");
|
||||
}
|
||||
drop(tx);
|
||||
(rx, None)
|
||||
} else {
|
||||
@@ -400,10 +404,12 @@ pub async fn agent_chat_stream(
|
||||
// Check cancellation flag before each recv
|
||||
if cancel_clone.load(std::sync::atomic::Ordering::SeqCst) {
|
||||
tracing::info!("[agent_chat_stream] Stream cancelled for session: {}", session_id);
|
||||
let _ = app.emit("stream:chunk", serde_json::json!({
|
||||
if let Err(e) = app.emit("stream:chunk", serde_json::json!({
|
||||
"sessionId": session_id,
|
||||
"event": StreamChatEvent::Error { message: "已取消".to_string() }
|
||||
}));
|
||||
})) {
|
||||
tracing::debug!("[agent_chat_stream] Failed to emit cancel event: {}", e);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -491,12 +497,14 @@ pub async fn agent_chat_stream(
|
||||
}
|
||||
Err(_) => {
|
||||
tracing::warn!("[agent_chat_stream] Stream idle timeout for session: {}", session_id);
|
||||
let _ = app.emit("stream:chunk", serde_json::json!({
|
||||
if let Err(e) = app.emit("stream:chunk", serde_json::json!({
|
||||
"sessionId": session_id,
|
||||
"event": StreamChatEvent::Error {
|
||||
message: "流式响应超时,请重试".to_string()
|
||||
}
|
||||
}));
|
||||
})) {
|
||||
tracing::debug!("[agent_chat_stream] Failed to emit timeout event: {}", e);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user