Skip to content

[AI First Parity] [TASK-004] Implement ActivityExtensions for Notifications in Python SDK #58

@JonCGit

Description

@JonCGit

📋 Parity Implementation Task: TASK-017

Auto-generated from AiParityTaskList.md by the AI-Parity-Issue-Creation Workflow

🎯 Implementation Goal

This task involves porting existing functionality to achieve parity between language implementations. The functionality described below already exists in the nodejs, dotnet repo(s) and needs to be implemented in the python language to maintain feature consistency across all SDK implementations.

🔗 Source Repositories

microsoft/Agent365-nodejs,microsoft/Agent365-dotnet

Important: This is not about creating new features, but about bringing the python implementation to parity with existing functionality found in: nodejs, dotnet

📊 Task Details

  • Task ID: `TASK-017`
  • Priority: MEDIUM
  • Effort Estimate: SMALL
  • Target Language: `python` (where the feature needs to be implemented)
  • Exists In: nodejs, dotnet (repos that already have this functionality)
  • Status: Open

📝 Description

✅ Acceptance Criteria

  • Create activity_extensions.py in python/libraries/microsoft-agents-a365-notifications/microsoft_agents_a365/notifications/extensions/ - Helper methods for activity manipulation - Notification-specific utility functions - Unit tests for extension methods - Integration with existing notification models

🔗 Reference Implementation

Use the following existing implementations as reference for porting to python:

  • nodejs/src/notifications/extensions/activity-extensions.ts - dotnet/sdk/Notification/Microsoft.Agents.A365.Notifications/Extensions/ActivityExtension.cs

🔧 Dependencies

None

📋 Implementation Instructions

  1. Study the Reference Implementation: Use the cross-repo-agent to examine the existing code in the nodejs, dotnet repo(s) to understand the functionality, APIs, and patterns used
  • The repos are located at: microsoft/Agent365-nodejs,microsoft/Agent365-dotnet
  1. Port to Target Language: Implement equivalent functionality in the python language, following language-specific best practices
  2. Maintain Consistency: Ensure the ported functionality provides the same capabilities and, where possible, similar APIs as the reference implementations
  3. Include Tests: Port or create equivalent tests to match the coverage and functionality of the reference implementations
  4. Update Documentation: Add appropriate documentation and usage examples for the python implementation

🏷️ Labels

  • Priority: MEDIUM
  • Effort: SMALL
  • Target: python

🚀 GitHub Copilot Instructions

⚠️ IMPORTANT: Create Only ONE Pull Request

Please complete this entire task in a single pull request. Do not break this work into multiple PRs. All implementation, tests, documentation, and related changes should be included together in one comprehensive PR.

When creating your pull request for this issue, please use the following title format:

Required PR Title Format: `[AI First Parity] [TASK-017] `

Example: `[AI First Parity] [TASK-001] Implement identity/authentication services in Python`

This standardized format helps track all AI First Parity related pull requests and ensures proper categorization in the repository.

⚠️ REQUIRED: Include Reviewer Instructions in PR Description

When creating your pull request, you MUST append the following text exactly as shown below to the end of your PR description. Copy and paste this text verbatim:


📝 Instructions for PR Reviewers

🚫 If Parity is Not Needed for This Feature

If you determine during review that this particular feature should NOT be ported to the target implementation (e.g., it's language-specific, deprecated, or not applicable), please follow these steps:

  1. Close the PR and delete the branch
  2. Close the issue by navigating to the linked issue and closing it
  3. Add a comment explaining why parity is not needed (e.g., "Feature is .NET-specific and not applicable to Python implementation" or "Feature deprecated and should not be ported")

Note: Only close if you're certain the feature should not be ported. If the implementation just needs modifications or a different approach, keep the issue open and work with copilot on the PR.
Note: Do NOT delete the issue. If the issue is deleted, the automated workflow will pick it back up in subsequent runs.


Important: The above reviewer instructions must be included exactly as written in every pull request for this issue. This ensures reviewers have consistent guidance on how to handle cases where parity is not needed.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions