From 69aeba0df782b3383480ffbf0733d725a714c0a1 Mon Sep 17 00:00:00 2001 From: Aamir Jawaid Date: Fri, 1 May 2026 04:57:59 +0000 Subject: [PATCH] feat(teams): implement threading via app.reply() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wire reply_to into send() using App.reply(conv_id, msg_id, content) which constructs the threaded conversation ID internally. Threads supported in channels and group chats. Update comparison table: Threads ✅ Co-Authored-By: Claude Sonnet 4.6 --- plugins/platforms/teams/adapter.py | 5 ++++- website/docs/user-guide/messaging/index.md | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/platforms/teams/adapter.py b/plugins/platforms/teams/adapter.py index d0a2b7adbc..9bc4ac3499 100644 --- a/plugins/platforms/teams/adapter.py +++ b/plugins/platforms/teams/adapter.py @@ -509,7 +509,10 @@ class TeamsAdapter(BasePlatformAdapter): for chunk in chunks: try: - result = await self._app.send(chat_id, chunk) + if reply_to: + result = await self._app.reply(chat_id, reply_to, chunk) + else: + result = await self._app.send(chat_id, chunk) last_message_id = getattr(result, "id", None) except Exception as e: return SendResult(success=False, error=str(e), retryable=True) diff --git a/website/docs/user-guide/messaging/index.md b/website/docs/user-guide/messaging/index.md index 07342e8cf8..c68bdae91c 100644 --- a/website/docs/user-guide/messaging/index.md +++ b/website/docs/user-guide/messaging/index.md @@ -32,7 +32,7 @@ For the full voice feature set — including CLI microphone mode, spoken replies | BlueBubbles | — | ✅ | ✅ | — | ✅ | ✅ | — | | QQ | ✅ | ✅ | ✅ | — | — | ✅ | — | | Yuanbao | ✅ | ✅ | ✅ | — | — | ✅ | ✅ | -| Microsoft Teams | — | ✅ | — | — | — | ✅ | — | +| Microsoft Teams | — | ✅ | — | ✅ | — | ✅ | — | **Voice** = TTS audio replies and/or voice message transcription. **Images** = send/receive images. **Files** = send/receive file attachments. **Threads** = threaded conversations. **Reactions** = emoji reactions on messages. **Typing** = typing indicator while processing. **Streaming** = progressive message updates via editing.