Don't call a Merge & continue a dismissal of the ready call

This commit is contained in:
Ian Gulliver
2026-10-20 15:01:26 -07:00
parent a95e0ddb29
commit cf9ee03284
7 changed files with 21 additions and 7 deletions
+5 -1
View File
@@ -352,7 +352,11 @@ func (m *Manager) Observe(events []api.Event) {
go m.promptReady(*ev.TaskId, nil)
}
switch ev.Kind {
case "inbox.created", "inbox.updated", "task.created", "task.merge_queued", "task.merge_after_review", "task.merge_after_review_cancelled", "task.merge_after_review_dropped", "task.merge_started", "task.merged", "task.discarded", "turn.ended", "task.workflow_stage", "task.workflow_finished", "review.started", "review.finished", "task.state", "task.ready", "task.discard_suggested", "task.ready_cleared":
case "inbox.created", "inbox.updated", "task.created", "task.merge_queued", "task.merge_after_review", "task.merge_after_review_cancelled", "task.merge_after_review_dropped", "task.merge_started", "task.merged", "task.discarded", "turn.ended", "task.workflow_stage", "task.workflow_finished", "review.started", "review.finished", "task.state", "task.ready", "task.discard_suggested":
case "task.ready_cleared":
if ev.Payload["reason"] == "merge" {
continue
}
case "user.message":
if ev.TaskId == nil || !humanActor(ev.Actor) {
continue
+1 -1
View File
@@ -230,7 +230,7 @@ func (m *Manager) MergeToMain(ctx context.Context, task api.Task, project api.Pr
return api.Task{}, err
}
err = m.store.ClearReady(ctx, task.Id, user.Login)
err = m.store.ClearReady(ctx, task.Id, user.Login, "merge")
if err != nil && !errors.Is(err, store.ErrNotFound) {
return api.Task{}, err
}
+1 -1
View File
@@ -118,7 +118,7 @@ func (m *Manager) cancelReadyTool(l *live) mcp.Tool {
"The human then no longer sees the task as ready to merge or as suggested for discard; call ready_for_merge or suggest_discard again once it holds.",
InputSchema: json.RawMessage(`{"type": "object", "properties": {}}`),
Handler: func(ctx context.Context, raw json.RawMessage) (string, error) {
err := m.store.ClearReady(ctx, l.taskID, agentActor)
err := m.store.ClearReady(ctx, l.taskID, agentActor, "")
if errors.Is(err, store.ErrNotFound) {
return "", fmt.Errorf("%w: this task has no standing ready_for_merge or suggest_discard", ErrConflict)
}