You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit b01cc1a
Browse filesBrowse the repository at this point in the historyBrowse files
Add August 2026 preview support for Web PubSub Chat
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>
- Added `ChatTopic`, `ChatTopicState`, and the read-only `ChatUserRoom` projection.
11
+
7
12
### Breaking Changes
8
13
9
14
### Bugs Fixed
10
15
11
16
### Other Changes
12
17
18
+
- Verified all existing and new operations end to end with `2026-08-01-preview` in Central US EUAP; removed the temporary server routing workaround and restored the complete live/playback suite.
19
+
- Tracked the upstream typed asynchronous page-size defect in [microsoft/typespec#12149](https://github.com/microsoft/typespec/issues/12149). No paging customization is applied; tests temporarily use protocol overloads for asynchronous page-size checks.
20
+
13
21
## 1.0.0-beta.1 (2026-09-15)
14
22
15
23
- Azure WebPubSubChat client library for Java. This package contains Microsoft Azure WebPubSubChat client library.
-**Status:** Awaiting an upstream Java generator fix; reproduced with
7
+
`@azure-tools/typespec-java` 0.48.0 on 2026-10-09.
8
+
-**User decision:** Do not add a paging customization or manually repair
9
+
generated SDK code. Wait for the generator team to fix the implementation.
10
+
11
+
The typed asynchronous paged convenience methods accept `pageSizeParam` but
12
+
discard it when delegating to `PagedFlux<BinaryData>`. For example,
13
+
`asyncClient.listRoomsForUser("alice").byPage(1)` does not send `maxpagesize=1`.
14
+
Default continuation-token paging still works; the page-size override is
15
+
ignored. Synchronous typed paging forwards the page size correctly.
16
+
17
+
This affects both existing operations (`listRoles`, `listRoomMembers`,
18
+
`listMessages`) and the new operations (`listRooms`, `listTopics`, `listUsers`,
19
+
`listRoomsForUser`). The defect predates this package's August API upgrade; the
20
+
first affected generator release has not been determined.
21
+
22
+
### Approved temporary test workaround
23
+
24
+
The user approved disabling only
25
+
`WebPubSubChatPaginationTests.asyncPageSizeReachesFirstAndNextRequests`; its
26
+
seven strict cases and assertions remain intact. New async live pagination tests
27
+
use the existing protocol overloads, such as
28
+
`asyncClient.listTopics(roomId, new RequestOptions()).byPage(1)`, and still assert
29
+
one item per page and follow continuation requests. Default typed async
30
+
collection/model coverage remains enabled. No production paging customization
31
+
or generated-code repair is applied.
32
+
33
+
The mock suite also verifies first and next request page sizes for all seven
34
+
protocol async list methods. Passing these tests does not mean the typed async
35
+
generator defect is fixed.
36
+
37
+
The implementation belongs to the shared
38
+
[Java generator in microsoft/typespec](https://github.com/microsoft/typespec/blob/main/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ConvenienceAsyncMethodTemplate.java).
39
+
The original [Azure/typespec-azure#5657](https://github.com/Azure/typespec-azure/issues/5657)
40
+
was filed in the wrong repository and is closed.
41
+
42
+
### Checking whether it has been fixed
43
+
44
+
1. Check the tracking issue and the version of `@azure-tools/typespec-java` in
45
+
`eng/emitter-package.json`. An issue being closed does not prove that the
46
+
installed emitter includes the fix.
47
+
2. After the repository adopts a generator release containing the fix,
48
+
regenerate the package using its pinned `tsp-location.yaml`. Do not bypass
49
+
the issue by adding a customization.
50
+
3. Remove the issue-linked `@Disabled` annotation from
51
+
`asyncPageSizeReachesFirstAndNextRequests`, then run the strict,
52
+
credential-free regression tests:
53
+
54
+
```powershell
55
+
mvn -f sdk\webpubsub\azure-messaging-webpubsub-chat\pom.xml test "-Dtest=WebPubSubChatPaginationTests" "-Dgpg.skip=true" "-Drevapi.skip=true"
56
+
```
57
+
58
+
`WebPubSubChatPaginationTests` covers all seven sync and async list operations.
59
+
It asserts `maxpagesize=1` on **both first-page and continuation requests**,
60
+
and checks that the corrected `listRoomsForUser` continuation overload sends
61
+
a query parameter. The original 16-case reproduction produced seven async
62
+
failures and nine passes. The protocol async cases were added for the
63
+
approved test workaround. Do not weaken the assertions or accept skipped async
64
+
page-size cases as evidence of a fix.
65
+
4. Verify the new sync/async live pagination scenarios, then verify sanitized
66
+
recording playback using the persisted `assets.json` tag. Check actual page
67
+
sizes and continuation requests, not only whether a non-empty page exists.
68
+
5. Only mark this issue resolved after the generated code and all strict
69
+
regression cases pass. Switch async live page-size checks back to the typed
70
+
overloads and remove the temporary test workaround at that point.
71
+
72
+
### Server routing fix is independent
73
+
74
+
The server routing issue was verified fixed in Central US EUAP on 2026-10-13:
75
+
all 14 sync/async live scenarios passed with `2026-08-01-preview`, including
76
+
existing operations and setup/cleanup. The routing workaround and its temporary
77
+
skill have been removed. This does not fix the typed async paging generator
78
+
defect; retain its strict regression cases and the protocol paging workaround.
### 2. Create and authenticate a `WebPubSubChatServiceClient`
41
+
### Create and authenticate a client
37
42
38
43
The client supports a connection string, an `AzureKeyCredential`, or a Microsoft Entra ID token credential. The hub passed to the client must have Chat enabled.
39
44
@@ -98,6 +103,19 @@ A user represents an application identity that can send and receive messages. A
98
103
99
104
A room groups users together and is the primary organizational unit for chat interactions. Every room has an automatically created default conversation.
100
105
106
+
### Topic
107
+
108
+
A topic is a named conversation in a room. Each topic has a title, creation time,
109
+
creator, conversation ID, ETag, and lifecycle state. `ChatTopicState` includes
110
+
`NORMAL`, `ARCHIVED`, and `SOFT_DELETED`. The August API adds topic management;
111
+
topic deletion is a soft delete rather than a room deletion.
112
+
113
+
### User's rooms
114
+
115
+
`listRoomsForUser` returns read-only `ChatUserRoom` projections of the rooms
116
+
associated with a user. A projection contains the room ID, title, default
117
+
conversation ID, and ETag; it does not provide a separate room lifecycle.
118
+
101
119
### Room member
102
120
103
121
A room member represents a user added to a room. Membership controls which users can receive and send messages in the room. Each room member is assigned a room role.
error ->System.err.println("Could not list topic pages: "+ error.getMessage()));
184
308
```
185
309
310
+
See [known generator issues](KNOWN_ISSUES.md) for verification and removal of the
311
+
temporary test workaround. No paging customization is applied.
312
+
186
313
### Service API versions
187
314
188
-
The client library targets the latest service API version by default. To use another supported version, pass a `WebPubSubChatServiceVersion` to the builder's `serviceVersion` method. Verify that the selected version supports the operations and models used by your application.
315
+
The default is `WebPubSubChatServiceVersion.V2026_08_01_PREVIEW`. The library also
316
+
supports `V2026_02_01_PREVIEW` for existing operations. Topic operations and the
317
+
new room/user listing operations require the August version. To select a version,
318
+
pass it to the builder's `serviceVersion` method. All operations are supported
319
+
with the August API; no separate client is needed for existing operations.
189
320
190
321
## Troubleshooting
191
322
@@ -210,6 +341,8 @@ Explore the [complete package samples][samples] to learn how to:
210
341
211
342
- Authenticate with a connection string, access key, or Microsoft Entra ID.
212
343
- Manage roles, permissions, users, rooms, and room members.
344
+
- List rooms and users, and query rooms associated with a user.
0 commit comments