Repository navigation
Add August 2026 preview support for Web PubSub Chat - #50806
yzt (Y-Sindo) wants to merge 18 commits into
Conversation
|
Azure Pipelines: Successfully started running 1 pipeline(s). 34 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
🔵 Needs a closer look
The default-version switch and expanded APIs warrant human confirmation of live and clean-cache playback results, alongside the outstanding link-validation correction.
1 open finding
What changed in this PR
Adds August 2026 preview support to the Web PubSub Chat Java SDK, extending chat management and updating validation and usage guidance.
Changes:
- Adds topic management and room/user listing APIs, with August as the default service version.
- Expands sync/async tests, pagination checks, and test-resource configuration.
- Updates samples, documentation, and recordings while tracking the upstream async page-size limitation.
Paths below are relative to sdk/webpubsub/.
| File | Description |
|---|---|
tests.yml |
Adds Chat resources and test artifact. |
azure-messaging-webpubsub-chat/tsp-location.yaml |
Pins the corrected specification. |
azure-messaging-webpubsub-chat/test-resources.bicep |
Supports configurable test principal types. |
azure-messaging-webpubsub-chat/src/test/java/com/azure/messaging/webpubsub/chat/WebPubSubChatServiceClientBuilderTests.java |
Checks default version and versioned proxy behavior. |
azure-messaging-webpubsub-chat/src/test/java/com/azure/messaging/webpubsub/chat/WebPubSubChatPaginationTests.java |
Adds pagination regression coverage. |
azure-messaging-webpubsub-chat/src/test/java/com/azure/messaging/webpubsub/chat/ChatServiceClientTestBase.java |
Adjusts playback matching and cleanup logging. |
azure-messaging-webpubsub-chat/src/test/java/com/azure/messaging/webpubsub/chat/ChatServiceAugustClientLiveTests.java |
Adds synchronous feature tests. |
azure-messaging-webpubsub-chat/src/test/java/com/azure/messaging/webpubsub/chat/ChatServiceAugustAsyncClientLiveTests.java |
Adds asynchronous feature tests. |
azure-messaging-webpubsub-chat/src/samples/java/com/azure/messaging/webpubsub/chat/WebPubSubChatSamples.java |
Demonstrates new operations and protocol paging. |
azure-messaging-webpubsub-chat/src/main/resources/META-INF/azure-messaging-webpubsub-chat_metadata.json |
Updates generated API metadata. |
azure-messaging-webpubsub-chat/src/main/java/com/azure/messaging/webpubsub/chat/WebPubSubChatServiceVersion.java |
Makes August preview the default. |
azure-messaging-webpubsub-chat/src/main/java/com/azure/messaging/webpubsub/chat/WebPubSubChatServiceClient.java |
Adds synchronous operations. |
azure-messaging-webpubsub-chat/src/main/java/com/azure/messaging/webpubsub/chat/WebPubSubChatServiceAsyncClient.java |
Adds asynchronous operations. |
azure-messaging-webpubsub-chat/src/main/java/com/azure/messaging/webpubsub/chat/models/ChatUserRoom.java |
Adds read-only user-room projections. |
azure-messaging-webpubsub-chat/src/main/java/com/azure/messaging/webpubsub/chat/models/ChatTopicState.java |
Defines topic lifecycle states. |
azure-messaging-webpubsub-chat/src/main/java/com/azure/messaging/webpubsub/chat/models/ChatTopic.java |
Adds the topic model and serialization. |
azure-messaging-webpubsub-chat/src/main/java/com/azure/messaging/webpubsub/chat/implementation/JsonMergePatchHelper.java |
Supports topic merge-patch serialization. |
azure-messaging-webpubsub-chat/README.md |
Documents new features and paging limitations. |
azure-messaging-webpubsub-chat/KNOWN_ISSUES.md |
Tracks upstream paging behavior and verification. |
azure-messaging-webpubsub-chat/CHANGELOG.md |
Records preview features and validation updates. |
azure-messaging-webpubsub-chat/assets.json |
Updates the recording asset tag. |
azure-messaging-webpubsub-chat/AGENTS.md |
Documents package development constraints. |
🧠 Review effort: Balanced
Generate from the corrected specification and update samples and documentation. Verify the complete sync/async live suite in Central US EUAP, remove the routing workaround, and upload sanitized latest-version recordings. Track the independent upstream async paging limitation without customization. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use an absolute GitHub reference for generator issue tracking and link the available Chat REST API specification instead of an unpublished documentation page. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Regenerate Chat with the emitter 0.48.1 already adopted on main. Enable strict paging regressions, use typed async paging in scenarios and samples, and retire the temporary workaround documentation. Fresh-cache playback passes all 59 tests without skips. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
b01cc1a to
b0c86c0
Compare
Correct request visibility and PATCH optionality across sync, async and implementation Javadocs while retaining response requiredness. Persist the documentation-only workaround in Java customization and cover regeneration and idempotence with regression tests. Related: Azure/typespec-azure#5721 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use text and binary factories, preserve customization across regeneration, and update samples and regression tests. Remove obsolete package notes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Align MessageContent imports and Javadoc with generated output and preserve Javadoc spacing in the customization. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Preserve handwritten fields and serialization methods through partial update instead of duplicating their implementations in AST customization. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Share new sync/async scenarios, preserve isolated Chat test resources, and clarify topic creation state and README guidance. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep setState as an in-place customization and consolidate remaining sync/async tests without re-recording service traffic. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Restore the configurable tester principal type and document the local user-authentication override while preserving service-principal defaults for CI. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Don't bother adding tests to customizations
| } | ||
| } | ||
|
|
||
| static String correctLifecycleDocumentation(String source) { |
There was a problem hiding this comment.
This customization seems to be covering something that should be, or have been, fixed at the spec layer.
There was a problem hiding this comment.
The spec already defines the correct visibility; the emitter isn’t respecting it. Tracked in [Bug]: Lifecycle visibility and PATCH requiredness are not consistently reflected in generated SDKs Azure/typespec-azure#5721
| corrected = corrected.replace("Create or replace a topic.", | ||
| "Create or replace a topic.\n *\n" | ||
| + " * <p>When creating a topic, omit state or set it to Normal. " | ||
| + "Other states are only valid when updating an existing topic.</p>"); |
There was a problem hiding this comment.
Based on this description, it really seems these APIs should be called createOrUpdate as this is conveying update behavior not replacement behavior.
There was a problem hiding this comment.
Copilot: “Updating” here meant replacing an existing topic, not a partial update. I’ve clarified the wording to “replacing an existing topic”; createOrReplaceTopic remains the intended name.
| assertTrue(request.contains("kind: String(Human) (Required)")); | ||
| assertTrue(request.contains("nickname: String (Required)")); | ||
| } | ||
| assertTrue(doc.contains("@param resource")); |
There was a problem hiding this comment.
We don't need tests for customization code, according to the api view comment, right?
There was a problem hiding this comment.
Copilot: Yes, that matches Alan's review guidance. I've removed the two customization-only test classes and their dedicated JUnit dependency locally; the SDK's behavior tests remain. This cleanup is not pushed yet, so I'm leaving the thread open until the PR includes it.
Rename client access token options and resource parameters, expose conversation roomId with its existing wire name, clarify paging and content documentation, and pin the shared TypeSpec changes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Remove customization-only tests and clarify topic creation versus partial updates. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Regeneration preserves the existing Java API and implementation and refreshes the cross-language version metadata. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Temporarily print the exact regeneration diff to diagnose the reproducible CI-only failure. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep the read-required Topic state documentation consistent when the emitter marks the non-create property optional. Preserve optional request state and remove temporary CI diff diagnostics. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Description
Add Web PubSub Chat support for
2026-08-01-previewand make it the default API version.MessageContentnow usesfromText/fromBinaryinstead of its public constructor and setters, ensuring text and binary content are mutually exclusive.All SDK Contribution checklist:
General Guidelines and Best Practices
Testing Guidelines