优化: 边界加固(AI loop竞态根治+数据/审批/反馈/并发/错误分类)

AI loop 竞态(P0):per-conv epoch/owner token + 存活心跳治 force_send 双loop + stop 3s兜底误判;旧loop stale 全跳过(guard/emit/save)

agentic 收尾(A2-B8):Fatal 退出落库user消息(镜像Exhausted)+ 入口早退补save + usage is_estimated 打标 + emit_ai_completed_once 单点收敛清审批残留

聊天清理(A2-B9):clearChat 先停loop→DB单事务→内存清(clear_conversation_atomic)+ 前端错误气泡

循环并发(A2-B11):三态 ProviderAcquire(NotConfigured/Acquired/Exhausted)+ 候选循环非阻塞+防抖3次饱和降级+单测

错误分类(A2-B12):stream error帧接入 classify_status_or_class + 关键词保守降级 + 7单测

数据(G1.2/G1.4):purge_with_descendants 级联补全(11表单事务+存在性守卫)+ move_task_queue 单事务收口(两调用方共用)

git只读(G3.1):run_git_status/diff/log success判定(exit_code差异语义,失败结构化{success:false,error})

安全(G5.2/G5.6):create_project 目录Err+name校验 + module.rs 路径遍历DRY(分段匹配修a..b.rs误伤)

幂等(V2/V32):裸ALTER全守卫化 + v1..v40全链重跑幂等测试(16过)

附:remote_bridge await 临时引用修(E0716)+ agentic emit 收敛 E0716 app_state 绑定修
This commit is contained in:
lxy
2026-08-05 22:10:32 +08:00
parent ec9f0bf1ea
commit 5667da6cf4
16 changed files with 1696 additions and 215 deletions
+12 -1
View File
@@ -480,8 +480,13 @@ pub struct KnowledgeEventRecord {
/// 工程记录(project_modules 表,项目多工程,每个工程独立代码仓库)
///
/// 一个项目可含多个工程(Monorepo 多仓库 / 微服务 / 前后端分离)。
/// 每个工程有独立的目录(`path`)、Git 地址(`git_url`)、技术栈(`stack`)
/// 每个工程有独立的目录(`path`)、Git 地址(`git_url`)、技术栈(`stack`)
/// 职责描述(`description`)、状态(`status`)。
/// Git 状态(分支/改动/提交)是实时派生的(查 git 命令),不存表。
///
/// 字段可空性说明:
/// - `description` / `status`:V40 加列,老工程(V34 前创建)为 None。
/// 应用层/前端回读时 `status` 视 None 为 `active`(默认活跃),`description` 视空串。
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ProjectModuleRecord {
pub id: String,
@@ -494,6 +499,12 @@ pub struct ProjectModuleRecord {
pub sort_order: i32,
pub created_at: String,
pub updated_at: String,
/// 工程职责描述(如"前端 web 工程""后端 API 服务")。V40 加列,老工程 None。
#[serde(default)]
pub description: Option<String>,
/// 工程状态:active(活跃)/ archived(归档)。V40 加列,老工程 None 视为 active。
#[serde(default)]
pub status: Option<String>,
}
/// 工程依赖关系记录(V35 module_dependencies 表)。