Loading
Remove knowledge_graph and knowledge_graph_infra feature flags
What does this MR do and why?
Removes the knowledge_graph and knowledge_graph_infra feature flags. Both are default_enabled: true, so this keeps the current behaviour and drops the flag-off code paths.
Related to #583676 and #605998
Post-merge
- Run the chatops
feature delete knowledge_graphandfeature delete knowledge_graph_infracleanup, then close the rollout issues.
How to set up and validate locally
bin/rspec ee/spec/lib/analytics/knowledge_graph_spec.rb ee/spec/requests/api/orbit ee/spec/requests/api/admin/knowledge_graph_spec.rb ee/spec/requests/api/internal/orbit_spec.rb ee/spec/policies/ee/group_policy_spec.rb ee/spec/policies/global_policy_spec.rb ee/spec/services/ai/duo_workflows/mcp_config_service_spec.rbyarn jest ee/spec/frontend/ai/duo_agentic_chat/components/orbit_toggle_spec.js ee/spec/frontend/ai/duo_agentic_chat/components/duo_agentic_chat_state_manager_light_spec.js
Agent context
- Deleted both flag definitions,
push_frontend_feature_flag(:knowledge_graph, ...), and theglFeatures.knowledgeGraphchecks inorbit_toggle.vueandduo_agentic_chat_state_manager_light.vue. Analytics::KnowledgeGraph.enabled_for?now only checks that the service is configured. Theknowledge_graph_enabledgroup policy condition is gone; the internal Orbit APIbeforeguard, the admin API guard, and the worker/push-service checks are removed.SearchSubscriptionsnow subscribes the finder-cache worker unconditionally, because the oldknowledge_graph_infracheck made its condition always true.- Removing the ops flag
knowledge_graph_infraremoves the instance-level kill switch for Orbit indexing. The remaining levers aredrop_sidekiq_jobs_<WorkerName>/run_sidekiq_jobs_<WorkerName>for the indexing workers, theknowledge_graph.enabledconfig, and scaling down the indexer. ExpireFinderCacheWorkersubscriptions are now unconditional, matching the current flag-on behaviour.- Specs: deleted flag-off contexts and
stub_feature_flagsfor both flags. The "user not entitled to Orbit" MCP example is removed because the flag was the only thing that produced it. - Docs: added a history entry to
doc/api/orbit.md, scoped its flag note to GQL query mode (orbit_gql_queries), and dropped the flag note fromdoc/development/internal_api/orbit.md. - Tests: ran every touched rspec file and both jest specs, plus rubocop, eslint and markdownlint. Failures remaining here are environmental:
branch_push_service_specElasticsearch examples (no ES service) andnavbar_spec(no rspack dev server).
MR acceptance checklist
- I have evaluated the MR acceptance checklist for this MR.
Edited by Dmitry Gruzd