Summary
The MS Teams channel plugin currently hardcodes the informative stream status (Copilot-style "Checking the details..." with gradient progress bar and Stop button) for DM conversations. There is no config option to use the standard Teams typing indicator (isTyping) for DMs instead.
The type definition in types.msteams.d.ts confirms this is intentional but not configurable:
/** Send native Teams typing indicator before replies.
* Default: true for groups/channels;
* DMs use informative stream status. */
typingIndicator?: boolean;
Problem
- The Copilot-style streaming UI cannot be disabled for DMs via any config key
blockStreaming controls block-by-block message delivery, not the streaming UI itself
typingIndicator: true enables native typing for groups/channels but DMs always get the informative stream status
- Setting
showLoadingIndicator: false in the Teams Developer Portal manifest may suppress it client-side, but there should be a server-side config option
- The
streaming key is not accepted by the config schema validator (must NOT have additional properties)
Expected behavior
A config option (e.g., dmStreamStatus: false or streaming: "off" or typingIndicator: { dm: "native" }) that allows disabling the informative stream status for DMs, falling back to the standard Teams typing indicator + single final message delivery.
Current workaround
None known on the OpenClaw side. Attempting showLoadingIndicator: false in the Teams app manifest as a client-side workaround.
Environment
- OpenClaw version: 2026.4.22
- Channel: msteams
- Conversation type: DM (1:1)
What triggers the Copilot-style UI
| Bot behavior |
Teams UI result |
| Streaming response |
Copilot loader (gradient bar + Stop) |
| Long-running invoke |
Copilot loader |
| Message updates (progress style) |
Copilot loader |
| Normal message reply |
Standard typing indicator |
The msteams plugin should support a mode where DMs use the "Normal message reply" pattern: send a typing activity, process, then send the final message once.
Summary
The MS Teams channel plugin currently hardcodes the informative stream status (Copilot-style "Checking the details..." with gradient progress bar and Stop button) for DM conversations. There is no config option to use the standard Teams typing indicator (
isTyping) for DMs instead.The type definition in
types.msteams.d.tsconfirms this is intentional but not configurable:Problem
blockStreamingcontrols block-by-block message delivery, not the streaming UI itselftypingIndicator: trueenables native typing for groups/channels but DMs always get the informative stream statusshowLoadingIndicator: falsein the Teams Developer Portal manifest may suppress it client-side, but there should be a server-side config optionstreamingkey is not accepted by the config schema validator (must NOT have additional properties)Expected behavior
A config option (e.g.,
dmStreamStatus: falseorstreaming: "off"ortypingIndicator: { dm: "native" }) that allows disabling the informative stream status for DMs, falling back to the standard Teams typing indicator + single final message delivery.Current workaround
None known on the OpenClaw side. Attempting
showLoadingIndicator: falsein the Teams app manifest as a client-side workaround.Environment
What triggers the Copilot-style UI
The msteams plugin should support a mode where DMs use the "Normal message reply" pattern: send a typing activity, process, then send the final message once.