Render session activity log as chat bubbles behind feature flag

What does this MR do and why?

When the duo_session_chat_bubbles feature flag is enabled, the session show page renders activity log messages using DuoChatConversation chat bubbles from @gitlab/duo-ui instead of the existing timeline-style ActivityLogs/LogEntry components.

This provides visual consistency with the Duo Chat panel, which already uses the same bubble rendering pipeline.

Changes

  • Feature flag: Added duo_session_chat_bubbles (ops-type, default off)
  • AgentActivityLogs: Conditionally renders DuoChatConversation with transformed messages when the flag is on, preserving the existing timeline as the default
  • AgentFlowEmptyState: Renders session creation status ("Creating session", "Created session", "Starting job") as chat bubbles when the flag is on
  • Controllers: Push the feature flag to the frontend in both project and group Duo Agents Platform controllers

Out of scope (follow-ups)

  • Delegation nesting / depth indentation
  • Verbose/concise filtering in bubble view
  • Approval UI integration
  • Component attribution badges

image

How to set up and validate locally

  1. Enable the flag: Feature.enable(:duo_session_chat_bubbles)
  2. Navigate to a project → Automate → Sessions → pick a session
  3. Verify messages render as chat bubbles instead of the timeline
  4. Disable the flag and verify the timeline rendering is unchanged

As it is behind the duo_session_chat_bubbles flag, I have elected to not add a changelog.

Edited by Andrew Fontaine

Merge request reports

Loading