From b0e0262562315dbfda97bcab42b795df035a6df3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Oct 2025 20:48:32 +0000 Subject: [PATCH 1/2] Initial plan From 9754d0217f3eedf55357e346565d6bb033df2fd3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Oct 2025 20:55:34 +0000 Subject: [PATCH 2/2] Add getValidReactions function to compute valid reaction list from validReactions map Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- pkg/workflow/compiler.go | 3 +-- pkg/workflow/reactions.go | 31 +++++++++++++++++++++---------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/pkg/workflow/compiler.go b/pkg/workflow/compiler.go index a520aae4979..55e6608e224 100644 --- a/pkg/workflow/compiler.go +++ b/pkg/workflow/compiler.go @@ -1444,8 +1444,7 @@ func (c *Compiler) parseOnSection(frontmatter map[string]any, workflowData *Work if reactionStr, ok := reactionValue.(string); ok { // Validate reaction value if !isValidReaction(reactionStr) { - validValues := []string{"+1", "-1", "laugh", "confused", "heart", "hooray", "rocket", "eyes"} - return fmt.Errorf("invalid reaction value '%s': must be one of %v", reactionStr, validValues) + return fmt.Errorf("invalid reaction value '%s': must be one of %v", reactionStr, getValidReactions()) } workflowData.AIReaction = reactionStr } diff --git a/pkg/workflow/reactions.go b/pkg/workflow/reactions.go index 1f920a879e5..87d96f14e30 100644 --- a/pkg/workflow/reactions.go +++ b/pkg/workflow/reactions.go @@ -1,16 +1,27 @@ package workflow +// validReactions defines the set of valid reaction values +var validReactions = map[string]bool{ + "+1": true, + "-1": true, + "laugh": true, + "confused": true, + "heart": true, + "hooray": true, + "rocket": true, + "eyes": true, +} + // isValidReaction checks if a reaction value is valid according to the schema func isValidReaction(reaction string) bool { - validReactions := map[string]bool{ - "+1": true, - "-1": true, - "laugh": true, - "confused": true, - "heart": true, - "hooray": true, - "rocket": true, - "eyes": true, - } return validReactions[reaction] } + +// getValidReactions returns the list of valid reaction entries +func getValidReactions() []string { + reactions := make([]string, 0, len(validReactions)) + for reaction := range validReactions { + reactions = append(reactions, reaction) + } + return reactions +}