feat(goals): 总览新增目标管理(增/删/改),同步通知 planner 并复活任务
- 总览页新增「目标管理」卡片,支持人工查看/新增/修改/删除目标 - 新增/修改:通知 planner(新增了目标/由 old 变为 new)并复活任务 - 删除:硬删除 goal 节点(级联删边/锚点),通知 planner,不复活任务 - 无 schema 变更:目标仍存 exploration_nodes(kind='goal'),仅加查询方法
This commit is contained in:
1 parent
025e1ce445
commit
d28ecd67fe
9 files changed
+506
-2
No files matched your search
@@ -1488,6 +1488,34 @@ func (t *Task) NotifyGoal(texts []string) {
|
||||
t.Notify()
|
||||
}
|
||||
|
||||
// NotifyGoalDeleted records that the human deleted a goal (via 总览的目标管理), then
|
||||
// wakes the planner so the next round spells out which goal was removed. The event
|
||||
// survives an early-returning terminal round (drain happens after the gate).
|
||||
func (t *Task) NotifyGoalDeleted(text string) {
|
||||
text = strings.TrimSpace(text)
|
||||
if text == "" {
|
||||
return
|
||||
}
|
||||
t.trigMu.Lock()
|
||||
t.pendingTriggers = append(t.pendingTriggers, agent.TriggerEvent{Kind: "goal_deleted", Detail: text})
|
||||
t.trigMu.Unlock()
|
||||
t.Notify()
|
||||
}
|
||||
|
||||
// NotifyGoalEdited records that the human edited a goal (via 总览的目标管理), then wakes
|
||||
// the planner so the next round spells out the old→new change. The event survives an
|
||||
// early-returning terminal round (drain happens after the gate).
|
||||
func (t *Task) NotifyGoalEdited(oldText, newText string) {
|
||||
oldText, newText = strings.TrimSpace(oldText), strings.TrimSpace(newText)
|
||||
if newText == "" {
|
||||
return
|
||||
}
|
||||
t.trigMu.Lock()
|
||||
t.pendingTriggers = append(t.pendingTriggers, agent.TriggerEvent{Kind: "goal_edited", OldGoal: oldText, NewGoal: newText})
|
||||
t.trigMu.Unlock()
|
||||
t.Notify()
|
||||
}
|
||||
|
||||
// NotifyCancelled records that the human deleted intentID (reason = 删除原因), then
|
||||
// wakes the planner so the next round spells out which intent was removed and why.
|
||||
// The intent is stopped (not deleted); the reason is attached to it as a fact.
|
||||
|
||||
Reference in new issue
Block a user