docs+feat(teams): sidebar + threading with group-chat fallback - #20042
Merged
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update all platform enumeration lists to include Teams: index.md, quickstart.md, integrations/index.md, sessions.md, slash-commands.md, updating.md, hooks.md, hermes-agent skill. Skipped PII redaction docs — Teams uses AAD object IDs, not phone numbers, so redaction doesn't apply there. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add to platform description and intro paragraph - Add row to platform comparison table (images + typing) - Add node to architecture mermaid diagram - Add TEAMS_ALLOWED_USERS to security examples - Add to platform-specific toolsets table - Add to Next Steps links Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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 <noreply@anthropic.com>
Group chats return 400 for threaded sends. Catch the error and fall back to a flat send so messages always get delivered. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The SDK requires Python >=3.12 so CI (3.11) falls to the except ImportError branch, leaving TypingActivityInput=None. After loading the adapter module, explicitly restore it from the mock so test_send_typing doesn't silently no-op. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The previous bare except swallowed every exception from app.reply() silently. Log at debug so real failures (auth, chat gone) leave a trace while keeping the group-chat 400 fallback working. Also fix the Teams entry's indentation in the messaging flowchart.
1 task
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Salvage of #18239 by @heyitsaamir onto current main, plus a tiny follow-up commit.
Summary
Adds Microsoft Teams to the docs sidebar and all platform lists, implements message threading via
App.reply()with a 400-fallback to flat send for group chats, and fixes a test-mock wiring bug on Python <3.12.Changes
plugins/platforms/teams/adapter.py: wrapapp.reply(chat_id, reply_to, chunk)in try/except; fall back toapp.send()on failure (group chats 400 on threaded sends). Log the fallback at debug so real failures (auth, chat gone) still leave a trace.tests/gateway/test_teams.py: repairTypingActivityInputmock wiring when the Teams SDK import fails on Python <3.12.website/sidebars.ts: Teams entry in Messaging Platforms.website/docs/user-guide/messaging/index.md: platform-comparison table (images ✅, threads ✅, typing ✅), architecture flowchart, toolsets table,TEAMS_ALLOWED_USERSexample, Next Steps link. Also fixes flowchart indentation for the new entry.Validation
scripts/run_tests.sh tests/gateway/test_teams.pyCredits #18239 — @heyitsaamir's commits preserved via cherry-pick; one follow-up commit from us narrows the exception-swallowing behavior.