Skip to content

docs: Add M365 Extensions guide (Opus authoring) - #2964

Open
Copilot wants to merge 1 commit into
mainfrom
copilot/m365-extensions-docs-opus
Open

docs: Add M365 Extensions guide (Opus authoring)#2964
Copilot wants to merge 1 commit into
mainfrom
copilot/m365-extensions-docs-opus

Conversation

Copilot AI commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the M365 Extensions guide for TypeScript, Python, and C# — an alternative authoring of #2963, produced with the Opus model.

The guide covers:

  • Installing and wiring the extension into an existing Microsoft 365 Agents SDK app
  • How each turn is routed between the two SDKs
  • Bypassing Teams routing for selected activities
  • Reaching host-only APIs from Teams SDK handlers

Differences vs #2963 (Sonnet)

  • Fixes the C# example bug flagged in review: uses the real TeamsBotApplication constructor (ApiClient, IHttpContextAccessor, ILogger<T>, TeamsBotApplicationOptions?) and the correct (context, ct) / SendAsync handler shape, with required usings.
  • Python wiring matches the runnable sample: explicit MsalConnectionManager, connection manager passed to use_teams_sdk, positional bypass predicate, and @app.message(re.compile(...)) / (context, state) handler signatures.
  • Every language gets a real host-context section instead of N/A: TS shows the agentSdkContext() accessor; Python and .NET explain that no public accessor exists and what to do instead.
  • Prettier-clean.

Validated with npm run generate:docs (0 content gaps) and a production Docusaurus build (all 6 pages build; no new broken anchors).

Closes #2960.

Adds an in-depth guide covering the M365 Extensions package that embeds
a Teams SDK App inside an existing Microsoft 365 Agents SDK host app.

Alternative authoring of the same guide as PR #2963, produced with the
Opus model. Corrects the C# MyTeamsBot example to the real
TeamsBotApplication constructor/handler signatures, matches the Python
wiring to the runnable sample (explicit MsalConnectionManager, positional
bypass predicate), and gives every language a real host-context section
(TS accessor example; Python/.NET note that no public accessor exists).

Closes #2960.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI requested a lite review from Copilot and removed request for Copilot August 22, 2026 23:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: Add M365 Extensions guide (missing across TS/Python/.NET)

1 participant