Repository navigation
Retire Agent365 observability distributions - #289
Nikhil Navakiran (nikhilNava) wants to merge 8 commits into
Conversation
Move observability consumers to the separately maintained Microsoft OpenTelemetry distro while preserving Notifications, Runtime, and Tooling. Remove retired packages and exclusive dependencies, retain historical changelogs, and document migration and package-owner retirement actions. Guard release artifacts against stale or retired distributions before promotion and publication. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4c600437-fe81-4d93-82b7-f59a2d8ed1f9
Dependency ReviewThe following issues were found:
License Issuesuv.lock
OpenSSF ScorecardScorecard details
Scanned Files
|
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues remain for the observability retirement and release-safeguard changes.
No open issues 🎉
What changed in this PR
Retires all six Agent365 observability distributions while retaining the eight Notifications, Runtime, and Tooling packages. Adds release safeguards to prevent retired, unexpected, missing, or stale artifacts from being published.
Changes:
- Removes observability implementations, dedicated tests/examples, workspace entries, dependencies, and observability-only Runtime APIs.
- Adds wheel inventory, version, payload, and dependency verification; updates CI to build fresh artifacts and publish from one matrix job.
- Updates package, architecture, testing, and contributor guidance while preserving historical changelogs.
| File | Description |
|---|---|
tests/usage_example.py |
Removes the retired observability example. |
tests/test_release_artifacts.py |
Tests artifact verification and retirement safeguards. |
tests/test_published_security_constraints.py |
Updates active package expectations and rejects retired dependencies. |
tests/TEST_PLAN.md |
Removes observability testing plans. |
tests/test_dependency_constraints.py |
Updates the active internal package inventory. |
tests/runtime/test_environment_utils.py |
Removes tests for the retired scope helper. |
tests/RUNNING_TESTS.md |
Updates setup and remaining test-suite guidance. |
tests/README.md |
Documents the remaining offline test scope. |
tests/observability/hosting/token_cache_helpers/__init__.py |
Removes the retired test initializer. |
tests/observability/hosting/scope_helpers/test_scope_helper_utils.py |
Removes hosting attribute-extraction tests. |
tests/observability/hosting/scope_helpers/test_populate_invoke_agent_scope.py |
Removes invocation-scope population tests. |
tests/observability/hosting/scope_helpers/test_populate_baggage.py |
Removes baggage-population tests. |
tests/observability/hosting/middleware/test_observability_hosting_manager.py |
Removes hosting middleware configuration tests. |
tests/observability/hosting/middleware/__init__.py |
Removes the middleware test initializer. |
tests/observability/hosting/__init__.py |
Removes the hosting test initializer. |
tests/observability/extensions/semantickernel/test_wrapper_semantic_kernel.py |
Removes Semantic Kernel instrumentation tests. |
tests/observability/extensions/semantickernel/test_span_enricher.py |
Removes Semantic Kernel enrichment tests. |
tests/observability/extensions/semantickernel/__init__.py |
Removes the adapter test initializer. |
tests/observability/extensions/openai/test_trace_processor_bounded.py |
Removes bounded trace-processor tests. |
tests/observability/extensions/openai/test_prompt_suppression.py |
Removes prompt-suppression tests. |
tests/observability/extensions/openai/integration/conftest.py |
Removes live OpenAI integration fixtures. |
tests/observability/extensions/openai/integration/__init__.py |
Removes the integration test initializer. |
tests/observability/extensions/openai/__init__.py |
Removes the adapter test initializer. |
tests/observability/extensions/langchain/test_tracer_bounded.py |
Removes bounded LangChain tracer tests. |
tests/observability/extensions/langchain/integration/conftest.py |
Removes live LangChain integration fixtures. |
tests/observability/extensions/langchain/integration/__init__.py |
Removes the integration test initializer. |
tests/observability/extensions/langchain/__init__.py |
Removes the adapter test initializer. |
tests/observability/extensions/agentframework/test_utils.py |
Removes message-extraction tests. |
tests/observability/extensions/agentframework/test_span_enricher.py |
Removes Agent Framework enrichment tests. |
tests/observability/extensions/agentframework/integration/conftest.py |
Removes live Agent Framework integration fixtures. |
tests/observability/extensions/agentframework/integration/__init__.py |
Removes the integration test initializer. |
tests/observability/extensions/agentframework/__init__.py |
Removes the adapter test initializer. |
tests/observability/extensions/__init__.py |
Removes the extension test initializer. |
tests/observability/core/test_utils.py |
Removes telemetry utility tests. |
tests/observability/core/test_span_processor.py |
Removes baggage-to-span propagation tests. |
tests/observability/core/test_output_scope.py |
Removes output-scope tests. |
tests/observability/core/test_output_scope_bounded.py |
Removes output-message replacement tests. |
tests/observability/core/test_export_config_consistency.py |
Removes retired export configuration tests. |
tests/observability/core/exporters/test_enriching_span_processor.py |
Removes enrichment processor tests. |
tests/observability/core/exporters/test_enriched_span.py |
Removes enriched-span wrapper tests. |
tests/observability/core/__init__.py |
Removes the core test initializer. |
tests/observability/__init__.py |
Removes the observability test initializer. |
tests/.env.example |
Removes retired integration credential examples. |
scripts/verify_release_artifacts.py |
Validates wheel inventory, versions, payloads, and dependencies. |
pyproject.toml |
Removes retired workspace members, dependencies, and integration configuration. |
libraries/microsoft-agents-a365-runtime/README.md |
Clarifies retained Runtime functionality and links migration guidance. |
libraries/microsoft-agents-a365-runtime/pyproject.toml |
Updates Runtime package metadata. |
libraries/microsoft-agents-a365-runtime/microsoft_agents_a365/runtime/environment_utils.py |
Removes observability scope constants and helper. |
libraries/microsoft-agents-a365-runtime/microsoft_agents_a365/runtime/__init__.py |
Removes the retired helper export. |
libraries/microsoft-agents-a365-runtime/docs/design.md |
Documents retained environment utilities. |
libraries/microsoft-agents-a365-observability-hosting/setup.py |
Removes hosting build configuration. |
libraries/microsoft-agents-a365-observability-hosting/README.md |
Removes retired hosting documentation. |
libraries/microsoft-agents-a365-observability-hosting/pyproject.toml |
Removes the hosting distribution manifest. |
libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/token_cache_helpers/__init__.py |
Removes token-cache exports. |
libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/scope_helpers/utils.py |
Removes hosting telemetry attribute extraction. |
libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/scope_helpers/populate_invoke_agent_scope.py |
Removes invocation-scope population. |
libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/scope_helpers/populate_baggage.py |
Removes hosting baggage population. |
libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/scope_helpers/__init__.py |
Removes the scope-helper initializer. |
libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/observability_hosting_manager.py |
Removes hosting middleware configuration. |
libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/baggage_middleware.py |
Removes baggage propagation middleware. |
libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/__init__.py |
Removes middleware exports. |
libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/__init__.py |
Removes hosting public exports. |
libraries/microsoft-agents-a365-observability-extensions-semantickernel/setup.py |
Removes extension build configuration. |
libraries/microsoft-agents-a365-observability-extensions-semantickernel/README.md |
Removes retired adapter documentation. |
libraries/microsoft-agents-a365-observability-extensions-semantickernel/pyproject.toml |
Removes the extension manifest. |
libraries/microsoft-agents-a365-observability-extensions-semantickernel/microsoft_agents_a365/observability/extensions/semantickernel/utils.py |
Removes message-extraction utilities. |
libraries/microsoft-agents-a365-observability-extensions-semantickernel/microsoft_agents_a365/observability/extensions/semantickernel/trace_instrumentor.py |
Removes Semantic Kernel instrumentation. |
libraries/microsoft-agents-a365-observability-extensions-semantickernel/microsoft_agents_a365/observability/extensions/semantickernel/span_processor.py |
Removes Semantic Kernel span processing. |
libraries/microsoft-agents-a365-observability-extensions-semantickernel/microsoft_agents_a365/observability/extensions/semantickernel/span_enricher.py |
Removes Semantic Kernel span enrichment. |
libraries/microsoft-agents-a365-observability-extensions-semantickernel/microsoft_agents_a365/observability/extensions/semantickernel/__init__.py |
Removes the adapter initializer. |
libraries/microsoft-agents-a365-observability-extensions-semantickernel/docs/design.md |
Removes retired adapter design documentation. |
libraries/microsoft-agents-a365-observability-extensions-openai/setup.py |
Removes extension build configuration. |
libraries/microsoft-agents-a365-observability-extensions-openai/README.md |
Removes retired adapter documentation. |
libraries/microsoft-agents-a365-observability-extensions-openai/pyproject.toml |
Removes the extension manifest. |
libraries/microsoft-agents-a365-observability-extensions-openai/microsoft_agents_a365/observability/extensions/openai/trace_instrumentor.py |
Removes OpenAI Agents instrumentation. |
libraries/microsoft-agents-a365-observability-extensions-openai/microsoft_agents_a365/observability/extensions/openai/constants.py |
Removes tracing constants. |
libraries/microsoft-agents-a365-observability-extensions-openai/microsoft_agents_a365/observability/extensions/openai/__init__.py |
Removes instrumentor exports. |
libraries/microsoft-agents-a365-observability-extensions-openai/docs/design.md |
Removes retired adapter design documentation. |
libraries/microsoft-agents-a365-observability-extensions-langchain/setup.py |
Removes extension build configuration. |
libraries/microsoft-agents-a365-observability-extensions-langchain/README.md |
Removes retired adapter documentation. |
libraries/microsoft-agents-a365-observability-extensions-langchain/pyproject.toml |
Removes the extension manifest. |
libraries/microsoft-agents-a365-observability-extensions-langchain/microsoft_agents_a365/observability/extensions/langchain/__init__.py |
Removes LangChain instrumentor exports. |
libraries/microsoft-agents-a365-observability-extensions-langchain/docs/design.md |
Removes retired adapter design documentation. |
libraries/microsoft-agents-a365-observability-extensions-agentframework/setup.py |
Removes extension build configuration. |
libraries/microsoft-agents-a365-observability-extensions-agentframework/README.md |
Removes retired adapter documentation. |
libraries/microsoft-agents-a365-observability-extensions-agentframework/pyproject.toml |
Removes the extension manifest. |
libraries/microsoft-agents-a365-observability-extensions-agentframework/microsoft_agents_a365/observability/extensions/agentframework/utils.py |
Removes message-extraction utilities. |
libraries/microsoft-agents-a365-observability-extensions-agentframework/microsoft_agents_a365/observability/extensions/agentframework/trace_instrumentor.py |
Removes Agent Framework instrumentation. |
libraries/microsoft-agents-a365-observability-extensions-agentframework/microsoft_agents_a365/observability/extensions/agentframework/span_processor.py |
Removes framework span processing. |
libraries/microsoft-agents-a365-observability-extensions-agentframework/microsoft_agents_a365/observability/extensions/agentframework/span_enricher.py |
Removes Agent Framework span enrichment. |
libraries/microsoft-agents-a365-observability-extensions-agentframework/microsoft_agents_a365/observability/extensions/agentframework/__init__.py |
Removes instrumentor exports. |
libraries/microsoft-agents-a365-observability-extensions-agentframework/docs/design.md |
Removes retired adapter design documentation. |
libraries/microsoft-agents-a365-observability-core/setup.py |
Removes core build configuration. |
libraries/microsoft-agents-a365-observability-core/README.md |
Removes retired core documentation. |
libraries/microsoft-agents-a365-observability-core/pyproject.toml |
Removes the core distribution manifest. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/trace_processor/util.py |
Removes tracing attribute inventories. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/trace_processor/span_processor.py |
Removes baggage-to-span processing. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/trace_processor/__init__.py |
Removes processor exports. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/tool_type.py |
Removes telemetry tool types. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/tool_call_details.py |
Removes tool-call telemetry details. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/spans_scopes/output_scope.py |
Removes output-message tracing scopes. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/spans_scopes/__init__.py |
Removes the scope initializer. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/span_details.py |
Removes span configuration models. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/request.py |
Removes the tracing request model. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/models/user_details.py |
Removes telemetry user details. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/models/service_endpoint.py |
Removes the telemetry endpoint model. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/models/response.py |
Removes the tracing response model. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/models/operation_source.py |
Removes operation-source telemetry types. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/models/caller_details.py |
Removes caller telemetry details. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/models/agent_type.py |
Removes agent telemetry classifications. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/models/__init__.py |
Removes the model initializer. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/middleware/__init__.py |
Removes baggage-builder exports. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/message_utils.py |
Removes telemetry message normalization and serialization. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/invoke_agent_details.py |
Removes invocation-scope configuration. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/inference_operation_type.py |
Removes inference telemetry types. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/inference_call_details.py |
Removes inference telemetry details. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/guardrail_target_type.py |
Removes guardrail target constants. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/guardrail_risk_severity.py |
Removes guardrail severity constants. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/guardrail_finding.py |
Removes guardrail finding models. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/guardrail_details.py |
Removes guardrail telemetry details. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/guardrail_decision_type.py |
Removes guardrail decision types. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/exporters/spectra_exporter_options.py |
Removes Spectra exporter configuration. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/exporters/enriching_span_processor.py |
Removes enrichment registration and processing. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/exporters/enriched_span.py |
Removes enriched-span wrapping and serialization. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/exporters/agent365_exporter_options.py |
Removes Agent365 exporter configuration. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/exporters/__init__.py |
Removes exporter exports. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/channel.py |
Removes the tracing channel model. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/agent_details.py |
Removes agent telemetry details. |
libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/__init__.py |
Removes the core observability public API. |
generate_dependency_diagram.py |
Removes retired package categories and styling. |
docs/prd/tasks/CentralizedPackageVersions-Tasks.md |
Clarifies historical task scope. |
docs/prd/PRD-CentralizedPackageVersions.md |
Distinguishes historical design from current scope. |
docs/changelogs/observability-hosting.md |
Preserves hosting release history. |
docs/changelogs/observability-extensions-semantickernel.md |
Preserves Semantic Kernel release history. |
docs/changelogs/observability-extensions-openai.md |
Preserves OpenAI extension release history. |
docs/changelogs/observability-extensions-langchain.md |
Preserves LangChain extension release history. |
DEPENDENCIES.md |
Updates the diagram to the eight active packages. |
.github/workflows/ci.yml |
Adds fresh artifact directories, verification, and single-job publication. |
.github/copilot-instructions.md |
Documents retirement and release safeguards. |
.claude/commands/review-pr.md |
Replaces the observability-specific review example. |
.claude/agents/task-implementer.md |
Updates package and testing guidance. |
.claude/agents/prd-writer.md |
Updates architecture planning guidance. |
.claude/agents/prd-task-generator.md |
Updates task-generation package scope. |
Review effort: Balanced
Krishnadheeraj (DheerajPannala)
left a comment
There was a problem hiding this comment.
The retirement is carried through the workspace, lockfile, and publish path, and the new wheel check fails closed instead of skipping bad artifacts. The migration write-up matches the deleted exporter route and is specific about what callers must change.
Two minor comments inline.
Isolate stale-version regression coverage from duplicate-wheel rejection and restore Bash build instructions alongside PowerShell examples. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4c600437-fe81-4d93-82b7-f59a2d8ed1f9
Krishnadheeraj (DheerajPannala)
left a comment
There was a problem hiding this comment.
The retirement is carried through the workspace, lockfile, and publish path, and the new wheel check fails closed instead of skipping bad artifacts. The migration guide is specific about what callers have to change.
Two minor comments inline.
Since my last review:
- Fixed: Isolate stale-version rejection from duplicate-wheel rejection (
tests/test_release_artifacts.py) - Fixed: Contributor build step is now Windows-only PowerShell (
README.md)
Replace the missing .pypirc dependency with an owner-configured upload URL and fail explicitly when it is absent. Preserve artifact verification and upload failure propagation, document owner setup, and make architecture build examples portable. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4c600437-fe81-4d93-82b7-f59a2d8ed1f9
Krishnadheeraj (DheerajPannala)
left a comment
There was a problem hiding this comment.
The safeguards match the claim that only the eight active distributions can be released.
Two minor comments inline.
Since my last review:
- Fixed: Architecture build snippet still depends on $env:TEMP (
docs/design.md) - Fixed: Publish step can't succeed without a
.pypirc, and its failure is now fatal (.github/workflows/ci.yml)
Chain URL validation and artifact verification before manual upload, even without shell errexit. Use portable paths in the PowerShell release procedure. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4c600437-fe81-4d93-82b7-f59a2d8ed1f9
There was a problem hiding this comment.
🔵 Needs a closer look
Retiring six published distributions requires owner confirmation of consumer migration readiness and controls over legacy release branches, publisher credentials, and external artifact promoters that cannot be validated from this checkout.
No open issues 🎉
Review effort: Balanced
Claude Code Review SummaryReview Date: 2026-10-30T13:45:13Z Local validation: Findings Summary
Positives
|
🔵 [CRM-006] CODEOWNERS still routes removed paths
Description
SuggestionRemove the entries, or keep them intentionally as a tripwire and add a comment saying so. |
Krishnadheeraj (DheerajPannala)
left a comment
There was a problem hiding this comment.
The retirement is applied consistently across the workspace, and the new wheel check fails closed instead of skipping bad artifacts. That is the right shape for this removal; the release path and the remaining package contract need to be held to the same standard.
Two things to address before this merges; details inline.
Lock publishing and coverage tools, gate uploads on the complete Python matrix, document the breaking 3.0.0 retirement and route-specific migration, and cover remaining wheel-verifier branches. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4c600437-fe81-4d93-82b7-f59a2d8ed1f9
|
CRM-006: removed the two retired Observability CODEOWNERS rules in 5ca59d7. |
Krishnadheeraj (DheerajPannala)
left a comment
There was a problem hiding this comment.
The remaining package surface and the migration guidance line up with that removal.
Two things to address before this merges; details inline.
Since my last review:
- Fixed: Release upload does not wait for the 3.12 test leg (
.github/workflows/ci.yml) - Fixed: Test setup no longer installs pytest-cov, so the documented coverage commands fail (
tests/RUNNING_TESTS.md)
Keep Runtime installed after consumers remove observability packages. Cover the exact wheel requirement, regenerate the dependency graph and lock, and fix the Runtime migration link in the published description. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4c600437-fe81-4d93-82b7-f59a2d8ed1f9
Preserve the patched dependency versions and tox configuration from main while resolving the generated lockfile without restoring retired observability packages. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4c600437-fe81-4d93-82b7-f59a2d8ed1f9
Rick Brighenti (rbrighenti)
left a comment
There was a problem hiding this comment.
Approving at 8083a24. All seven earlier findings (CRM-001–007) are fixed in 5ca59d7/cdc2506:
- twine 6.2.0 is locked.
- The publish job waits for the full matrix and re-verifies wheels before upload.
- The Runtime CHANGELOG has a breaking-change entry.
- The migration guide covers the scope helper, the upstream Step 1 override, and the DefaultAzureCredential fallback.
- CODEOWNERS is cleaned up, and the verifier has new tests for the uncovered branches.
The 3.0.0 release target and the retirement plan are confirmed by the owner. Merging main only touched uv.lock. The merged lock passes uv lock --check, keeps every security bump from #290, and has no observability entries. CI is green on this head.
Krishnadheeraj (DheerajPannala)
left a comment
There was a problem hiding this comment.
The retirement is carried through the workspace, lockfile, and publish path, and the wheel check fails closed instead of shipping a stale drop. The remaining Runtime and Tooling contract, including the 3.0.0 target, matches that removal.
One minor comment inline.
Describe the downstream publisher, its full-matrix gate, and artifact re-verification instead of the previous matrix-cell upload. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4c600437-fe81-4d93-82b7-f59a2d8ed1f9
Rick Brighenti (rbrighenti)
left a comment
There was a problem hiding this comment.
Re-approving at a8f410a. The only change since my previous approval (8083a24, dismissed by the push) is the docs/design.md publishing description. It now matches the workflow: a downstream job waits for both Python legs, downloads the 3.11 artifact, and re-verifies before upload. versioning/TARGET-VERSION is still 3.0.0, and CI is green on this head.
Summary Retire all six Agent365 Observability distributions from this repository while preserving the eight Notifications, Runtime, and Tooling packages. - Remove Observability implementations, dedicated tests/examples, workspace members, observability-only Runtime APIs, and exclusive dependencies. Keep shared dependencies required by remaining frameworks. - Update the lockfile, architecture/package documentation, repository instructions, and dependency diagram. Preserve historical changelogs. Document the Runtime API break and set the shared next-major release target to
3.0.0. - Add a prominently linked consumer migration and package-owner guide directing users to the separately maintainedmicrosoft-opentelemetrydistro. - Build into fresh directories and verify the exact active wheel inventory, versions, payloads, and dependency metadata before artifact upload/publication. Reject retired, unexpected, missing, or stale artifacts; publish from a single downstream job after both Python matrix jobs succeed, and surface upload failures. ### Retired distributions -microsoft-agents-a365-observability-core-microsoft-agents-a365-observability-hosting-microsoft-agents-a365-observability-extensions-agent-framework-microsoft-agents-a365-observability-extensions-langchain-microsoft-agents-a365-observability-extensions-openai-microsoft-agents-a365-observability-extensions-semantic-kernel### Migration and operational boundaries This is an intentional removal, not a drop-in compatibility layer. The guide documents uninstall/install steps, verified imports/APIs, initialization, route-specific authentication, context propagation, framework instrumentation, unsupported functionality, and why generic OTLP does not guarantee Agent365 parity. The guide also includes an owner-operated PyPI retirement checklist and ready-to-paste retirement text. This PR does not change PyPI settings, yank/delete published versions, or disable external publishers. Owners must address project notices/archival, old release branches and workflow reruns, external promotion pipelines, publisher credentials, and previously staged artifacts. ## Validation - Python 3.11: 491 tests passed, including a fresh pre-commit run. - Python 3.12: 491 tests passed through tox using the corrected build-backend configuration from main. - Ruff lint/format and centralized dependency constraints passed. - Strict mypy passed for the new release verifier and its tests. - Fresh3.0.0builds produced exactly eight wheels with no retired distributions, namespaces, or dependencies. - Retired dependencies are removed. All retained patched package versions/sources from main are preserved, and publisher/coverage tools remain locked. Existing limitations: package-level type checks still report errors in 14 unchanged source files. The published-metadata test file also retains two strict-mypy index errors, reproduced unchanged against its pre-fix baseline; the added regression test introduces no new type errors. The unit suite emits two existing warnings. Builds and source-copying wheel tests were run sequentially because the existing backend temporarily rewrites package manifests.