Skip to content

Separate loading states for data fetching and LLM communication

What does this MR do and why?

Separate loading states for data fetching and LLM communication

Introduces two distinct loading states in the Duo Agentic Chat component to enable different visual indicators for different operations:

  • isLoading: Indicates GraphQL/data fetching operations (e.g., loading chat history from the database)
  • isWaitingOnPrompt: Indicates LLM communication via WebSocket (e.g., waiting for AI response)

Previously, both operations shared a single loading state managed through Vuex, making it impossible to differentiate between "loading data" and "thinking/processing" in the UI.

Changes:

  • Add isLoading and isWaitingOnPrompt as component-local data properties
  • Remove dependency on Vuex loading state and setLoading action
  • Update all loading state management throughout the component:
    • GraphQL operations (loadActiveThread) use isLoading
    • WebSocket/LLM operations (onSendChatPrompt, onMessageReceived) use isWaitingOnPrompt
    • Cleanup operations reset both states
  • Update template to pass both states to WebAgenticDuoChat component
  • Update all tests to verify component local state instead of Vuex actions

This change simplifies the component architecture by removing unnecessary Vuex dependencies and enables the UI to display contextually appropriate loading indicators. Current thinking indicator stays working as before. There is a follow-up MR that adds a state loading skeleton indicator.

I have split this MR into two commits where the first one adds new logic and the second is cleaning up the Vuex state that is not needed anymore.

References

Issue: #578698

Screenshots or screen recordings

no visual change

How to set up and validate locally

  1. Change this provides is that when clicking on chats in history is now NOT showing the thinking message

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.

Edited by Tomas Bulva

Merge request reports

Loading