重构: F-09批2 调用方迁移per-conv(双写桥接共存期)
- agentic.rs: GeneratingGuard加conv_id + 三处退出校验改conv存在性(决策e) + stop_flag/notify/messages/iteration per-conv + try_continue加conv_id参数 - commands.rs: IPC写路径双写桥接(per_conv新真相源+顶层双写,批4删) + ai_is_generating读per_conv fallback顶层 - audit/conversation/title/knowledge_inject/lib.rs: per_conv读写迁移 - conv()/conv_read()去allow(批2有调用方) 共存期双写: per_conv主+顶层双写兼容批4前IPC,批4签名改后删顶层 主代兜底: cargo check --workspace 0 + test 96 passed + grep三处退出/GeneratingGuard/双写印证
This commit is contained in:
@@ -349,10 +349,11 @@ pub struct AiSession {
|
||||
pub session_trust: HashSet<TrustKey>,
|
||||
/// F-260616-09 B 阶段批1 多会话并发架构:会话级状态按 conversation_id 切分。
|
||||
///
|
||||
/// **批1 状态(纯新增无行为变化)**:此 HashMap 初始空,批1 不迁移任何调用方 ——
|
||||
/// 现有所有路径继续读写顶层单例字段(messages/generating/stop_flag 等),完全无感。
|
||||
/// 批2 承接迁移:调用方改走 `session.conv(conv_id).*`,迁移完成后顶层单例字段废弃删除。
|
||||
#[allow(dead_code)] // F-09 B 批1 共存期:批2 迁移承接(0 写入方)
|
||||
/// **批2 状态(per-conv 是新真相源)**:批2 已迁移所有调用方(agentic.rs loop +
|
||||
/// GeneratingGuard + try_continue + commands.rs IPC 写路径 + audit.rs process_tool_calls +
|
||||
/// conversation.rs save + title.rs + knowledge_inject.rs + lib.rs L0)读写 `session.conv(conv_id).*`
|
||||
/// / `session.conv_read(conv_id)`。顶层单例字段(messages/generating/stop_flag 等)批2 期间
|
||||
/// 作双写桥接保留(IPC 仍双写顶层保 ai_is_generating 等读路径兼容,批4 IPC 迁移后顶层移除)。
|
||||
pub per_conv: HashMap<String, PerConvState>,
|
||||
}
|
||||
|
||||
@@ -423,9 +424,6 @@ impl AiSession {
|
||||
/// 不存在则 `entry().or_insert_with(PerConvState::new)` 创建一份默认状态,
|
||||
/// 初值对齐 [`AiSession::new`] / [`PerConvState::new`]。
|
||||
/// 已存在则返回同一实例引用(同 conv_id 复用)。
|
||||
///
|
||||
/// **批1 状态**:0 调用方(批2 迁移承接)。行为不变。
|
||||
#[allow(dead_code)] // F-09 B 批1 共存期:批2 迁移承接(0 调用方)
|
||||
pub fn conv(&mut self, conv_id: &str) -> &mut PerConvState {
|
||||
self.per_conv
|
||||
.entry(conv_id.to_string())
|
||||
@@ -436,9 +434,6 @@ impl AiSession {
|
||||
///
|
||||
/// 未创建的 conv_id 返 `None`,已创建返 `Some(&PerConvState)`。用于读取路径(如
|
||||
/// 列举/查询)避免误触发惰性创建。
|
||||
///
|
||||
/// **批1 状态**:0 调用方(批2 迁移承接)。行为不变。
|
||||
#[allow(dead_code)] // F-09 B 批1 共存期:批2 迁移承接(0 调用方)
|
||||
pub fn conv_read(&self, conv_id: &str) -> Option<&PerConvState> {
|
||||
self.per_conv.get(conv_id)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user