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
isLoadingandisWaitingOnPromptas component-local data properties - Remove dependency on Vuex
loadingstate andsetLoadingaction - 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
- GraphQL operations (loadActiveThread) use
- Update template to pass both states to
WebAgenticDuoChatcomponent - 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
- 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.