Add voice agent WebSocket transport, tests, samples, and AI Projects parity - #50408
Mike Guo (guotuofeng) wants to merge 45 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved critical and moderate findings remain in WebSocket behavior and model serialization.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Adds generated voice/realtime agent models and authenticated synchronous/asynchronous WS/WSS sessions to azure-ai-agents.
Changes:
- Regenerates voice, realtime, telephony, and agent model surfaces.
- Adds WebSocket authentication, proxying, typed events, audio, tools, cancellation, and close handling.
- Updates TypeSpec metadata, module dependencies, vocabulary, and release metadata.
Unresolved findings remain in connection validation and cancellation, bounded close buffering, handshake error preservation, and PromptAgentDefinition serialization.
File summaries
| File | Summary |
|---|---|
sdk/ai/cspell.yml |
Adds domain vocabulary. |
sdk/ai/azure-ai-agents/tsp-location.yaml |
Updates TypeSpec source metadata. |
sdk/ai/azure-ai-agents/src/main/java/module-info.java |
Updates module dependencies. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceType.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseStatus.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseOutputModality.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseObject1.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseObject.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseAudio.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceOutputModality.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceModelType.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceConversationStatus.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioRole.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioContainerFormat.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioCodec.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionType.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTransport.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentToolResponseScheduling.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSystemToolName.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSubagentAbortReason.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSessionIncludeOption.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetectionEagerness.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentResponseCreateParamsConversation.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReductionType.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseTrigger.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentFunctionToolType.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceThresholdLevel.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellationReferenceSource.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarType.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarOutputProtocol.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioTimestampType.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfigTranscriptionDelay.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAnimationOutputType.java |
Generated voice model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TranscriptionLanguage.java |
Generated transcription model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolType.java |
Generated tool model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolConfig.java |
Generated tool model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceOptions.java |
Generated tool model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxVersions.java |
Generated toolbox model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxToolType.java |
Generated toolbox model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxTool.java |
Generated toolbox model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Tool.java |
Generated tool model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyTransferDestinationKind.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyProvider.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyOutboundRetryPolicyType.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyOutboundDestinationType.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyOperationStatus.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCampaignScheduleType.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCampaignRecipientImportStatus.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCampaignRecipientImportFormat.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCampaignDuplicateHandling.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCampaignConfigurationStatus.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTraceStatus.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTraceMode.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTimestampSource.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallStatus.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventSource.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventOutcome.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallDurationBasis.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyBindingStatus.java |
Generated telephony model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/SessionAffinitySource.java |
Generated session-affinity model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/SessionAffinityRequestMode.java |
Generated session-affinity model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/SessionAffinityMode.java |
Generated session-affinity model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/SessionAffinityDecision.java |
Generated session-affinity model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeTurnDetectionType.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeSessionCreateRequestUnionType.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeServerEventResponseContentPartDonePartType.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeServerEventResponseContentPartAddedPartType.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeServerEventRateLimitsUpdatedRateLimitsName.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeServerEventConversationCreatedConversationObject.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsType.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsReason.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeReasoningEffort.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMcpErrorType.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemObject.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageUserStatus.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageUserContentType.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageUserContentDetail.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageType.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemStatus.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemContentType.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageAssistantStatus.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageAssistantContentType.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallStatus.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutputStatus.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeClientEventSessionUpdateSessionTruncation.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeClientEventSessionUpdateSessionOutputModality.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsType.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmRate.java |
Generated realtime model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RaiInvocationMode.java |
Generated responsible-AI model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RaiInvocationContentType.java |
Generated responsible-AI model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PublishTelephonyCampaignRequest.java |
Generated telephony request model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PromptCacheBreakpointConfig.java |
Generated prompt model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PromptAgentDefinition.java |
Prompt agent model; serialization finding remains. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/NoiseReductionType.java |
Generated audio model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterDetails.java |
Generated agent model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/McpListToolsToolInputSchema.java |
Generated MCP model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/McpListToolsToolAnnotations.java |
Generated MCP model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ImageDetail.java |
Generated content model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/GitHubCopilotHarness.java |
Generated GitHub Copilot model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/GitHubCopilotBuiltInTool.java |
Generated GitHub Copilot model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/FileInputDetail.java |
Generated content model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/CreateTranscriptionResponseJsonUsageType.java |
Generated transcription model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AzureCreateResponseOptions.java |
Generated agent model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationJobProgress.java |
Generated agent model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentKind.java |
Generated agent model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentEndpointProtocol.java |
Generated agent model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentDetails.java |
Generated agent model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentDefinition.java |
Generated agent model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/SyncOperationLocationPollingStrategy.java |
Polling customization. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/realtime/VoiceAgentWebSocketHandshakeHandler.java |
WebSocket handshake handling. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/OperationLocationPollingStrategy.java |
Polling customization. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/TransferTelephonyCallRequest.java |
Generated implementation model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/AgentDefinitionOptInKeys.java |
Generated implementation model. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/JsonMergePatchHelper.java |
JSON merge-patch helper. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java |
Generated client implementation. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java |
Synchronous WebSocket entry point; validation finding remains. |
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java |
Asynchronous WebSocket entry point. |
sdk/ai/azure-ai-agents/CHANGELOG.md |
Documents the feature. |
sdk/ai/azure-ai-agents/assets.json |
Updates package metadata. |
Review details
Suppressed comments (4)
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/VoiceAgentWebSocketSessionAsyncClient.java:404
- Disabling automatic ping handling leaves ping frames to the receive path, but
handleFrameonly processes text and binary frames and never sends a Pong. A server keepalive ping can therefore go unanswered and cause the session to be closed. Keep automatic ping handling enabled or explicitly process PingWebSocketFrame messages.
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/VoiceAgentWebSocketSessionClient.java:412 - The OkHttp transport configures a fixed proxy but ignores
ProxyOptions.getNonProxyHosts(), whereas the Reactor Netty path honors that setting. Synchronous sessions therefore route hosts configured to bypass the proxy through it, which can break internal endpoints and makes the two clients behave differently. Configure the OkHttp proxy selector to honor the bypass pattern.
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/VoiceAgentWebSocketSessionClient.java:92 - The synchronous constructor accepts an empty agent name and builds
/agents//endpoint/protocols/voice, whereas the async constructor rejects empty names.connect("")should fail before issuing this malformed service request so both public clients have the same validation.
sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/realtime/VoiceAgentWebSocketHttpResponse.java:37 - Netty can expose multiple header entries with the same name, but
HttpHeaders.setoverwrites the previous value on each iteration. A rejected handshake with repeated headers (for example, authentication challenges) is therefore reported with only its last value, unlike the OkHttp adapter. Append each entry instead of replacing the header.
- Files reviewed: 74/418 changed files
- Comments generated: 5
- Review effort level: Lite
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
c27ca24 to
f5b5cc2
Compare
|
Azure Pipelines: Successfully started running 278 pipeline(s). 36 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
1 similar comment
|
Azure Pipelines: Successfully started running 278 pipeline(s). 36 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
f5b5cc2 to
e20f5ac
Compare
e20f5ac to
1b86c84
Compare
|
Synchronized Core with the lower PRs at This merge incorporates #50412 at Published together with Agents using a normal atomic push, preserving existing history and PR bases. Validation on this combined Core tree:
An initial Windows target-directory lock was resolved by retrying the Agents clean build. Live-service tests were not run. These local results do not replace CI checks. |
# Conflicts: # sdk/ai/azure-ai-projects/customizations/src/main/java/ProjectsCustomizations.java
# Conflicts: # sdk/ai/azure-ai-agents/CHANGELOG.md # sdk/ai/azure-ai-agents/customizations/src/main/java/AgentsCustomizations.java # sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClientBuilder.java # sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsServicePollUtils.java # sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/FoundryFeaturesHeaderVerificationTest.java # sdk/ai/azure-ai-projects/customizations/src/main/java/ProjectsCustomizations.java
# Conflicts: # sdk/ai/azure-ai-agents/CHANGELOG.md # sdk/ai/azure-ai-agents/customizations/src/main/java/AgentsCustomizations.java # sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClientBuilder.java # sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsServicePollUtils.java # sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/FoundryFeaturesHeaderVerificationTest.java
Description
Top of the active three-PR stack, based on the Agents generated foundation #50412. Combines the handwritten voice-agent WebSocket implementation, tests, samples, documentation, and AI Projects parity improvements. Generated Projects and Agents foundations remain separate PRs.
Changes
ConnectionsClientdirectly, without blocking an async client.Latest Updates
7043d03f576: Simplifies Projects builder customization after repeated partial-update regeneration checks. The customization now retains only the generated no-argumentcreateHttpPipeline()delegation tocreateHttpPipeline(true)and appends handwrittenTelemetryClient/TelemetryAsyncClientregistrations to@ServiceClientBuilder.8e65f4e6f82: Removes redundant Projects generation customizations. Partial update preserves the handwritten pipeline overload, authentication guard, logging resolver, custom logging policy, transitive Blob module requirement, telemetry factory methods, and other handwritten builder code.@ServiceClientBuildermetadata unless explicitly appended by customization. Regeneration with the minimal customization restores both registrations.3f6fc0c266a: Propagates Projects TypeSpec pinc12a439255c265d647357b4762e095656dda91c0through the stack.14d246c723b: Adds successful agent-deletion console output to lifecycle samples, distinguishing normal completion from error cleanup in the async sample.2bbbb4f06b9: Makes outer WebSocket factories private and migrates callers to the public.beta()factories.Stack
main, ate5d355f25e3.78dba160c31.7043d03f576.The stack was previously rebased onto
mainatd269069710b7ca939c95dc880e0044e537fa9b97with explicit authorization. Original merge topology and merge resolutions were preserved. Subsequent updates, including thec12a439...Projects regeneration and customization cleanup, were normal merges and pushes.The work previously split into #50409 and #50410 is included here; those PRs are no longer separate active layers.
Latest Local Validation
Projects minimal-customization validation at
7043d03f576:createHttpPipeline(true), handwritten pipeline/logging methods, telemetry factory methods, andrequires transitive com.azure.storage.blob.TelemetryClient.classandTelemetryAsyncClient.classin the outer@ServiceClientBuilderannotation.Stack propagation validation at
3f6fc0c266a:The official Projects 2.5.0 Maven Central artifact was verified with SHA-1
7b3cdadba896d429186f2a78b2aaf28e770c3aee. An earlier mismatched local baseline was replaced; compatibility conclusions above use the official artifact.No live Azure, enabled SpotBugs, or Javadoc run was performed for the latest customization cleanup. TypeSpec generation reported four npm dependency vulnerabilities (three moderate and one high); no dependency-audit fixes were applied. These are local results, not a claim that current CI or merge requirements are complete.
Earlier Validation and Known Limits
.beta()caller migration; remaining output differences were whitespace-only.All SDK Contribution checklist