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

Function validateTaskRunReviewGateFields

internal/task/validate.go:577–624  ·  view source on GitHub ↗
(r Run)

Source from the content-addressed store, hash-verified

575}
576
577func validateTaskRunReviewGateFields(r Run) error {
578 if r.Review == nil {
579 return nil
580 }
581 lineage := *r.Review
582 if lineage.RequestRound < 0 {
583 return fmt.Errorf(
584 "%w: task_run.review.request_round must be zero or positive: %d",
585 ErrValidation,
586 lineage.RequestRound,
587 )
588 }
589 if lineage.ReviewRound < 0 {
590 return fmt.Errorf(
591 "%w: task_run.review.review_round must be zero or positive: %d",
592 ErrValidation,
593 lineage.ReviewRound,
594 )
595 }
596 if lineage.PolicySnapshot.Normalize() != "" {
597 if err := lineage.PolicySnapshot.Validate("task_run.review.policy_snapshot"); err != nil {
598 return err
599 }
600 }
601 if strings.TrimSpace(lineage.ReviewID) != "" {
602 if strings.TrimSpace(lineage.ParentRunID) == "" {
603 return fmt.Errorf("%w: task_run.review.parent_run_id is required when review_id is set", ErrValidation)
604 }
605 if lineage.ReviewRound <= 0 {
606 return fmt.Errorf("%w: task_run.review.review_round must be positive when review_id is set", ErrValidation)
607 }
608 }
609 if err := validateBoundedReviewText(
610 lineage.ContinuationReason,
611 maxRunReviewReasonBytes,
612 "task_run.review.continuation_reason",
613 ); err != nil {
614 return err
615 }
616 if err := validateRunReviewMissingWork(normalizeReviewMissingWork(lineage.MissingWork)); err != nil {
617 return err
618 }
619 return validateBoundedReviewText(
620 lineage.NextRoundGuidance,
621 maxRunReviewGuidanceBytes,
622 "task_run.review.next_round_guidance",
623 )
624}
625
626func validateRunLeaseMetadata(r Run) error {
627 claimToken := strings.TrimSpace(r.ClaimToken)

Callers 1

ValidateMethod · 0.85

Calls 5

ValidateMethod · 0.65
NormalizeMethod · 0.45

Tested by

no test coverage detected