Skip to content

Commit e77f003

Browse files
authored
Prepare 2.6.0 release (#797)
1 parent b1ad4b1 commit e77f003

9 files changed

+274
-224
lines changed

CHANGELOG.md

Lines changed: 60 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,83 @@
11
# Release History
22

3-
## 2.6.0-beta.1 (Unreleased)
3+
## 2.6.0 (2025-10-31)
44

55
### Acknowledgments
66

77
Thank you to our developer community members who helped to make the OpenAI client library better with their contributions to this release:
88

99
- Maksim Kurnakov _([GitHub](https://github.com/kurnakovv))_
10-
- Benjamin Pinter _([GitHub](https://github.com/BenjaminDavidPinter))_
1110

1211
### Features Added
1312

1413
- OpenAI.Chat:
15-
- Added the `Minimal` property to `ChatReasoningEffortLevel`_(A community contribution, courtesy of [kurnakovv](https://github.com/kurnakovv))_
14+
- Added the `Minimal` property to `ChatReasoningEffortLevel`. _(A community contribution, courtesy of [kurnakovv](https://github.com/kurnakovv))_
15+
- Added support for System.Client.Model's `JsonPatch`, which enables users to get and set additional JSON properties in response and request payloads.
16+
- See the following examples for more information:
17+
- [AdditionalProperties](https://github.com/openai/openai-dotnet/blob/main/examples/Chat/Example10_AdditionalProperties.cs)
18+
- [AdditionalPropertiesAsync](https://github.com/openai/openai-dotnet/blob/main/examples/Chat/Example10_AdditionalPropertiesAsync.cs)
19+
- Go to the OpenAI.Responses section in this changelog for more examples that can be extrapolated to Chat.
20+
- OpenAI.Conversations:
21+
- Introduced the new `ConversationClient` to support the Conversations API with protocol methods for the following operations:
22+
- `CreateConversation` and `CreateConversationAsync`
23+
- `GetConversation` and `GetConversationAsync`
24+
- `UpdateConversation` and `UpdateConversationAsync`
25+
- `DeleteConversation` and `DeleteConversationAsync`
26+
- `CreateConversationItems` and `CreateConversationItemsAsync`
27+
- `GetConversationItems` and `GetConversationItemsAsync`
28+
- `DeleteConversationItem` and `DeleteConversationItemAsync`
29+
- OpenAI.Embeddings:
30+
- Added support for System.Client.Model's `JsonPatch`, which enables users to get and set additional JSON properties in response and request payloads.
31+
- Go to the OpenAI.Chat and OpenAI.Responses section in this changelog for examples that can be extrapolated to Embeddings.
32+
- OpenAI.Responses:
33+
- Added the `Minimal` property to `ResponseReasoningEffortLevel`. _(A community contribution, courtesy of [kurnakovv](https://github.com/kurnakovv))_
34+
- Added the `ContainerFileCitationMessageAnnotation` class which is derived from `ResponseMessageAnnotation` and is used to cite files in the container of the Code Interpreter tool.
35+
- Enabled support for the Image Generation tool, which can be used to generate images using models like `gpt-image-1`.
36+
- Users can add the new `ImageGenerationTool` to the `Tools` property of their `ResponseCreationOptions` and configure it using properties such as `Background`, `Quality`, `Size`, and more.
37+
- Added support for System.Client.Model's `JsonPatch`, which enables users to get and set additional JSON properties in response and request payloads.
38+
- See the following examples for more information:
39+
- [InputAdditionalProperties](https://github.com/openai/openai-dotnet/blob/main/examples/Responses/Example07_InputAdditionalProperties.cs)
40+
- [InputAdditionalPropertiesAsync](https://github.com/openai/openai-dotnet/blob/main/examples/Responses/Example07_InputAdditionalPropertiesAsync.cs)
41+
- [OutputAdditionalProperties](https://github.com/openai/openai-dotnet/blob/main/examples/Responses/Example08_OutputAdditionalProperties.cs)
42+
- [OutputAdditionalPropertiesAsync](https://github.com/openai/openai-dotnet/blob/main/examples/Responses/Example08_OutputAdditionalPropertiesAsync.cs)
43+
- [ModelOverridePerRequest](https://github.com/openai/openai-dotnet/blob/main/examples/Responses/Example09_ModelOverridePerRequest.cs)
44+
- [ModelOverridePerRequestAsync](https://github.com/openai/openai-dotnet/blob/main/examples/Responses/Example09_ModelOverridePerRequestAsync.cs)
45+
- Go to the OpenAI.Chat section for more examples that can be extrapolated to Responses.
46+
- OpenAI.Videos:
47+
- Introduced the new `VideoClient` to support the Videos API with protocol methods for the following operations:
48+
- `CreateVideo` and `CreateVideoAsync`
49+
- `GetVideo` and `GetVideoAsync`
50+
- `DeleteVideo` and `DeleteVideoAsync`
51+
- `DownloadVideo` and `DownloadVideoAsync`
52+
- `GetVideos` and `GetVideosAsync`
53+
- `CreateVideoRemix` and `GetVideoRemixAsync`
54+
55+
### Bugs Fixed
1656

57+
- OpenAI.Audio:
58+
- Added the explicit conversion operators from `ClientResult` that were missing in the `AudioTranscription` and `AudioTranslation` classes.
59+
- OpenAI.Chat:
60+
- Added the `ContentParts` property that was missing in the `ChatCompletionMessageListDatum` class.
61+
62+
### Breaking Changes in Preview APIs
63+
64+
- OpenAI.Containers:
65+
- Renamed the `GetContainerFileContent` and `GetContainerFileContentAsync` methods of `ContainerClient` to `DownloadContainerFile` and `DownloadContainerFileAsync`.
1766
- OpenAI.Responses:
18-
- Added the `Minimal` property to `ResponseReasoningEffortLevel` _(A community contribution, courtesy of [kurnakovv](https://github.com/kurnakovv))_
19-
- Added the `Model` property to `OpenAIResponseClient` _(A community contribution, courtesy of [BenjaminDavidPinter](https://github.com/BenjaminDavidPinter))_
67+
- Removed the duplicated `GetInputItems` and `GetInputItemsAsync` methods of the `OpenAIResponseClient` in favor of the existing `GetResponseInputItems` and `GetResponseInputItemsAsync` methods.
2068

2169
## 2.5.0 (2025-09-23)
2270

71+
### Acknowledgments
72+
73+
Thank you to our developer community members who helped to make the OpenAI client library better with their contributions to this release:
74+
75+
- Benjamin Pinter _([GitHub](https://github.com/BenjaminDavidPinter))_
76+
2377
### Features Added
2478

2579
- OpenAI.Responses:
26-
- Added the `Model` property to `OpenAIResponseClient`.
80+
- Added the `Model` property to `OpenAIResponseClient`. _(A community contribution, courtesy of [BenjaminDavidPinter](https://github.com/BenjaminDavidPinter))_
2781
- Added the `ServiceDescription` property to `McpTool`.
2882
- Enabled support for connectors, which are OpenAI-maintained MCP wrappers for popular services like Microsoft Outlook or Dropbox.
2983
- Added the `ConnectorId` property to `McpTool`.

scripts/Test-ApiCompatibility.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,5 +177,5 @@ $experimentalNamespaces = @(
177177
Invoke-APICompat -ProjectPath $projectPath `
178178
-ReleasePath $releasePath `
179179
-PackageName "OpenAI" `
180-
-BaselineVersion "2.4.0" `
180+
-BaselineVersion "2.5.0" `
181181
-IgnoredNamespaces $experimentalNamespaces

src/OpenAI.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<PackageLicenseExpression>MIT</PackageLicenseExpression>
99
<Copyright>Copyright (c) 2024 OpenAI (https://openai.com)</Copyright>
1010

11-
<VersionPrefix>2.5.0</VersionPrefix>
11+
<VersionPrefix>2.6.0</VersionPrefix>
1212
<VersionSuffix></VersionSuffix>
1313

1414
<TargetFrameworks>net8.0;netstandard2.0</TargetFrameworks>

tests/SessionRecords/BatchTests/CanRehydrateBatchOperation(False).json

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -6,53 +6,53 @@
66
"RequestHeaders": {
77
"Accept": "application/json",
88
"Authorization": "Sanitized",
9-
"Content-Length": "659",
10-
"Content-Type": "multipart/form-data; boundary=\"gAmiSrhc65BG6KcHEhVjbuV5zTonsC__zDrx1FxRAon9ZjTn4yhejLcEfpMIIFirptWP9z\"",
11-
"User-Agent": "OpenAI/2.5.0 (.NET 9.0.10; Darwin 25.0.0 Darwin Kernel Version 25.0.0: Wed Sep 17 21:42:08 PDT 2025; root:xnu-12377.1.9~141/RELEASE_ARM64_T8132)"
9+
"Content-Length": "660",
10+
"Content-Type": "multipart/form-data; boundary=\"VdHogfBtMIGdWFtSYwyAATn6gopNHVpn76W4smhRQcLIvOtEbXj1BVwvVvnQA6iX1JCx8o\"",
11+
"User-Agent": "OpenAI/2.6.0 (.NET 9.0.10; Microsoft Windows 10.0.26200)"
1212
},
1313
"RequestBody": [
14-
"--gAmiSrhc65BG6KcHEhVjbuV5zTonsC__zDrx1FxRAon9ZjTn4yhejLcEfpMIIFirptWP9z\r\n",
14+
"--VdHogfBtMIGdWFtSYwyAATn6gopNHVpn76W4smhRQcLIvOtEbXj1BVwvVvnQA6iX1JCx8o\r\n",
1515
"Content-Disposition: form-data; name=file; filename=test-batch-file; filename*=utf-8''test-batch-file\r\n",
1616
"\r\n",
17-
"b64:eyJjdXN0b21faWQiOiAicmVxdWVzdC0xIiwgIm1ldGhvZCI6ICJQT1NUIiwgInVybCI6ICIvdjEvY2hhdC9jb21wbGV0aW9ucyIsICJib2R5IjogeyJtb2RlbCI6ICJncHQtNG8tbWluaSIsICJtZXNzYWdlcyI6IFt7InJvbGUiOiAic3lzdGVtIiwgImNvbnRlbnQiOiAiWW91IGFyZSBhIGhlbHBmdWwgYXNzaXN0YW50LiJ9LCB7InJvbGUiOiAidXNlciIsICJjb250ZW50IjogIldoYXQgaXMgMisyPyJ9XX19Cg==",
17+
"b64:eyJjdXN0b21faWQiOiAicmVxdWVzdC0xIiwgIm1ldGhvZCI6ICJQT1NUIiwgInVybCI6ICIvdjEvY2hhdC9jb21wbGV0aW9ucyIsICJib2R5IjogeyJtb2RlbCI6ICJncHQtNG8tbWluaSIsICJtZXNzYWdlcyI6IFt7InJvbGUiOiAic3lzdGVtIiwgImNvbnRlbnQiOiAiWW91IGFyZSBhIGhlbHBmdWwgYXNzaXN0YW50LiJ9LCB7InJvbGUiOiAidXNlciIsICJjb250ZW50IjogIldoYXQgaXMgMisyPyJ9XX19DQo=",
1818
"\r\n",
19-
"--gAmiSrhc65BG6KcHEhVjbuV5zTonsC__zDrx1FxRAon9ZjTn4yhejLcEfpMIIFirptWP9z\r\n",
19+
"--VdHogfBtMIGdWFtSYwyAATn6gopNHVpn76W4smhRQcLIvOtEbXj1BVwvVvnQA6iX1JCx8o\r\n",
2020
"Content-Type: text/plain; charset=utf-8\r\n",
2121
"Content-Disposition: form-data; name=purpose\r\n",
2222
"\r\n",
2323
"batch",
2424
"\r\n",
25-
"--gAmiSrhc65BG6KcHEhVjbuV5zTonsC__zDrx1FxRAon9ZjTn4yhejLcEfpMIIFirptWP9z--\r\n"
25+
"--VdHogfBtMIGdWFtSYwyAATn6gopNHVpn76W4smhRQcLIvOtEbXj1BVwvVvnQA6iX1JCx8o--\r\n"
2626
],
2727
"StatusCode": 200,
2828
"ResponseHeaders": {
2929
"Access-Control-Allow-Origin": "*",
3030
"Alt-Svc": "h3=\":443\"",
3131
"cf-cache-status": "DYNAMIC",
32-
"CF-RAY": "995487ac9c896bdd-DFW",
32+
"CF-RAY": "99717bb70a310933-SEA",
3333
"Connection": "keep-alive",
3434
"Content-Length": "240",
3535
"Content-Type": "application/json",
36-
"Date": "Mon, 27 Oct 2025 19:16:49 GMT",
36+
"Date": "Fri, 31 Oct 2025 07:36:46 GMT",
3737
"openai-organization": "Sanitized",
38-
"openai-processing-ms": "315",
38+
"openai-processing-ms": "359",
3939
"openai-project": "Sanitized",
4040
"openai-version": "2020-10-01",
4141
"Server": "cloudflare",
4242
"Strict-Transport-Security": "max-age=31536000; includeSubDomains; preload",
4343
"X-Content-Type-Options": "nosniff",
44-
"x-envoy-upstream-service-time": "327",
44+
"x-envoy-upstream-service-time": "373",
4545
"x-openai-proxy-wasm": "v0.1",
4646
"X-Request-ID": "Sanitized"
4747
},
4848
"ResponseBody": {
4949
"object": "file",
50-
"id": "file-NUKUTbm5g2HzBc6eztYyHh",
50+
"id": "file-VexCdh2zzKqH8ZcpoqRXPD",
5151
"purpose": "batch",
5252
"filename": "test-batch-file",
53-
"bytes": 232,
54-
"created_at": 1761592608,
55-
"expires_at": 1764184608,
53+
"bytes": 233,
54+
"created_at": 1761896206,
55+
"expires_at": 1764488206,
5656
"status": "processed",
5757
"status_details": null
5858
}
@@ -65,10 +65,10 @@
6565
"Authorization": "Sanitized",
6666
"Content-Length": "160",
6767
"Content-Type": "application/json",
68-
"User-Agent": "OpenAI/2.5.0 (.NET 9.0.10; Darwin 25.0.0 Darwin Kernel Version 25.0.0: Wed Sep 17 21:42:08 PDT 2025; root:xnu-12377.1.9~141/RELEASE_ARM64_T8132)"
68+
"User-Agent": "OpenAI/2.6.0 (.NET 9.0.10; Microsoft Windows 10.0.26200)"
6969
},
7070
"RequestBody": {
71-
"input_file_id": "file-NUKUTbm5g2HzBc6eztYyHh",
71+
"input_file_id": "file-VexCdh2zzKqH8ZcpoqRXPD",
7272
"endpoint": "/v1/chat/completions",
7373
"completion_window": "24h",
7474
"metadata": {
@@ -79,36 +79,36 @@
7979
"ResponseHeaders": {
8080
"Alt-Svc": "h3=\":443\"",
8181
"cf-cache-status": "DYNAMIC",
82-
"CF-RAY": "995487af1f376bdd-DFW",
82+
"CF-RAY": "99717bbabc620933-SEA",
8383
"Connection": "keep-alive",
8484
"Content-Length": "886",
8585
"Content-Type": "application/json",
86-
"Date": "Mon, 27 Oct 2025 19:16:49 GMT",
86+
"Date": "Fri, 31 Oct 2025 07:36:47 GMT",
8787
"openai-organization": "Sanitized",
88-
"openai-processing-ms": "218",
88+
"openai-processing-ms": "592",
8989
"openai-project": "Sanitized",
9090
"openai-version": "2020-10-01",
9191
"Server": "cloudflare",
9292
"Strict-Transport-Security": "max-age=31536000; includeSubDomains; preload",
9393
"X-Content-Type-Options": "nosniff",
94-
"x-envoy-upstream-service-time": "222",
94+
"x-envoy-upstream-service-time": "595",
9595
"x-openai-proxy-wasm": "v0.1",
9696
"X-Request-ID": "Sanitized"
9797
},
9898
"ResponseBody": {
99-
"id": "batch_68ffc52151448190afaff0bd92164896",
99+
"id": "batch_6904670e9638819082caf7bd85838f00",
100100
"object": "batch",
101101
"endpoint": "/v1/chat/completions",
102102
"model": null,
103103
"errors": null,
104-
"input_file_id": "file-NUKUTbm5g2HzBc6eztYyHh",
104+
"input_file_id": "file-VexCdh2zzKqH8ZcpoqRXPD",
105105
"completion_window": "24h",
106106
"status": "validating",
107107
"output_file_id": null,
108108
"error_file_id": null,
109-
"created_at": 1761592609,
109+
"created_at": 1761896206,
110110
"in_progress_at": null,
111-
"expires_at": 1761679009,
111+
"expires_at": 1761982606,
112112
"finalizing_at": null,
113113
"completed_at": null,
114114
"failed_at": null,
@@ -137,48 +137,48 @@
137137
}
138138
},
139139
{
140-
"RequestUri": "https://api.openai.com/v1/batches/batch_68ffc52151448190afaff0bd92164896",
140+
"RequestUri": "https://api.openai.com/v1/batches/batch_6904670e9638819082caf7bd85838f00",
141141
"RequestMethod": "GET",
142142
"RequestHeaders": {
143143
"Accept": "application/json",
144144
"Authorization": "Sanitized",
145-
"User-Agent": "OpenAI/2.5.0 (.NET 9.0.10; Darwin 25.0.0 Darwin Kernel Version 25.0.0: Wed Sep 17 21:42:08 PDT 2025; root:xnu-12377.1.9~141/RELEASE_ARM64_T8132)"
145+
"User-Agent": "OpenAI/2.6.0 (.NET 9.0.10; Microsoft Windows 10.0.26200)"
146146
},
147147
"RequestBody": null,
148148
"StatusCode": 200,
149149
"ResponseHeaders": {
150150
"Alt-Svc": "h3=\":443\"",
151151
"cf-cache-status": "DYNAMIC",
152-
"CF-RAY": "995487b1999e6bdd-DFW",
152+
"CF-RAY": "99717bbf3f340933-SEA",
153153
"Connection": "keep-alive",
154154
"Content-Length": "886",
155155
"Content-Type": "application/json",
156-
"Date": "Mon, 27 Oct 2025 19:16:49 GMT",
156+
"Date": "Fri, 31 Oct 2025 07:36:47 GMT",
157157
"openai-organization": "Sanitized",
158-
"openai-processing-ms": "28",
158+
"openai-processing-ms": "82",
159159
"openai-project": "Sanitized",
160160
"openai-version": "2020-10-01",
161161
"Server": "cloudflare",
162162
"Strict-Transport-Security": "max-age=31536000; includeSubDomains; preload",
163163
"X-Content-Type-Options": "nosniff",
164-
"x-envoy-upstream-service-time": "31",
164+
"x-envoy-upstream-service-time": "91",
165165
"x-openai-proxy-wasm": "v0.1",
166166
"X-Request-ID": "Sanitized"
167167
},
168168
"ResponseBody": {
169-
"id": "batch_68ffc52151448190afaff0bd92164896",
169+
"id": "batch_6904670e9638819082caf7bd85838f00",
170170
"object": "batch",
171171
"endpoint": "/v1/chat/completions",
172172
"model": null,
173173
"errors": null,
174-
"input_file_id": "file-NUKUTbm5g2HzBc6eztYyHh",
174+
"input_file_id": "file-VexCdh2zzKqH8ZcpoqRXPD",
175175
"completion_window": "24h",
176176
"status": "validating",
177177
"output_file_id": null,
178178
"error_file_id": null,
179-
"created_at": 1761592609,
179+
"created_at": 1761896206,
180180
"in_progress_at": null,
181-
"expires_at": 1761679009,
181+
"expires_at": 1761982606,
182182
"finalizing_at": null,
183183
"completed_at": null,
184184
"failed_at": null,

0 commit comments

Comments
 (0)