优化: agentic防护与删除审批子代理域

- 循环主体 catch_unwind 防护,panic 走正典终态不再卡死
- 会话删除停 in-flight 循环+删除侧单点补发终态
- 审批超时到点主动收敛,执行等待循环加删除判死
- 子代理出口整轨迹落库,拒绝工具结构化+报告协议
- 压缩会话 id 修正,begin_turn 喂用户原文
- 远程桥会话列表按 origin 过滤子会话,新增中断续跑命令
This commit is contained in:
lxy
2026-10-03 15:35:08 +08:00
parent c1e5b96d75
commit d406a31722
12 changed files with 1139 additions and 306 deletions
@@ -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())