From 5305b914be2f2f7204b03a83ba0acfb19ca04c16 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 24 Apr 2026 21:00:20 +0000 Subject: [PATCH 1/5] Initial plan From ee3060e885e18458a0c937541ff28dee63b9ba6f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 24 Apr 2026 21:03:32 +0000 Subject: [PATCH 2/5] Fix broken DocFx cross-reference links in span_processor, observability_hosting_manager, output_logging_middleware, and utils docstrings Agent-Logs-Url: https://github.com/microsoft/Agent365-python/sessions/d6bb5f58-003d-4e19-bdb2-66284d1768a6 Co-authored-by: JimDaly <6353736+JimDaly@users.noreply.github.com> --- .../microsoft_agents_a365/observability/core/utils.py | 2 +- .../observability/extensions/agentframework/span_processor.py | 3 ++- .../hosting/middleware/observability_hosting_manager.py | 4 ++-- .../hosting/middleware/output_logging_middleware.py | 4 ++-- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/utils.py b/libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/utils.py index 4e824a3e..ff6fc9bf 100644 --- a/libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/utils.py +++ b/libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/utils.py @@ -66,7 +66,7 @@ def get_traceparent(headers: dict[str, str]) -> str | None: Args: headers: Dictionary of HTTP headers, typically obtained from - :meth:`OpenTelemetryScope.inject_context_to_headers`. + :meth:`microsoft_agents_a365.observability.core.opentelemetry_scope.OpenTelemetryScope.inject_context_to_headers`. Returns: The traceparent string (e.g. diff --git a/libraries/microsoft-agents-a365-observability-extensions-agentframework/microsoft_agents_a365/observability/extensions/agentframework/span_processor.py b/libraries/microsoft-agents-a365-observability-extensions-agentframework/microsoft_agents_a365/observability/extensions/agentframework/span_processor.py index 448d43f5..09c03f3e 100644 --- a/libraries/microsoft-agents-a365-observability-extensions-agentframework/microsoft_agents_a365/observability/extensions/agentframework/span_processor.py +++ b/libraries/microsoft-agents-a365-observability-extensions-agentframework/microsoft_agents_a365/observability/extensions/agentframework/span_processor.py @@ -7,7 +7,8 @@ class AgentFrameworkSpanProcessor(SpanProcessor): """SpanProcessor for Agent Framework. - Attribute mutation happens in the enricher (via :class:`EnrichedReadableSpan`) + Attribute mutation happens in the enricher (via + :class:`microsoft_agents_a365.observability.core.exporters.enriched_span.EnrichedReadableSpan`) because OTel Python ``ReadableSpan`` is immutable after ``on_end``. The enricher is invoked at export time by the ``EnrichingSpanProcessor``. """ diff --git a/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/observability_hosting_manager.py b/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/observability_hosting_manager.py index 6c2a2c55..48d84bba 100644 --- a/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/observability_hosting_manager.py +++ b/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/observability_hosting_manager.py @@ -41,7 +41,7 @@ class ObservabilityHostingManager: _instance: ObservabilityHostingManager | None = None def __init__(self) -> None: - """Private constructor — use :meth:`configure` instead.""" + """Private constructor — use :meth:`microsoft_agents_a365.observability.hosting.middleware.observability_hosting_manager.ObservabilityHostingManager.configure` instead.""" @classmethod def configure( @@ -59,7 +59,7 @@ def configure( options: Configuration options controlling which middleware to enable. Returns: - The singleton :class:`ObservabilityHostingManager` instance. + The singleton :class:`microsoft_agents_a365.observability.hosting.middleware.observability_hosting_manager.ObservabilityHostingManager` instance. Raises: TypeError: If *middleware_set* or *options* is ``None``. diff --git a/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/output_logging_middleware.py b/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/output_logging_middleware.py index 57587a40..7b5a9ca8 100644 --- a/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/output_logging_middleware.py +++ b/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/output_logging_middleware.py @@ -85,9 +85,9 @@ def _derive_channel( class OutputLoggingMiddleware: - """Middleware that creates :class:`OutputScope` spans for outgoing messages. + """Middleware that creates :class:`microsoft_agents_a365.observability.core.spans_scopes.output_scope.OutputScope` spans for outgoing messages. - Links to a parent span when :data:`A365_PARENT_TRACEPARENT_KEY` is set in + Links to a parent span when :data:`microsoft_agents_a365.observability.hosting.middleware.output_logging_middleware.A365_PARENT_TRACEPARENT_KEY` is set in ``turn_state``. **Privacy note:** Outgoing message content is captured verbatim as span From 0dce6ab6794b453793a597de387d1256d70757f2 Mon Sep 17 00:00:00 2001 From: Jim Daly Date: Wed, 29 Apr 2026 14:13:31 -0700 Subject: [PATCH 3/5] Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../hosting/middleware/output_logging_middleware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/output_logging_middleware.py b/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/output_logging_middleware.py index 7b5a9ca8..e0ec701a 100644 --- a/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/output_logging_middleware.py +++ b/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/output_logging_middleware.py @@ -87,7 +87,7 @@ def _derive_channel( class OutputLoggingMiddleware: """Middleware that creates :class:`microsoft_agents_a365.observability.core.spans_scopes.output_scope.OutputScope` spans for outgoing messages. - Links to a parent span when :data:`microsoft_agents_a365.observability.hosting.middleware.output_logging_middleware.A365_PARENT_TRACEPARENT_KEY` is set in + Links to a parent span when :data:`~microsoft_agents_a365.observability.hosting.middleware.output_logging_middleware.A365_PARENT_TRACEPARENT_KEY` is set in ``turn_state``. **Privacy note:** Outgoing message content is captured verbatim as span From 8ec933798df92edb49888876459f8fcf190cb7fd Mon Sep 17 00:00:00 2001 From: Jim Daly Date: Wed, 29 Apr 2026 14:13:45 -0700 Subject: [PATCH 4/5] Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../hosting/middleware/observability_hosting_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/observability_hosting_manager.py b/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/observability_hosting_manager.py index 48d84bba..21e2acf4 100644 --- a/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/observability_hosting_manager.py +++ b/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/observability_hosting_manager.py @@ -41,7 +41,7 @@ class ObservabilityHostingManager: _instance: ObservabilityHostingManager | None = None def __init__(self) -> None: - """Private constructor — use :meth:`microsoft_agents_a365.observability.hosting.middleware.observability_hosting_manager.ObservabilityHostingManager.configure` instead.""" + """Private constructor — use :meth:`~microsoft_agents_a365.observability.hosting.middleware.observability_hosting_manager.ObservabilityHostingManager.configure` instead.""" @classmethod def configure( From 85155f665c6e3096513c69a7333d198b10790c12 Mon Sep 17 00:00:00 2001 From: Jim Daly Date: Wed, 29 Apr 2026 14:13:54 -0700 Subject: [PATCH 5/5] Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../hosting/middleware/observability_hosting_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/observability_hosting_manager.py b/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/observability_hosting_manager.py index 21e2acf4..4a886660 100644 --- a/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/observability_hosting_manager.py +++ b/libraries/microsoft-agents-a365-observability-hosting/microsoft_agents_a365/observability/hosting/middleware/observability_hosting_manager.py @@ -59,7 +59,7 @@ def configure( options: Configuration options controlling which middleware to enable. Returns: - The singleton :class:`microsoft_agents_a365.observability.hosting.middleware.observability_hosting_manager.ObservabilityHostingManager` instance. + The singleton :class:`~microsoft_agents_a365.observability.hosting.middleware.observability_hosting_manager.ObservabilityHostingManager` instance. Raises: TypeError: If *middleware_set* or *options* is ``None``.