MCPcopy Create free account
hub / github.com/compozy/agh / cancelTaskTreeRecord

Method cancelTaskTreeRecord

internal/task/manager.go:1086–1112  ·  view source on GitHub ↗
(
	ctx context.Context,
	rootTaskID string,
	idx int,
	record Task,
	req CancelTask,
	actor ActorContext,
)

Source from the content-addressed store, hash-verified

1084}
1085
1086func (m *Service) cancelTaskTreeRecord(
1087 ctx context.Context,
1088 rootTaskID string,
1089 idx int,
1090 record Task,
1091 req CancelTask,
1092 actor ActorContext,
1093) (Task, error) {
1094 runs, status, err := m.loadTaskRuntimeState(ctx, record)
1095 if err != nil {
1096 return Task{}, err
1097 }
1098 record.Status = status
1099 if idx > 0 && isTerminalTaskStatus(status) {
1100 return record, nil
1101 }
1102
1103 propagatedFromTaskID := cancellationPropagationRoot(rootTaskID, idx)
1104 cancelledRunIDs, err := m.cancelOpenTaskRuns(ctx, record, runs, req, actor, propagatedFromTaskID)
1105 if err != nil {
1106 return Task{}, err
1107 }
1108 if status.Normalize() == TaskStatusCanceled && len(cancelledRunIDs) == 0 {
1109 return record, nil
1110 }
1111 return m.persistCancelledTask(ctx, record, req, actor, propagatedFromTaskID, cancelledRunIDs)
1112}
1113
1114func (m *Service) loadTaskRuntimeState(
1115 ctx context.Context,

Callers 1

CancelTaskMethod · 0.95

Calls 6

loadTaskRuntimeStateMethod · 0.95
cancelOpenTaskRunsMethod · 0.95
persistCancelledTaskMethod · 0.95
isTerminalTaskStatusFunction · 0.85
NormalizeMethod · 0.45

Tested by

no test coverage detected