修复: aichat P0 三项(AR-2 新建对话守卫 + AR-3 审批卡片可读化 + AR-4 create_project 双审)

- AR-2 ai_conversation_create 加 generating 守卫(clear 前,防审批态新建清空 session 致 generating 永不复位卡死)
- AR-3 audit.rs build_approval_reason 按 9 工具特化拼对象名(id/field/path/title/name)+ ToolCard resultSummary 补 restore/purge case + ARG_LABEL_MAP id 加友好标签 + i18n 双语补 4 key
- AR-4 create_project schema 加 path/stack + handler 有 path 时合并绑定(spawn_blocking 探测栈,复用 bind_directory 逻辑,消除双审双 API)
- cargo check / vue-tsc 0 error
- 审查 boundary 全误判(并行同工作区 git diff 污染),主代理独立核查三任务全正确
This commit is contained in:
2026-06-14 15:51:49 +08:00
parent f0c525d0e7
commit 057a2121a5
6 changed files with 146 additions and 10 deletions

View File

@@ -366,6 +366,11 @@ pub async fn ai_conversation_create(state: State<'_, AppState>) -> Result<serde_
let now = now_millis();
let mut session = state.ai_session.lock().await;
// 生成中(含审批等待态)禁止新建对话:否则 clear 会清空 pending_approvals,
// 用户审批时 ai_approve 找不到 pending → generating 永不复位 → 面板卡死需重启
if session.generating {
return Err("生成中无法新建对话,请先停止或等待完成".to_string());
}
session.active_conversation_id = Some(id.clone());
session.active_conv_created_at = Some(now);
session.messages.clear();