修复: AI工具调用健壮性+审批卡片可读化+任务工具补全
- AC1/AC2 anthropic_compat tool_use_id None/空时跳过或占位(防GLM端500卡死) - AR-3 审批卡片 id→项目名回显(前端白名单特化) + 后端查不到友好提示 - FR-D6 补 delete_task/update_task 工具(防误用 delete_project 清理孤儿任务) - FR-D7 抽 bind_dir_to_project 消除 create_project/bind_directory 重复 - FR-D8 create_idea schema 补 priority 契约对齐 - FR-S4 SKILL.md 注入加头尾隔离标注防 prompt injection 混淆 - FR-R4 complete() 加 60s 单请求超时(不影响 stream)
This commit is contained in:
@@ -38,9 +38,10 @@ pub(crate) fn risk_from_str(s: &str) -> Option<RiskLevel> {
|
||||
}
|
||||
}
|
||||
|
||||
/// 查项目可读标签:id → "「项目名」(id=x)",查不到回退 "(id=x)",空 id 返回空串。
|
||||
/// 查项目可读标签:id → "「项目名」(id=x)",查不到回退友好提示,空 id 返回空串。
|
||||
///
|
||||
/// AR-3:审批卡片需显示对象名而非裸 id(用户反馈"只返回 ID 不知道是什么数据")。
|
||||
/// 查不到(项目已被彻底清除/外部 id)时给"项目已不存在"提示而非裸 id,避免用户困惑。
|
||||
async fn resolve_project_label(db: &Arc<Database>, id: &str) -> String {
|
||||
if id.is_empty() {
|
||||
return String::new();
|
||||
@@ -48,7 +49,7 @@ async fn resolve_project_label(db: &Arc<Database>, id: &str) -> String {
|
||||
let repo = ProjectRepo::new(db);
|
||||
match repo.get_by_id(id).await {
|
||||
Ok(Some(p)) => format!("「{}」(id={})", p.name, id),
|
||||
_ => format!("(id={})", id),
|
||||
_ => format!("(项目已不存在, id={})", id),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user