Signal the lead when a task is created, except tasks it created

This commit is contained in:
Ian Gulliver
2026-10-15 10:12:44 -07:00
parent fdd005b591
commit 184bfe429e
15 changed files with 112 additions and 29 deletions
+8 -4
View File
@@ -97,7 +97,7 @@ func (e *env) addTask() api.Task {
if err != nil {
e.t.Fatalf("add worktree: %v", err)
}
err = e.store.CreateTask(e.ctx, task)
err = e.store.CreateTask(e.ctx, task, login)
if err != nil {
e.t.Fatalf("create task: %v", err)
}
@@ -884,12 +884,13 @@ func TestStartTodo(t *testing.T) {
gitOut(t, e.repo, "add", "TODO.md")
gitOut(t, e.repo, "commit", "--quiet", "--message", "add todo")
_, err := m.StartTodo(e.ctx, e.project, e.user, "No such item", testModel)
lead := login + " (lead)"
_, err := m.StartTodo(e.ctx, e.project, e.user, "No such item", testModel, lead)
if !errors.Is(err, store.ErrNotFound) {
t.Fatalf("start unknown item: %v", err)
}
task, err := m.StartTodo(e.ctx, e.project, e.user, "Create hello.txt", testModel)
task, err := m.StartTodo(e.ctx, e.project, e.user, "Create hello.txt", testModel, lead)
if err != nil {
t.Fatalf("start todo: %v", err)
}
@@ -897,7 +898,7 @@ func TestStartTodo(t *testing.T) {
t.Fatalf("todo task %+v", task)
}
_, err = m.StartTodo(e.ctx, e.project, e.user, "Create hello.txt", testModel)
_, err = m.StartTodo(e.ctx, e.project, e.user, "Create hello.txt", testModel, lead)
if !errors.Is(err, agents.ErrConflict) {
t.Fatalf("second start of the same item: %v", err)
}
@@ -906,6 +907,9 @@ func TestStartTodo(t *testing.T) {
return ev.Kind == "turn.ended" && ev.TaskId != nil && *ev.TaskId == task.Id
})
for _, ev := range events {
if ev.Kind == "task.created" && ev.TaskId != nil && *ev.TaskId == task.Id && (ev.Actor != lead || ev.Payload["created_by"] != login) {
t.Fatalf("task.created actor %q, created_by %v", ev.Actor, ev.Payload["created_by"])
}
if ev.Kind == "user.message" && ev.TaskId != nil && *ev.TaskId == task.Id {
text, _ := ev.Payload["text"].(string)
if !strings.Contains(text, "- Create hello.txt\n It holds the single line `hi`.") || !strings.Contains(text, "remove this item from TODO.md") {