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
DuoChatConversationwith 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
How to set up and validate locally
- Enable the flag:
Feature.enable(:duo_session_chat_bubbles) - Navigate to a project → Automate → Sessions → pick a session
- Verify messages render as chat bubbles instead of the timeline
- 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
