You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add Teams meeting assistant Autopilot sample - #1054
Add a Python Meeting Assistant Autopilot sample that greets meeting chats, posts agenda reminders at meeting start, and produces transcript-grounded agenda closure reports after meeting end.
Use native Teams meeting SDK handlers and Work IQ MCP with the agent-user identity; retry pending reports on recording/transcript availability notifications.
Include direct-code deployment configuration, Bicep infrastructure, pinned dependencies, offline tests, sanitized SDK replay fixtures, and a focused sample README.
Share the guided provisioning helper with Hello World and reduce the parent README to a sample index. Hello World agent code and manifest are unchanged.
Configuration and preview limitations
Document transcript API access, Work IQ permission/consent, billing prerequisites, deployment/publication steps, and runtime environment settings.
Raw Activity and Work IQ logging remain enabled in the hosted sample and are configurable. The README calls out unredacted content, synthetic meetings, and restricted log access/retention.
Keep the isolated AgentServer/M365 compatibility bridge for the pinned preview SDKs. This demo does not provide durable event recovery or cross-replica exactly-once delivery.
Validation
Existing offline suite: 142 tests passed.
README relative links and anchors resolve; no raw meeting captures, local environments, or generated caches are included.
No cloud deployment or Microsoft 365 publication performed as part of this PR.
Add native meeting lifecycle handlers, Work IQ transcript reads, evidence-checked agenda closure reports, deployment infrastructure, documentation, and offline coverage. Share guided provisioning with Hello World and simplify the parent sample index.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fix WebVTT regex backtracking and escape agenda reminders. Read transcripts only on readiness notifications received after meeting end, retain usable transcript metadata fallbacks, and remove exact quote matching. Restore the parent README with the meeting sample link and update documentation and regression coverage.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This single lock serializes lifecycle processing for every meeting handled by the replica, not just turns sharing conversation state. Because the protected block includes network calls, model inference, posting, and up to 10 seconds of artifact retry sleeps, one slow meeting can delay unrelated meetings long enough to time out. Scope locking by conversation/state key (and avoid sleeping while holding a global lock).
Occurrence cap permanently blocks future recurring meetings
This cap permanently disables future meeting starts after 20 occurrences because no code removes completed records and no administrative cleanup mechanism is provided. Recurring chats—including meetings with no agenda—will inevitably hit this branch. Prune safely completed occurrences (while retaining pending reports and replay protection) before rejecting a new start.
is_supported_teams_group_chat deliberately treats missing channel_data as {} and can still return true when the conversation tenant is present. This branch then calls .get() on None, so an otherwise valid conversation update without channel data crashes route selection instead of being ignored. Guard the raw value as a dictionary before reading meeting.
This single handler-wide lock serializes every meeting and chat handled by the replica, while it remains held across Work IQ calls, model inference, posts, and up to 10 seconds of artifact retry sleeps. A delayed transcript turn can therefore block unrelated start/end events long enough for their requests to time out. Scope locking to the conversation/state key (or only to load/checkpoint transitions) so independent meetings can progress concurrently.
Bind ready notifications to call-specific transcripts, preserve timestamp fallback, and show reviewed sources without evidence quotes. Guard missing Teams channel data and document hosted session lock scope.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This middleware is enabled in the hosted manifest, so describing it as test-only is inaccurate and obscures that it executes in deployed environments. Rename the module description to match its production use.
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
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.
Summary
Configuration and preview limitations
Validation