Version: 0.6.3.dev.260316
✨ feat(task): 新增四象限任务懒触发自动平移链路(读时派生 + Outbox 异步收敛) - 🧩 为 `Task` 模型新增 `urgency_threshold_at` 字段,并补充复合索引 `user_id,is_completed,urgency_threshold_at,priority` 及相关事件 payload - ♻️ 重构 `TaskService.GetUserTasks`:调整为“缓存/DB 读取原始任务 -> 读时派生优先级(`2 -> 1`、`4 -> 3`)-> 通过 `SETNX` 去重后发布平移事件”的处理链路 - 🚚 新增任务平移事件链路: - `service/events/task_urgency_promote.go` - 事件类型:`task.urgency.promote.requested` - 支持 `Publish` + `RegisterHandler` + `ConsumeAndMarkConsumed` 的事务化消费流程 - 🛡️ 为 `TaskDAO` 新增幂等批量更新能力 `PromoteTaskUrgencyByIDs`,采用条件更新策略,仅对“达到阈值且未完成”的任务生效 - 🔌 更新启动接线逻辑:注册任务平移 handler,并将 `eventBus` 注入 `NewTaskService` - 🧹 修复并升级任务缓存层,统一为 `[]model.Task` 原始模型缓存;同时清理误导性注释,并补充详细中文步骤化注释 - 🔗 打通 `QuickNote` 链路中的 `urgency_threshold_at` 透传与校验,覆盖 `state` / `tool` / `nodes` / `prompt` / `agent_quick_note` 全链路 - 💾 写库时补充落库 `task.UrgencyThresholdAt` - 📝 新增功能决策记录 之前画的饼正在一块块填上~这一块饼填上之后,第一批开发的后端部分基本已经搞定了。后面的功能全都是天马行空的拓展功能。
This commit is contained in:
@@ -124,11 +124,12 @@ func (s *AgentService) tryHandleQuickNoteWithGraph(
|
||||
CreateTask: func(ctx context.Context, req quicknote.QuickNoteCreateTaskRequest) (*quicknote.QuickNoteCreateTaskResult, error) {
|
||||
// 3.2.1 把 quick note 的工具入参映射成项目 Task 模型。
|
||||
taskModel := &model.Task{
|
||||
UserID: req.UserID,
|
||||
Title: req.Title,
|
||||
Priority: req.PriorityGroup,
|
||||
IsCompleted: false,
|
||||
DeadlineAt: req.DeadlineAt,
|
||||
UserID: req.UserID,
|
||||
Title: req.Title,
|
||||
Priority: req.PriorityGroup,
|
||||
IsCompleted: false,
|
||||
DeadlineAt: req.DeadlineAt,
|
||||
UrgencyThresholdAt: req.UrgencyThresholdAt,
|
||||
}
|
||||
|
||||
// 3.2.2 调用 DAO 写库。
|
||||
@@ -139,10 +140,11 @@ func (s *AgentService) tryHandleQuickNoteWithGraph(
|
||||
|
||||
// 3.2.3 把写库结果回填给 graph 状态,用于后续回复拼装。
|
||||
return &quicknote.QuickNoteCreateTaskResult{
|
||||
TaskID: created.ID,
|
||||
Title: created.Title,
|
||||
PriorityGroup: created.Priority,
|
||||
DeadlineAt: created.DeadlineAt,
|
||||
TaskID: created.ID,
|
||||
Title: created.Title,
|
||||
PriorityGroup: created.Priority,
|
||||
DeadlineAt: created.DeadlineAt,
|
||||
UrgencyThresholdAt: created.UrgencyThresholdAt,
|
||||
}, nil
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user