Introduce the duo_chat_goal_command feature flag and gate the /goal surfaces
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Problem
The /goal feature work needs to ship in slices, but there is no feature flag to gate
behind yet. Other slices cannot merge safely without exposing unfinished UI.
Proposal
Create a new duo_chat_goal_command feature flag (wip type, disabled by default) and
push it to the frontend so both Vue components and plain JS modules can read it. Hide
every /goal surface while the flag is off.
- Add
ee/config/feature_flags/wip/duo_chat_goal_command.yml. - Make it readable as
glFeatures.duoChatGoalCommandin components andgon.features?.duoChatGoalCommandin plain modules. - Add Jest coverage for both flag states.
Acceptance criteria
- Add
ee/config/feature_flags/wip/duo_chat_goal_command.ymlwithtype: wip,default_enabled: false,group: group::duo chat,milestone: '19.5',feature_issue_urlpointing to &23107, androllout_issue_urlpointing to the[FF]rollout issue (#628226). - Add
push_frontend_feature_flag(:duo_chat_goal_command, current_user)topush_frontend_feature_flagsinee/lib/ee/gitlab/gon_helper.rb, beside the existingdap_web_searchandduo_chat_flow_commandspushes. - Make the flag readable in components as
glFeatures.duoChatGoalCommandviaglFeatureFlagsMixin(), and in plain modules (plugin descriptors are module-level objects with no component instance) asgon.features?.duoChatGoalCommand. - With the flag off, nothing changes:
/goalstays out of the suggestions menu, no Goal entry appears in the+dropdown, and no goal badge shows anywhere. - Add Jest coverage for both flag states.
References
- Epic: gitlab-org#23107
- Rollout issue: #628226
Part of epic &23107.
Edited by 🤖 GitLab Bot 🤖