新增: 轮次按发起边界分桶与稳定编号
- 轮号=用户发起消息计数(单一真值来源), 单消息桶不吞号, 编号不再漂移 - 补充注入标 source=inject, 归属当前轮不开新轮(961 轮次语义) - 压缩摘要/错误气泡归属当前轮, 压缩后不再另起新轮次 - reload 消息透传 source 字段, 轮次导航条自动同口径
This commit is contained in:
@@ -1174,7 +1174,15 @@ pub(crate) async fn inject_runtime_message(
|
||||
if !cs.is_active() {
|
||||
return Err(format!("conv {conv_id} 非活跃态({cs:?}),不走注入"));
|
||||
}
|
||||
let msg = ChatMessage::user(&format!("[补充指令] {message}"));
|
||||
let mut msg = ChatMessage::user(&format!("[补充指令] {message}"));
|
||||
// 961② 轮次归属标记:注入=对当前轮的补充,不开新轮。前端轮次分桶按此判据
|
||||
// (source.channel=="inject" 不递增轮号),与发起消息(桌面直发/飞书入站)区分
|
||||
msg.source = Some(df_ai::provider::MessageSource {
|
||||
channel: "inject".into(),
|
||||
message_id: msg.id.clone().unwrap_or_default(),
|
||||
chat_id: None,
|
||||
sender: None,
|
||||
});
|
||||
let mut session = state.ai_session.lock().await;
|
||||
if session.conv_read(conv_id).is_none() {
|
||||
return Ok(false);
|
||||
|
||||
Reference in New Issue
Block a user