Version: 0.9.35.dev.260422

后端:
1. 任务查询统一紧急性提升链路——LLM 工具与前端共享读时派生 + outbox 异步落库
- service/task.go:GetUserTasks 中读时提升逻辑抽取为独立方法 GetTasksWithUrgencyPromotion,返回 []model.Task 供两路复用
- service/agentsvc/agent.go:新增 GetTasksWithUrgencyPromotionFunc 函数注入字段
- service/agentsvc/agent_task_query.go:QueryTasksForTool 优先走统一提升链路,未注入时回退旧 taskRepo 直接读取
- service/agent_bridge.go:NewAgentServiceWithSchedule 接收 TaskService 并注入提升函数
- cmd/start.go:启动接线传入 taskSv
2. 移除未使用依赖
- go.mod:删除 github.com/bytedance/mockey
This commit is contained in:
LoveLosita
2026-04-22 21:06:09 +08:00
parent 73ab0f43aa
commit ad463eb6a1
6 changed files with 57 additions and 26 deletions

View File

@@ -168,21 +168,25 @@ func (ts *TaskService) UndoCompleteTask(ctx context.Context, req *model.UserUndo
// 2. 真实平移由异步消费者条件更新 DB
// 3. DB 更新后由 cache_deleter 自动删缓存,下一次读取自然拿到新状态。
func (ts *TaskService) GetUserTasks(ctx context.Context, userID int) ([]model.GetUserTaskResp, error) {
// 1. 读取原始任务模型缓存优先DB 兜底)。
derivedTasks, err := ts.GetTasksWithUrgencyPromotion(ctx, userID)
if err != nil {
return nil, err
}
return conv.ModelToGetUserTasksResp(derivedTasks), nil
}
// GetTasksWithUrgencyPromotion 读取用户任务并应用读时紧急性提升 + 异步落库触发。
//
// 统一入口供前端查询GetUserTasks和 LLM 工具查询QueryTasksForTool复用。
// 调用方不应假设 DB 已更新——持久化是异步的。
func (ts *TaskService) GetTasksWithUrgencyPromotion(ctx context.Context, userID int) ([]model.Task, error) {
rawTasks, err := ts.getRawUserTasks(ctx, userID)
if err != nil {
return nil, err
}
// 2. 读时派生:本次请求内把“已到线任务”映射到紧急象限,同时收集待异步落库任务 ID。
derivedTasks, duePromoteTaskIDs := deriveTaskUrgencyForRead(rawTasks, time.Now())
// 3. 非阻断触发异步平移事件:发布失败不影响本次查询返回。
ts.tryEnqueueTaskUrgencyPromote(ctx, userID, duePromoteTaskIDs)
// 4. 最后统一走 conv 转 DTO避免 API 层直接依赖内部模型。
response := conv.ModelToGetUserTasksResp(derivedTasks)
return response, nil
return derivedTasks, nil
}
// getRawUserTasks 读取“原始任务模型”。