修复: df-mcp evaluate_idea 写回失败感知 + list_trash DB 错误感知(CR-11 2)

CR-260619-11 审查 2 可选改进(MCP 对外场景,非阻塞):
- evaluate_idea: 写回 scores 失败返 err(原 let _ 丢弃)+ 响应用写回后 rec(原 idea 旧版本)
- list_trash: DB 错误返 err(原 unwrap_or_default 吞错误返空列表对外误导)
df-mcp 8 passed 无回归
This commit is contained in:
2026-06-19 19:33:40 +08:00
parent ef465625ed
commit cea0c71546

View File

@@ -613,8 +613,10 @@ fn evaluate_idea(ctx: &Ctx, args: Value) -> BoxFuture<'static, CallToolResult> {
let mut rec = idea.clone(); let mut rec = idea.clone();
rec.scores = Some(serde_json::to_string(&scores).unwrap_or_default()); rec.scores = Some(serde_json::to_string(&scores).unwrap_or_default());
rec.updated_at = now; rec.updated_at = now;
let _ = repo.update_full(&rec).await; if let Err(e) = repo.update_full(&rec).await {
json_ok(json!({ "id": id, "idea": idea, "scores": scores })) return err_str(e);
}
json_ok(json!({ "id": id, "idea": rec, "scores": scores }))
}) })
} }
@@ -661,8 +663,14 @@ fn run_workflow(_ctx: &Ctx, _args: Value) -> BoxFuture<'static, CallToolResult>
fn list_trash(ctx: &Ctx, _args: Value) -> BoxFuture<'static, CallToolResult> { fn list_trash(ctx: &Ctx, _args: Value) -> BoxFuture<'static, CallToolResult> {
let db = ctx.db.clone(); let db = ctx.db.clone();
Box::pin(async move { Box::pin(async move {
let projects = ProjectRepo::new(&db).list_deleted().await.unwrap_or_default(); let projects = match ProjectRepo::new(&db).list_deleted().await {
let tasks = TaskRepo::new(&db).list_deleted().await.unwrap_or_default(); Ok(v) => v,
Err(e) => return err_str(e),
};
let tasks = match TaskRepo::new(&db).list_deleted().await {
Ok(v) => v,
Err(e) => return err_str(e),
};
json_ok(json!({ json_ok(json!({
"projects": projects, "projects": projects,
"tasks": tasks, "tasks": tasks,