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

Function ValidateImmutableTaskFields

internal/task/validate.go:1127–1144  ·  view source on GitHub ↗

ValidateImmutableTaskFields reports whether an update attempted to change immutable task fields.

(current Task, next Task)

Source from the content-addressed store, hash-verified

1125
1126// ValidateImmutableTaskFields reports whether an update attempted to change immutable task fields.
1127func ValidateImmutableTaskFields(current Task, next Task) error {
1128 if !sameActorIdentity(current.CreatedBy, next.CreatedBy) {
1129 return fmt.Errorf("%w: %s", ErrImmutableField, TaskFieldCreatedBy)
1130 }
1131 if !sameOrigin(current.Origin, next.Origin) {
1132 return fmt.Errorf("%w: %s", ErrImmutableField, TaskFieldOrigin)
1133 }
1134 if current.Scope.Normalize() != next.Scope.Normalize() {
1135 return fmt.Errorf("%w: %s", ErrImmutableField, TaskFieldScope)
1136 }
1137 if strings.TrimSpace(current.WorkspaceID) != strings.TrimSpace(next.WorkspaceID) {
1138 return fmt.Errorf("%w: %s", ErrImmutableField, TaskFieldWorkspaceID)
1139 }
1140 if strings.TrimSpace(current.ParentTaskID) != strings.TrimSpace(next.ParentTaskID) {
1141 return fmt.Errorf("%w: %s", ErrImmutableField, TaskFieldParentTaskID)
1142 }
1143 return nil
1144}
1145
1146// ValidateMetadataSize reports whether metadata JSON respects the shared 16 KiB guardrail.
1147func ValidateMetadataSize(payload json.RawMessage, path string) error {

Callers 1

Calls 3

sameActorIdentityFunction · 0.85
sameOriginFunction · 0.85
NormalizeMethod · 0.45

Tested by 1