优化: agentic防护与删除审批子代理域
- 循环主体 catch_unwind 防护,panic 走正典终态不再卡死 - 会话删除停 in-flight 循环+删除侧单点补发终态 - 审批超时到点主动收敛,执行等待循环加删除判死 - 子代理出口整轨迹落库,拒绝工具结构化+报告协议 - 压缩会话 id 修正,begin_turn 喂用户原文 - 远程桥会话列表按 origin 过滤子会话,新增中断续跑命令
This commit is contained in:
@@ -119,8 +119,12 @@ pub(super) async fn maybe_auto_compress(
|
||||
let conv = session.conv(&conv_id);
|
||||
conv.messages.set_compressing(true);
|
||||
// 读 active 克隆(不改 status):filter is_active,LLM 失败则消息状态完全不变。
|
||||
let active_msgs: Vec<ChatMessage> = conv.messages.messages_mut()
|
||||
[..protect_start]
|
||||
// protect_start 是上一段锁内算的快照,两段锁之间消息可能被清空/裁剪变短,
|
||||
// 切片前按当时实际长度钳制,防 index out of bounds panic
|
||||
// (后续 compress_old_messages 内部自带 min(len) 钳制,口径一致)。
|
||||
let msgs = conv.messages.messages_mut();
|
||||
let cut = protect_start.min(msgs.len());
|
||||
let active_msgs: Vec<ChatMessage> = msgs[..cut]
|
||||
.iter()
|
||||
.filter(|t| t.message.is_active())
|
||||
.map(|t| t.message.clone())
|
||||
|
||||
Reference in New Issue
Block a user