feat: add missing endpoints (Paged Members, Meeting Notifs) & address client gaps#516
Merged
feat: add missing endpoints (Paged Members, Meeting Notifs) & address client gaps#516
Conversation
corinagum
reviewed
Apr 10, 2026
corinagum
reviewed
Apr 10, 2026
corinagum
reviewed
Apr 10, 2026
corinagum
reviewed
Apr 13, 2026
corinagum
reviewed
Apr 13, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR closes several API gaps between the SDK and the Teams backend by adding missing endpoints (paged conversation members and meeting notifications), normalizing inconsistent backend payload fields, and aligning a few response shapes/types with what the backend actually returns.
Changes:
- Add
ConversationMemberClient.getPaged()plusPagedMembersResultmodel and export wiring. - Add
MeetingClient.sendNotification()plus meeting-notification models and exports. - Normalize
aadObjectIdvsobjectIddiscrepancies and fixTeamClient.getConversations()response shape handling.
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/apps/src/utils/function-context.ts | Stops sending deprecated fields when creating 1:1 conversations. |
| packages/apps/src/contexts/activity.ts | Stops sending deprecated fields when creating 1:1 conversations during group-chat SSO flow. |
| packages/api/src/models/team-details.ts | Adds optional tenantId to TeamDetails. |
| packages/api/src/models/role.ts | Extends Role union with 'skill'. |
| packages/api/src/models/meeting/meeting-notification.ts | Adds models for targeted meeting notifications. |
| packages/api/src/models/meeting/index.ts | Exports meeting-notification models. |
| packages/api/src/models/conversation/paged-members-result.ts | Adds model for paged conversation members responses. |
| packages/api/src/models/conversation/index.ts | Exports PagedMembersResult. |
| packages/api/src/models/account.ts | Updates userRole typing and adds resolveAadObjectId() normalization helper. |
| packages/api/src/clients/team.ts | Fixes conversations response parsing to use data.conversations. |
| packages/api/src/clients/team.spec.ts | Updates mock shape for conversations response. |
| packages/api/src/clients/meeting.ts | Adds sendNotification() endpoint wrapper. |
| packages/api/src/clients/meeting.spec.ts | Adds tests for meeting notifications and URL-encoding. |
| packages/api/src/clients/conversation/members.spec.ts | Updates mocks and adds coverage for getPaged(). |
| packages/api/src/clients/conversation/member.ts | Normalizes aadObjectId in member APIs and adds getPaged(). |
| packages/api/src/clients/conversation/index.ts | Exposes members().getPaged() and adds deprecation annotations. |
| packages/api/src/clients/conversation/activity.ts | Returns TeamsChannelAccount-shaped members and normalizes aadObjectId. |
| packages/api/src/clients/conversation/activity.spec.ts | Updates mocks and adds test for aadObjectId normalization. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
corinagum
approved these changes
Apr 14, 2026
Collaborator
corinagum
left a comment
There was a problem hiding this comment.
lgtm, thanks for the typings updates :)
Merged
heyitsaamir
added a commit
that referenced
this pull request
Apr 16, 2026
## Summary - Merges all changes from `main` since v2.0.7 into `release` - Sets `version.json` to stable `2.0.8` ### What's included - **feat:** Sovereign cloud support (GCCH, DoD, China) (#500) - **feat:** Add missing endpoints — Paged Members, Meeting Notifications & client gaps (#516) - **feat:** Graceful stream cancellation on 403 (#513) - **feat:** GitHub issue analysis → Teams notification workflow (#517) - **fix:** Improve error message when app credentials are missing (#527) - **fix:** Surface Graph API error body in GraphError (#524) - **fix:** Resolve missing deps, broken JSON, type errors, and typos in CLI templates (#521) - **fix:** Drain entire queue per flush cycle (#520) - **fix:** Merge User-Agent headers when cloning HTTP client (#508) - Dependency bumps: hono, axios, vite, @hono/node-server ## Post-merge 1. Trigger the [release pipeline](https://dev.azure.com/DomoreexpGithub/Github_Pipelines/_build?definitionId=52&_a=summary) for `release` with **Public** publish type 2. Bump `version.json` on `main` to `2.0.9-preview.{height}` 🤖 Generated with [Claude Code](https://claude.com/claude-code)
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.
equivalent to python: microsoft/teams.py#327
Issues Addressed
userRoleupdated to bestrinstead of fixed value, matching BE.aadObjectIdis either returned asaadObjectIdorobjectId(scenario dependent, created helper fn to map this)GET v3/teams/{id}/conversations, needed to index intoresponse.json()["conversations"].I manually tested this.tenant_idinTeamDetailsDELETE v3/conversations/{id}/members/{id}-> DEPRECATEDGET v3/conversations/{id}/activities/{id}/membersreturnsTeamsChannelAccount, notAccounttopicandbotinCreateConversationParamsfor{service_url}/v3/conversations-> DEPRECATEDGET v3/conversations route-> DEPRECATEDis_groupfromCreateConversationParams- ignored on backend -> DEPRECATEDNew Endpoints
Paged Conversation Members
Added get_paged() to ConversationMemberClient. Supports optional page_size and continuation_token query params.
For pageSize to work, the minimum is 50, by default its 200, and max is 500.
Meeting Notifications
Added send_notification() to MeetingClient. Sends a targeted in-meeting notification to specific recipients on specified surfaces (e.g. meetingTabIcon, meetingStage). This is different from targeted messages, this was introduced in 2022. Requires this RSC permission
OnlineMeetingNotification.Send.Chatand ECS flag enabled for the tenant/bot.