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

Function requireForceFailStatus

internal/task/force_ops.go:486–515  ·  view source on GitHub ↗
(run Run)

Source from the content-addressed store, hash-verified

484}
485
486func requireForceFailStatus(run Run) error {
487 switch run.Status.Normalize() {
488 case TaskRunStatusQueued, TaskRunStatusClaimed:
489 return nil
490 case TaskRunStatusCompleted, TaskRunStatusFailed, TaskRunStatusCanceled:
491 return forceRunDiagnosticError(
492 diagnosticcontract.CodeTaskRunAlreadyTerminal,
493 "Task run is already terminal",
494 fmt.Sprintf("Run %s is already %s and cannot be force failed.", run.ID, run.Status.Normalize()),
495 diagnosticcontract.SeverityInfo,
496 fmt.Sprintf("agh task inspect %s", run.ID),
497 map[string]any{runEvidenceIDKey: run.ID, leaseStatusKey: string(run.Status.Normalize())},
498 ErrInvalidStatusTransition,
499 )
500 default:
501 return forceRunDiagnosticError(
502 diagnosticcontract.CodeTaskRunStillActive,
503 "Task run is still active",
504 fmt.Sprintf(
505 "Run %s is %s; active runs must be stopped before forced failure.",
506 run.ID,
507 run.Status.Normalize(),
508 ),
509 diagnosticcontract.SeverityError,
510 fmt.Sprintf("agh task cancel %s --reason %q", run.ID, "stop before force fail"),
511 map[string]any{runEvidenceIDKey: run.ID, leaseStatusKey: string(run.Status.Normalize())},
512 ErrInvalidStatusTransition,
513 )
514 }
515}
516
517func (m *Service) requireRetryChainDepth(ctx context.Context, source Run) error {
518 runs, err := m.store.ListTaskRuns(ctx, RunQuery{TaskID: source.TaskID})

Callers 1

ForceFailRunMethod · 0.85

Calls 2

forceRunDiagnosticErrorFunction · 0.85
NormalizeMethod · 0.45

Tested by

no test coverage detected