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_graph and feature delete knowledge_graph_infra cleanup, 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.rb
  • yarn 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 the glFeatures.knowledgeGraph checks in orbit_toggle.vue and duo_agentic_chat_state_manager_light.vue.
  • Analytics::KnowledgeGraph.enabled_for? now only checks that the service is configured. The knowledge_graph_enabled group policy condition is gone; the internal Orbit API before guard, the admin API guard, and the worker/push-service checks are removed. SearchSubscriptions now subscribes the finder-cache worker unconditionally, because the old knowledge_graph_infra check made its condition always true.
  • Removing the ops flag knowledge_graph_infra removes the instance-level kill switch for Orbit indexing. The remaining levers are drop_sidekiq_jobs_<WorkerName>/run_sidekiq_jobs_<WorkerName> for the indexing workers, the knowledge_graph.enabled config, and scaling down the indexer.
  • ExpireFinderCacheWorker subscriptions are now unconditional, matching the current flag-on behaviour.
  • Specs: deleted flag-off contexts and stub_feature_flags for 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 from doc/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_spec Elasticsearch examples (no ES service) and navbar_spec (no rspack dev server).

MR acceptance checklist

  • I have evaluated the MR acceptance checklist for this MR.
Edited by Dmitry Gruzd

Merge request reports

Loading
Loading