Skip to content

Mark reactions API as GA and fix sample remove flow#427

Merged
corinagum merged 2 commits into
mainfrom
cg/reactions-ga
May 14, 2026
Merged

Mark reactions API as GA and fix sample remove flow#427
corinagum merged 2 commits into
mainfrom
cg/reactions-ga

Conversation

@corinagum

Copy link
Copy Markdown
Contributor

Summary

Removes the @experimental("ExperimentalTeamsReactions") decorator and the .. warning:: Preview docstring from ReactionClient. The reactions feature is in sync across all three SDKs and the Teams service — no longer preview.

Also fixes the sample's unreact command, which previously called ctx.api.reactions.delete() on an incoming message that had no reaction. It now adds the reaction first, waits 2 seconds, then deletes — so the demo visibly shows the full add/delete cycle.

Cross-SDK coordination

Part of the cross-SDK Reactions-GA pass. Sibling PRs:

  • microsoft/teams.ts — Mark reactions API as GA
  • microsoft/teams.net — Mark reactions API as GA (Libraries + core)
  • microsoft/teams-sdk — drop .NET opt-in tip from the reactions guide

Test plan

  • uv run ruff check — all checks passed
  • uv run ruff format --check — 403 files already formatted
  • uv run pyright — 0 errors, 0 warnings
  • uv run pytest — 596 passed
  • Smoke run of examples/reactions showing the cycle in Teams

Versioning

No version.json change in this PR. Bump happens as part of the release flow per RELEASE.md.

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings May 14, 2026 19:52
corinagum added a commit to microsoft/teams-sdk that referenced this pull request May 14, 2026
## Summary

Removes the `:::tip[.NET]` callout block from the reactions in-depth
guide's C# include. The block instructed readers to suppress
`ExperimentalTeamsReactions` via `#pragma` or `<NoWarn>` — that's no
longer applicable now that the `[Experimental]` attribute is being
removed from teams.net (sibling PR).

## Cross-SDK coordination

Part of the cross-SDK Reactions-GA pass. Sibling PRs:
- microsoft/teams.ts#575 — Mark reactions API as GA
- microsoft/teams.py#427 — Mark reactions API as GA
- microsoft/teams.net#509 — Mark reactions API as GA (Libraries + core)

## Test plan

- [x] `npm start` regenerates docs cleanly with no content gaps
- [x] C# in-depth guide renders without the opt-in callout (verified in
local dev server)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
@corinagum
corinagum merged commit 580935c into main May 14, 2026
11 checks passed
@corinagum
corinagum deleted the cg/reactions-ga branch May 14, 2026 20:51
corinagum added a commit that referenced this pull request May 14, 2026
## Summary

Brings `main` into `release` for the 2.0.11 release, with quoted-replies
(PR #321) excluded. Also bumps `version.json` from `2.0.0` to `2.0.11`
to align with the teams.ts release cadence.

Single squashed commit.

> **Branch name note**: the branch is `cg/prep-release-2.0.1` (left over
from an earlier draft when alignment hadn't been decided yet). The
actual published version per `version.json` is **2.0.11**.

## What's in this release

- All commits merged to main since 2.0.0 (the previous release),
notably:
  - **Reactions GA** (PR #427) — `@experimental` removed; sample fixed
  - Prompt Preview Support (PR #397)
  - Various dependency bumps and bug fixes

## What's NOT in this release

**Quoted-replies feature (PR #321) is excluded:**
- `prepend_quote()`, `add_quote()` builder methods — absent
- `ctx.quote()` and quote-aware `ctx.reply()` behavior — reverted to
legacy `reply_to_id` + blockquote
- `examples/quoting` — removed
- QR-related tests — removed

**Kept intentionally:**
- `QuotedReplyEntity` and `QuotedReplyData` types stay in the `Entity`
union so inbound activities carrying `quotedReply` entities still parse
- `add_targeted_message_info` runtime strip-QR logic — preserves
prompt-preview cleanup

## Version

`version.json`: `2.0.0` → `2.0.11`

This one-time jump aligns teams.py with teams.ts. Going forward, both
progress on a shared 2.0.x patch cadence.

## Test plan

- [x] `uv run ruff check` — all checks passed
- [x] `uv run pyright` — 0 errors, 0 warnings
- [x] `uv run pytest` — 571/571 tests
- [x] `uv build --all-packages` — wheels produced; consumer install
verified (fresh venv, `pip install --no-index --find-links` succeeds,
`QuotedReplyEntity` importable, `prepend_quote`/`add_quote` absent,
`add_targeted_message_info` present)
- [ ] ADO Public publish pipeline (post-merge)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
@jerbob92

Copy link
Copy Markdown
Contributor

This isn't actually GA yet right? I'm stilling getting 404 on the reaction endpoint.

@corinagum

Copy link
Copy Markdown
Contributor Author

Hey @jerbob92 thanks for reaching out. GA was a misnomer, my apologies - reactions should however be fully deployed as preview, and if you are still getting 404s something else is going on. Could you file an issue with your code snippets & experience, and we can look into it? Thanks!

@jerbob92

Copy link
Copy Markdown
Contributor

Hey @jerbob92 thanks for reaching out. GA was a misnomer, my apologies - reactions should however be fully deployed as preview, and if you are still getting 404s something else is going on. Could you file an issue with your code snippets & experience, and we can look into it? Thanks!

@corinagum ah ok, well, basically this: #335

corinagum added a commit that referenced this pull request May 27, 2026
## Summary

Brings `origin/main` into `release` for the **2.0.12** release. **No
carve-outs this time** — Quoted Replies (PR #321) is included.

`version.json`: `2.0.11` → `2.0.12`.

Aligns with teams.ts/teams.net cadence.

## What's in this release (delta from 2.0.11)

**Features**
- Quoted Replies & new quotes features (#321) — previously held back
- SuggestedActionSubmitActivity for `suggestedAction/submit` invoke
(#434)
- Default targeted replies for targeted inbound messages (#439)
- Reactions API marked GA (#427) — already shipped in 2.0.11 actually,
ignore if duplicate
- Prompt Preview support (#397)
- Sample: opt targeted-messages into slash commands (#430)
- Sample: a2a-in-teams (#401)
- Sample: proactive message update (#405)
- Allow custom HTTP client via `AppOptions` (#416)

**Security & fixes**
- Lock JsonWebToken trust-boundary contract (#432)
- Bump starlette 1.0.0 -> 1.1.0 for PYSEC-2026-161 / BadHost (#441)
- warn when bot starts without credentials (#435)
- fix(apps): support AAD v1 issuers in Entra token validation (#422)
- fix(apps): log inbound activities at info, warn on missing
Authorization (#425)
- fix(http-stream): wait for in-flight flush before sending final close
(#419)
- Mark reactions API as GA and fix sample remove flow (#427)
- Revert serviceUrl allowlist (ADO 5310460) (#415)
- Route `app.get_app_graph` + `ctx.*_graph` to sovereign endpoints via
`cloud.graph_scope` (#402)

**Deprecations / package changes**
- Remove ai, openai, mcpplugin, a2a, and devtools packages (#413)
- Restore and deprecate devtools package (#410)
- Deprecate ai, openai, mcpplugin, a2a packages (#406)
- Add agent framework example, remove chatprompt/mcp client samples
(#386)

**Dependency bumps**
- urllib3 2.6.3 → 2.7.0 (#426)
- python-multipart 0.0.26 → 0.0.27 (#424)
- microsoft-kiota-http 1.9.7 → 1.9.9 (#423)
- idna 3.11 → 3.15 (#431)
- starlette 1.0.0 → 1.1.0 (#441, security)
- /examples/tab/Web: qs, postcss, uuid, follow-redirects bumps

## Quoted Replies inclusion notes

- Teams client rendering is in-sync with the wire format as of
2026-05-06.
- APX QR rollout completed: Public 2026-04-10, GCCH/DoD/Gallatin
2026-04-14.
- Builder methods (`prepend_quote()`, `add_quote()`), `ctx.quote()`, and
the quote-aware `ctx.reply()` behavior are all present in this release.
- `examples/quoting` is included.

## Conflict resolution

The 2.0.11 release branch had the QR-removed shape for four files; took
`main`'s (QR-included) version for all of them:
- `examples/targeted-messages/src/main.py`
- `packages/api/src/microsoft_teams/api/activities/message/message.py`
- `packages/apps/src/microsoft_teams/apps/routing/activity_context.py`
- `packages/apps/tests/test_activity_context.py`

`version.json` conflict resolved to `2.0.12`.

## Test plan

- [x] `uv sync` clean
- [x] `poe check` (ruff format + lint) — clean
- [x] `poe test` — 609 passed
- [x] `pyright` — 0 errors, 0 warnings
- [ ] Pipeline build + test stages green on `release` after merge
- [ ] Publish pipeline run with **Public** → ESRP approval → PyPI
- [ ] `pip install microsoft-teams-apps==2.0.12` smoke install

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Aamir Jawaid <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
Co-authored-by: Shanmathi Mayuram Krithivasan <[email protected]>
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.

3 participants