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

Function planTaskRunRecovery

internal/daemon/task_runtime.go:636–702  ·  view source on GitHub ↗
(
	ctx context.Context,
	sessions taskBridgeSessionManager,
	run taskpkg.Run,
)

Source from the content-addressed store, hash-verified

634}
635
636func planTaskRunRecovery(
637 ctx context.Context,
638 sessions taskBridgeSessionManager,
639 run taskpkg.Run,
640) (*taskpkg.RunBootRecovery, error) {
641 if sessions == nil {
642 return nil, errors.New("daemon: task recovery requires a session manager")
643 }
644
645 evidence, err := inspectTaskSessionRecovery(ctx, sessions, strings.TrimSpace(run.SessionID))
646 if err != nil {
647 return nil, err
648 }
649
650 switch run.Status.Normalize() {
651 case taskpkg.TaskRunStatusClaimed:
652 if evidence.live {
653 return &taskpkg.RunBootRecovery{
654 Action: taskpkg.RunBootRecoveryMarkRunning,
655 Reason: taskRecoveryReasonBoot,
656 SessionState: evidence.state,
657 Classification: evidence.classification,
658 Detail: evidence.detail,
659 }, nil
660 }
661 return &taskpkg.RunBootRecovery{
662 Action: taskpkg.RunBootRecoveryRequeue,
663 Reason: taskRecoveryReasonBoot,
664 SessionState: evidence.state,
665 Classification: evidence.classification,
666 Detail: evidence.detail,
667 }, nil
668
669 case taskpkg.TaskRunStatusStarting:
670 if evidence.live {
671 return &taskpkg.RunBootRecovery{
672 Action: taskpkg.RunBootRecoveryMarkRunning,
673 Reason: taskRecoveryReasonBoot,
674 SessionState: evidence.state,
675 Classification: evidence.classification,
676 Detail: evidence.detail,
677 }, nil
678 }
679 return &taskpkg.RunBootRecovery{
680 Action: taskpkg.RunBootRecoveryFail,
681 Reason: taskRecoveryReasonBoot,
682 SessionState: evidence.state,
683 Classification: evidence.classification,
684 Detail: evidence.detail,
685 }, nil
686
687 case taskpkg.TaskRunStatusRunning:
688 if evidence.live {
689 return nil, nil
690 }
691 return &taskpkg.RunBootRecovery{
692 Action: taskpkg.RunBootRecoveryFail,
693 Reason: taskRecoveryReasonBoot,

Calls 2

NormalizeMethod · 0.45