Don't call a Merge & continue a dismissal of the ready call
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user