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

Function inspectTaskSessionRecovery

internal/daemon/task_runtime.go:725–772  ·  view source on GitHub ↗
(
	ctx context.Context,
	sessions taskBridgeSessionManager,
	sessionID string,
)

Source from the content-addressed store, hash-verified

723}
724
725func inspectTaskSessionRecovery(
726 ctx context.Context,
727 sessions taskBridgeSessionManager,
728 sessionID string,
729) (taskSessionRecoveryEvidence, error) {
730 trimmedID := strings.TrimSpace(sessionID)
731 if trimmedID == "" {
732 return taskSessionRecoveryEvidence{
733 state: taskRecoverySessionMissing,
734 classification: taskRecoveryClassificationMissing,
735 detail: "run has no bound session",
736 }, nil
737 }
738
739 info, err := sessions.Status(ctx, trimmedID)
740 if err != nil {
741 if errors.Is(err, session.ErrSessionNotFound) {
742 return taskSessionRecoveryEvidence{
743 state: taskRecoverySessionMissing,
744 classification: taskRecoveryClassificationMissing,
745 detail: "bound session metadata is missing",
746 }, nil
747 }
748 return taskSessionRecoveryEvidence{}, err
749 }
750 if info == nil {
751 return taskSessionRecoveryEvidence{
752 state: taskRecoverySessionMissing,
753 classification: taskRecoveryClassificationMissing,
754 detail: "bound session metadata is missing",
755 }, nil
756 }
757
758 evidence := taskSessionRecoveryEvidence{
759 live: isTaskSessionStateLive(info.State),
760 state: string(info.State),
761 }
762 if evidence.state == "" {
763 evidence.state = taskRecoverySessionMissing
764 }
765 if evidence.live {
766 evidence.classification = taskRecoveryClassificationLive
767 return evidence, nil
768 }
769
770 evidence.classification, evidence.detail = classifyRecoveredTaskSession(info, time.Now().UTC())
771 return evidence, nil
772}
773
774func classifyRecoveredTaskSession(info *session.Info, now time.Time) (string, string) {
775 if info == nil {

Callers 2

planTaskRunRecoveryFunction · 0.85
taskSessionRuntimeStateFunction · 0.85

Calls 5

isTaskSessionStateLiveFunction · 0.85
StatusMethod · 0.65
IsMethod · 0.45
NowMethod · 0.45

Tested by

no test coverage detected