重构: 后端编排拆解与DRY债收敛及命名纠偏
阶段1拆解: stream 系外移 stream_relay.rs,mod.rs 3048→2607,loop_body 502→83 技能收尾: regenerate/edit 回溯补技能,新增 read_skill 工具,项目级技能扫描 DRY: emit 双写 46 处收敛 event_bus 正典,KV 引号归一收口,LOCK-SLOW 33 处单行化 警示骨架 4→1 与压缩兜底 2→1,噪音目录档位收敛,truncate 同名陷阱消除 工具元数据落 ToolMeta 八维,7 张 match 表改查 registry,parity 测试锁等价 命名: is_noise_entry/teardown_round/probe_missed_terminal_event 等 6 项纠偏
This commit is contained in:
@@ -143,6 +143,13 @@ pub enum AiChatEvent {
|
||||
/// 与 AiToolCallStarted/Completed 正交——这三个事件描述一次信任放行调用生命周期:
|
||||
/// Started → AutoApproved(toast 提示用户已自动放行)→ Completed。
|
||||
AiToolAutoApproved { id: String, tool: String, dir: String, conversation_id: Option<String> },
|
||||
/// 技能注入反馈闭环(/ 技能 resolve 成功/失败通知,前端轻 toast)。
|
||||
///
|
||||
/// 触发:chat.rs `resolve_and_inject` 聚合点(SkillResolver 成功入 augs / 失败收集进
|
||||
/// errors,均在此可见)双写 app.emit + ai_event_bus。`ok=false` 涵盖 skills.rs
|
||||
/// read_skill_content_stripped 的两类失败(缓存未命中 / 文件读失败,均归 NotFound)。
|
||||
/// 前端 AiChat.vue 过滤本变体弹「已注入技能《name》」/「技能 name 未找到」。
|
||||
AiSkillInjected { name: String, ok: bool, conversation_id: Option<String> },
|
||||
/// 需要人工审批
|
||||
/// diff(AE-2025-03,路径 B):仅 write_file 注入(旧文件 vs 新内容行级 unified diff),
|
||||
/// 供审批卡即时预览。旧文件不存在(新建)或非 write_file 工具为 None。
|
||||
|
||||
Reference in New Issue
Block a user