Skip to content

Release 2.0.10#557

Merged
heyitsaamir merged 6 commits into
releasefrom
prep-release/2.0.10
May 6, 2026
Merged

Release 2.0.10#557
heyitsaamir merged 6 commits into
releasefrom
prep-release/2.0.10

Conversation

@heyitsaamir
Copy link
Copy Markdown
Collaborator

@heyitsaamir heyitsaamir commented May 6, 2026

Merges main into release and sets version to 2.0.10.

Commits since last release

heyitsaamir and others added 6 commits May 1, 2026 08:19
This pull request migrates and refactors the MCP (Model Context
Protocol) Teams bot example from `@examples/mcp` to
`@examples/mcp-server`, significantly expanding its functionality and
improving its documentation and code structure. The new implementation
provides a robust MCP server that exposes human-in-the-loop tools for
Teams, including notification, question/answer, and approval flows.

**Key changes include:**

### 1. Migration and Renaming
- The example is moved from `@examples/mcp` to `@examples/mcp-server`,
with all related files and documentation updated to reflect the new
name. (`README.md`, `CHANGELOG.md`, `package.json`, directory and file
renames)

### 2. Major Feature Expansion
- Implements a full-featured MCP server for Teams, supporting five
tools: `notify`, `ask`, `getReply`, `requestApproval`, and
`getApproval`. These tools allow agents or clients to interact with real
users via Teams for notifications, Q&A, and approval workflows.

### 4. Removal of Old Implementation
- Deletes the previous minimal MCP bot implementation and its associated
files, including the old `README.md`, `manifest.json`, and TypeScript
entry point, which are replaced with the new, more capable server.
…erride in final message (#553)

Fixes #549 

## Summary
Fixes two bugs in HttpStream:

### Bug 1: streamType overwritten to informative in final message
close() calls .addStreamFinal().withChannelData(this.channelData). Since
this.channelData contains streamType: informative from typing updates,
it overwrites the final value.

### Bug 2: Race condition in close()
The while loop checks queue.length and this.id but not this._flushing.
If flush() drained the queue but is still awaiting pushStreamChunk()
calls, close() proceeds immediately.

### Fixes
1. Swap .withChannelData() and .addStreamFinal() order
2. Add || this._flushing to the while condition"

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
equivalent to these 2 python PRs:
microsoft/teams.py#340 (not all applicable bc TS
doesnt have defined inbound/outbound interfaces)
microsoft/teams.py#336

This pull request adds deprecation warnings to several activity-related
interfaces and types to clarify that certain properties and activities
are no longer recognized or returned by the service backend. This
improves the clarity of the API and helps developers avoid using
obsolete features. Verified with APX repo and manual testing.

**Deprecation of properties and activities:**
* Marked the `relatesTo` property as deprecated in the base `IActivity`
interface, the `Activity` class, and in all derived activity interfaces
where it appears, indicating it is no longer returned by the backend.
* Added `@deprecated` annotations to the `withRelatesTo` method in the
`Activity` class for consistency.

**Deprecation of activity types not recognized by the backend:**
* Marked the `IHandoffActivity` and `ITraceActivity` interfaces as
deprecated
* Marked the `IEndOfConversationActivity` interface and
`EndOfConversationCode` type as deprecated

---------

Co-authored-by: lilydu <lilydu+odspmdb@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
## Summary

Adds Azure AD v1 issuer support to inbound Entra token validation in
`@microsoft/teams.apps`.

Specifically, tenant-based issuer validation now accepts both:
- `https://login.microsoftonline.com/{tenantId}/...`
- `https://sts.windows.net/{tenantId}/`

## Motivation

Some valid Microsoft Entra tokens are issued with the Azure AD v1 issuer
format (`sts.windows.net`) instead of the v2-style
`login.microsoftonline.com/.../v2.0` issuer.

Related external issue:
- openclaw/openclaw#64270

This PR keeps the change narrowly scoped to issuer validation only.

## Changes

- Extend tenant-based issuer validation in `JwtValidator` to also
accept:
  - `https://sts.windows.net/{tenantId}/`
- Add tests covering v1 issuer acceptance for:
  - single-tenant apps
  - multi-tenant apps

## Tests

Added/updated tests for:
- v1 `sts.windows.net` issuer acceptance
- existing tenant-based issuer validation behavior
- end-to-end validation of Microsoft Entra v1 and v2 access tokens,
modeled on the published sample tokens at
https://learn.microsoft.com/en-us/entra/identity-platform/access-tokens
(same `iss`, `aud`, `tid`, `azp`/`appid`, `scp`, `ver` shape) — both
pass through the full `JwtValidator.validateAccessToken` pipeline
(signature + expiry + audience + issuer + scope)
@heyitsaamir heyitsaamir merged commit 1686b7e into release May 6, 2026
5 checks passed
@heyitsaamir heyitsaamir deleted the prep-release/2.0.10 branch May 6, 2026 21:07
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.

4 participants