Route Slack Workhorse flows through the run entry point

Why are we doing this?

Duo agents run on two engines: a CI runner (heavyweight -- Docker environment, repo clone, shell) or Workhorse (lightweight, in-app, API-only, acts as the user). !255976 (merged) introduced one entry point that picks the right engine for a session. This MR makes Slack actually use it -- the first surface to do so -- and stops running Slack sessions on the duo-workspace helper project.

What does this MR do?

When a Slack mention resolves to the slack_assistant flow (behind slack_duo_api_flow), the adapter now creates the session on the user's default Duo namespace and starts it through ExecuteRunService. CI-executed callers (@GitLabDuo mentions, code review) keep their existing path untouched. Two things now behave correctly for free: admin tool-governance rules resolve against the user's group instead of duo-workspace, and namespace sessions no longer emit input-required todo/email noise. Also removes the plumbing this replaces (ExecuteServerSideFlowService, the adapter's flow list, and the unreachable ResumeServerSideFlowService).

References

How to set up and validate locally

Prerequisites: a GDK with the Slack integration configured (a workspace app pointing at your GDK) and a user whose default Duo namespace has the slack_assistant flow enabled.

  1. Enable the flag: Feature.enable(:slack_duo_api_flow, user.default_duo_namespace.root_ancestor)
  2. Mention the app in Slack: @GitLabDuo what can you do?
  3. Expected: the agent answers in the thread, started in seconds (no CI job). In the console, the session hangs off the namespace: Ai::DuoWorkflows::Workflow.last has namespace_id set and project_id nil, and last_runtime is :workhorse.
  4. Regression check: disable the flag, mention again -- the run goes through the old developer/v1 CI path and answers as before.

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Merge request reports

Loading
Loading