What happens
validateStatusNotifications (internal/config/config.go) only checks that comment/reaction start/completion values are one of the allowed strings (enabled/disabled/on_failure). It has no awareness of which forge the config applies to.
If a repo on GitLab sets status_notifications.reaction.start: enabled (or completion), config parsing succeeds, but every reaction call at runtime hits forge.ErrNotSupported — GitLab's AddIssueReaction/DeleteIssueReaction/AddIssueCommentReaction/DeleteIssueCommentReaction (internal/forge/gitlab/issue.go) all return it unconditionally. Notifier.addReaction/deleteReaction (internal/statuscomment/statuscomment.go) fail open on that error — they log a warning via n.warnf and continue, so nothing ever reaches the user. The config looks valid and the run succeeds; reactions just silently never appear.
What should happen
A user enabling reaction notifications on a forge that doesn't support them should get some signal that the setting is inert — today they only find out by reasoning about the code or a log they aren't watching.
Context
Surfaced during review of #5957 (waynesun09), which introduced status_notifications.reaction and documented GitLab's ErrNotSupported behavior. Filed as a follow-up because fixing it well needs a forge-capability query at config-validation time, more design than fits in that PR.
Scoped to the confirmed GitLab gap; not asserting the same applies to JIRA — its current client (internal/forge/jira) is a polling input driver, not a forge.Client reaction target.
What happens
validateStatusNotifications(internal/config/config.go) only checks that comment/reaction start/completion values are one of the allowed strings (enabled/disabled/on_failure). It has no awareness of which forge the config applies to.If a repo on GitLab sets
status_notifications.reaction.start: enabled(orcompletion), config parsing succeeds, but every reaction call at runtime hitsforge.ErrNotSupported— GitLab'sAddIssueReaction/DeleteIssueReaction/AddIssueCommentReaction/DeleteIssueCommentReaction(internal/forge/gitlab/issue.go) all return it unconditionally.Notifier.addReaction/deleteReaction(internal/statuscomment/statuscomment.go) fail open on that error — they log a warning vian.warnfand continue, so nothing ever reaches the user. The config looks valid and the run succeeds; reactions just silently never appear.What should happen
A user enabling reaction notifications on a forge that doesn't support them should get some signal that the setting is inert — today they only find out by reasoning about the code or a log they aren't watching.
Context
Surfaced during review of #5957 (waynesun09), which introduced
status_notifications.reactionand documented GitLab'sErrNotSupportedbehavior. Filed as a follow-up because fixing it well needs a forge-capability query at config-validation time, more design than fits in that PR.Scoped to the confirmed GitLab gap; not asserting the same applies to JIRA — its current client (
internal/forge/jira) is a polling input driver, not aforge.Clientreaction target.