observeActions
open override fun observeActions(conversationId: <Error class: unknown class>): <Error class: unknown class><<Error class: unknown class>>
This implementation allows us to have a separate channel for each combination of conversation and action type. When observing actions for a conversation, we merge the flows from all relevant channels, so that we get a single stream of actions regardless of their type. This also means that if a new action type is added for the same conversation while observing, it will be automatically included in the merged flow without needing to restart the observation. Actions are emitted in the order they were added, and if an action is added before observing, it will be emitted as soon as the observation starts, because CONFLATED buffer keeps the most recent value and emits it to new subscribers.