Refactor last processed index to message ID in duo agentic chat
What does this MR do and why?
This MR iterates on the approach introduced in Reduced Duo Agentic Chat messages processing (!212409 - merged).
Now UiChatLog for a chat workflow returns a message id: feat: populate id field in UiChatLog entries (gitlab-org/modelops/applied-ml/code-suggestions/ai-assist!4015 - merged). We can use it to determine which messages have already been rendered.
It allows us to move towards incremental rendering: we can signal DWS that we no longer need the messages that have already been rendered, so the server doesn't have to send them anymore. There's draft MR that sends only messages that need to be re-rendered (not required for this MR to be merged): feat: send only ui-chat-log msgs that need re-r... (gitlab-org/modelops/applied-ml/code-suggestions/ai-assist!4024 - merged)
Testing
Run Web Agentic Chat against the latest DWS changes (the ones that contain feat: populate id field in UiChatLog entries (gitlab-org/modelops/applied-ml/code-suggestions/ai-assist!4015 - merged)). The DWS changes are not deployed though, due to production change lock (the DWS and Gitlab Rails deployments will be unlocked on Monday)