All notable changes to this package will be documented in this file.
- Hosting OBS token cache requires an app-only resolver —
refresh_observability_token(agent_id, tenant_id, token_resolver)acquires and caches app-only OBS tokens for export. The resolver receives the configured OBS scopes and must acquire a token for the exporting agent identity, not its blueprint or the workload's user. Acquisition failures propagate to the caller; empty tokens fail refresh and clear stale cache state. get_observability_token(...)no longer exchanges tokens — It returns the cached app-only token acquired byrefresh_observability_token, orNone.- Delegated OBS registration is a no-op —
register_observability(...)logs one error and stores no token. It never callsAuthorization.exchange_tokenand never acquires a delegated OBS token.
- The package now declares a direct dependency on
microsoft-agents-a365-runtime.
- Channel scope helpers now fall back to
channel_data.productContextfor the sub-channel when the activity'sChannelIddoes not carry one.
- Call and return
refresh_observability_token(agent_id, tenant_id, app_only_token_resolver)from the exportertoken_resolver. - Keep workload MCP/Graph/OBO authentication unchanged; only OBS export authentication moves to app-only S2S.
OutputLoggingMiddleware— Updated to use new scope APIs (Request,SpanDetails,UserDetails). RemovedTenantDetailsandExecutionTypedependencies. Middleware no longer gates on tenant presence.scope_helpers/utils.py— Removedget_execution_type_pair().populate_baggage.py/populate_invoke_agent_scope.py— Removed execution type population.