Skip to content

Commit ee0f272

Browse files
authored
Prepare 2.11.0 release (#1201)
1 parent 4c81c32 commit ee0f272

26 files changed

Lines changed: 587 additions & 1266 deletions

CHANGELOG.md

Lines changed: 87 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,96 @@
11
# Release History
22

3-
## (Unreleased)
3+
## 2.11.0 (2026-06-05)
4+
5+
### Acknowledgments
6+
7+
Thank you to our developer community members who helped to make the OpenAI client library better with their contributions to this release:
8+
9+
- [@Rohan5commit](https://github.com/Rohan5commit)
10+
- [@kiwigitops](https://github.com/kiwigitops)
11+
- [@yucheng-fu](https://github.com/yucheng-fu)
12+
- [@arpitjain099](https://github.com/arpitjain099)
13+
- [@adityasingh2400](https://github.com/adityasingh2400)
14+
15+
### Features Added
16+
17+
- OpenAI.Chat:
18+
- Added support for specifying high-level guidance regarding the context window size to use during a web search.
19+
- Added the `ChatWebSearchContextSize` extensible enum.
20+
- Added the `SearchContextSize` property to `ChatWebSearchOptions`.
21+
- OpenAI.Skills:
22+
- Added support for managing reusable, versioned agent skills.
23+
- Introduced the new `SkillClient` with the following methods:
24+
- `UploadSkill` and `UploadSkillAsync`
25+
- `UpdateSkill` and `UpdateSkillAsync`
26+
- `GetSkill` and `GetSkillAsync`
27+
- `GetSkills` and `GetSkillsAsync`
28+
- `DownloadSkill` and `DownloadSkillAsync`
29+
- `DeleteSkill` and `DeleteSkillAsync`
30+
- `UploadSkillVersion` and `UploadSkillVersionAsync`
31+
- `GetSkillVersion` and `GetSkillVersionAsync`
32+
- `GetSkillVersions` and `GetSkillVersionsAsync`
33+
- `DownloadSkillVersion` and `DownloadSkillVersionAsync`
34+
- `DeleteSkillVersion` and `DeleteSkillVersionAsync`
35+
- OpenAI.Responses:
36+
- Added support for retrieving the log probabilities of output tokens.
37+
- Added the `ResponseTokenLogProbabilityDetails` type.
38+
- Added the `ResponseTokenTopLogProbabilityDetails` type.
39+
- Added the `OutputTextTokenLogProbabilities` property to `ResponseContentPart`.
40+
- Added the `TokenLogProbabilities` property to `StreamingResponseOutputTextDeltaUpdate`.
41+
- Added the `TokenLogProbabilities` property to `StreamingResponseOutputTextDoneUpdate`.
42+
- Added support for retrieving the function name in applicable function call argument streaming events.
43+
- Added `FunctionName` property to `StreamingResponseFunctionCallArgumentsDoneUpdate`.
44+
- Added extensibility to the `ResponseItem` class hierarchy.
45+
- Added the `ResponseItemKind` extensible enum.
46+
- Added the `Kind` property to `ResponseItem`.
47+
- Added a protected constructor to `ResponseItem` that takes a `ResponseItemKind` parameter.
48+
- Added extensibility to the `ResponseTool` class hierarchy.
49+
- Added the `ResponseToolKind` extensible Enum.
50+
- Added the `Kind` property to `ResponseTool`.
51+
- Added a protected constructor to `ResponseTool` that takes a `ResponseToolKind` parameter.
52+
- Added extensibility to the `StreamingResponseUpdate` class hierarchy.
53+
- Added the `StreamingResponseUpdateKind` extensible enum.
54+
- Added the `Kind` property to `StreamingResponseUpdate`.
55+
- Added a protected constructor to `StreamingResponseUpdate` that takes a `StreamingResponseUpdateKind` parameter.
456

557
### Bugs Fixed
658

759
- OpenAI.Assistants:
8-
- Fixed a `NullReferenceException` when an Assistants streaming response delivered an unmodeled `error` event. The SSE `error` frame is now surfaced as a `ClientResultException` so the failure is observable, while the unknown-event path stays covered.
60+
- Fixed a `NullReferenceException` when a streaming response delivered an unmodeled `error` event. The SSE `error` frame is now surfaced as a `ClientResultException` so the failure is observable, while the unknown-event path stays covered.
61+
- OpenAI.Files:
62+
- Fixed an issue where the `UploadFile` and `UploadFileAsync` method overloads in `OpenAIFileClient` that take a `filePath` were incorrectly using the entire path as the filename.
63+
- OpenAI.Realtime:
64+
- Fixed an issue where the `AudioEndTime` property of `RealtimeClientCommandConversationItemTruncate` was incorrectly serialized as a float instead of an integer.
65+
66+
### Breaking Changes in Experimental APIs
67+
68+
- OpenAI.Audio:
69+
- Changed the type of the `KnownSpeakerReferenceUris` property of `AudioTranscriptionOptions` from `IList<Uri>` to `IList<string>`.
70+
- OpenAI.Containers:
71+
- Renamed the `CreateContainerFile` and `CreateContainerFileAsync` methods of `ContainerClient` to `UploadContainerFile` and `UploadContainerFileAsync`.
72+
- Changed the type of the `Order` property of `ContainerFileCollectionOptions` from `ContainerCollectionOrder?` to `ContainerFileCollectionOrder?`.
73+
- OpenAI.Realtime:
74+
- Changed the type of the `Options` property of `RealtimeClientSettings` from `OpenAIClientOptions` to `RealtimeClientOptions`.
75+
- OpenAI.Responses:
76+
- Moved the `AddResponsesClient` and `AddKeyedResponsesClient` `IHostApplicationBuilder` extension methods under the `OpenAI.Responses` namespace.
77+
- Removed the `action` and `background` parameters from the constructor of `ImageGenerationCallResponseItem`.
78+
- Removed the `ImageGenToolCallBackground` type in favor of `ImageGenerationToolBackground`.
79+
- Removed the `ImageGenToolCallOutputFormat` type in favor of `ImageGenerationToolOutputFileFormat`.
80+
- Removed the `ImageGenToolCallQuality` type in favor of `ImageGenerationToolQuality`.
81+
- Removed the `ImageGenToolCallSize` type in favor of `ImageGenerationToolSize`.
82+
- Changed the type of the `Action` property of `ImageGenerationCallResponseItem` from `ImageGenerationToolAction` to `ImageGenerationToolAction?`.
83+
- Changed the type of the `Background` property of `ImageGenerationCallResponseItem` from `ImageGenToolCallBackground` to `ImageGenerationToolBackground?`.
84+
- Changed the type of the `OutputFormat` property of `ImageGenerationCallResponseItem` from `ImageGenToolCallOutputFormat` to `ImageGenerationToolOutputFileFormat?`.
85+
- Changed the type of the `Quality` property of `ImageGenerationCallResponseItem` from `ImageGenToolCallQuality` to `ImageGenerationToolQuality?`.
86+
- Changed the type of the `Size` property of `ImageGenerationCallResponseItem` from `ImageGenToolCallSize` to `ImageGenerationToolSize?`.
87+
- Renamed the `OutputFormat` property of `ImageGenerationCallResponseItem` to `OutputFileFormat`.
88+
- Changed the type of the `Options` property of `ResponsesClientSettings` from `OpenAIClientOptions` to `ResponsesClientOptions`.
89+
- Changed the type of the `options` parameters in the constructors of `ResponsesClient` from `OpenAIClientOptions` to `ResponsesClientOptions`.
90+
- Reordered the parameters of the following methods of the `ResponsesClient` for consistency:
91+
- `CompactResponse` and `CompactResponseAsync`
92+
- `GetInputTokenCount` and `GetInputTokenCountAsync`
93+
- Renamed `StreamingResponseTextAnnotationAddedUpdate` to `StreamingResponseOutputTextAnnotationAddedUpdate`.
994

1095
## 2.10.0 (2026-04-03)
1196

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747

4848
<!-- Versioning -->
4949
<PropertyGroup>
50-
<VersionPrefix>2.10.0</VersionPrefix>
50+
<VersionPrefix>2.11.0</VersionPrefix>
5151
<VersionSuffix></VersionSuffix>
5252
<InformationalVersion>$(Version)</InformationalVersion>
5353
</PropertyGroup>

OpenAI.Responses/src/Custom/Items/ImageGenerationTool/ImageGenerationCallResponseItem.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,8 @@ public partial class ImageGenerationCallResponseItem
1111
// - Added setter because this is an optional property in an input/output type.
1212
[CodeGenMember("Status")]
1313
public ImageGenerationCallStatus? Status { get; set; }
14+
15+
// CUSTOM: Renamed.
16+
[CodeGenMember("OutputFormat")]
17+
public ImageGenerationToolOutputFileFormat? OutputFileFormat { get; set; }
1418
}

OpenAI.Responses/src/Custom/ResponseContentPart.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public string Text
4141
public IReadOnlyList<ResponseMessageAnnotation> OutputTextAnnotations => (this as InternalItemContentOutputText)?.Annotations?.ToList()?.AsReadOnly();
4242

4343
// CUSTOM: Exposed output log probs.
44-
public IReadOnlyList<ResponseTokenLogProbabilityDetails> OutputLogProbs => (this as InternalItemContentOutputText)?.Logprobs?.ToList()?.AsReadOnly();
44+
public IReadOnlyList<ResponseTokenLogProbabilityDetails> OutputTextTokenLogProbabilities => (this as InternalItemContentOutputText)?.Logprobs?.ToList()?.AsReadOnly();
4545

4646
// CUSTOM: Exposed refusal properties.
4747
public string Refusal => (this as InternalItemContentRefusal)?.InternalRefusal;

OpenAI.Responses/src/Custom/Tools/ResponseTool.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ namespace OpenAI.Responses;
99
// CUSTOM: Renamed.
1010
[CodeGenType("Tool")]
1111
[CodeGenVisibility(nameof(ResponseTool), CodeGenVisibility.ProtectedInternal, typeof(ResponseToolKind))]
12+
[CodeGenVisibility(nameof(Kind), CodeGenVisibility.Public)]
1213
public partial class ResponseTool
1314
{
1415
// CUSTOM: Added factory method as a convenience.

OpenAI.Responses/src/Generated/Models/ImageGenerationCallResponseItem.Serialization.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,10 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri
9090
writer.WritePropertyName("background"u8);
9191
writer.WriteStringValue(Background.Value.ToString());
9292
}
93-
if (Optional.IsDefined(OutputFormat) && !Patch.Contains("$.output_format"u8))
93+
if (Optional.IsDefined(OutputFileFormat) && !Patch.Contains("$.output_format"u8))
9494
{
9595
writer.WritePropertyName("output_format"u8);
96-
writer.WriteStringValue(OutputFormat.Value.ToString());
96+
writer.WriteStringValue(OutputFileFormat.Value.ToString());
9797
}
9898
if (Optional.IsDefined(Quality) && !Patch.Contains("$.quality"u8))
9999
{
@@ -151,7 +151,7 @@ internal static ImageGenerationCallResponseItem DeserializeImageGenerationCallRe
151151
ImageGenerationCallStatus? status = default;
152152
ImageGenerationToolAction? action = default;
153153
ImageGenerationToolBackground? background = default;
154-
ImageGenerationToolOutputFileFormat? outputFormat = default;
154+
ImageGenerationToolOutputFileFormat? outputFileFormat = default;
155155
ImageGenerationToolQuality? quality = default;
156156
ImageGenerationToolSize? size = default;
157157
string revisedPrompt = default;
@@ -195,10 +195,10 @@ internal static ImageGenerationCallResponseItem DeserializeImageGenerationCallRe
195195
{
196196
if (prop.Value.ValueKind == JsonValueKind.Null)
197197
{
198-
outputFormat = null;
198+
outputFileFormat = null;
199199
continue;
200200
}
201-
outputFormat = new ImageGenerationToolOutputFileFormat(prop.Value.GetString());
201+
outputFileFormat = new ImageGenerationToolOutputFileFormat(prop.Value.GetString());
202202
continue;
203203
}
204204
if (prop.NameEquals("quality"u8))
@@ -245,7 +245,7 @@ internal static ImageGenerationCallResponseItem DeserializeImageGenerationCallRe
245245
status,
246246
action,
247247
background,
248-
outputFormat,
248+
outputFileFormat,
249249
quality,
250250
size,
251251
revisedPrompt,

OpenAI.Responses/src/Generated/Models/ImageGenerationCallResponseItem.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ public ImageGenerationCallResponseItem(BinaryData imageResultBytes) : base(Respo
1717
}
1818

1919
#pragma warning disable SCME0001 // Type is for evaluation purposes only and is subject to change or removal in future updates.
20-
internal ImageGenerationCallResponseItem(ResponseItemKind kind, string id, in JsonPatch patch, ImageGenerationCallStatus? status, ImageGenerationToolAction? action, ImageGenerationToolBackground? background, ImageGenerationToolOutputFileFormat? outputFormat, ImageGenerationToolQuality? quality, ImageGenerationToolSize? size, string revisedPrompt, BinaryData imageResultBytes) : base(kind, id, patch)
20+
internal ImageGenerationCallResponseItem(ResponseItemKind kind, string id, in JsonPatch patch, ImageGenerationCallStatus? status, ImageGenerationToolAction? action, ImageGenerationToolBackground? background, ImageGenerationToolOutputFileFormat? outputFileFormat, ImageGenerationToolQuality? quality, ImageGenerationToolSize? size, string revisedPrompt, BinaryData imageResultBytes) : base(kind, id, patch)
2121
{
2222
Status = status;
2323
Action = action;
2424
Background = background;
25-
OutputFormat = outputFormat;
25+
OutputFileFormat = outputFileFormat;
2626
Quality = quality;
2727
Size = size;
2828
RevisedPrompt = revisedPrompt;
@@ -34,8 +34,6 @@ internal ImageGenerationCallResponseItem(ResponseItemKind kind, string id, in Js
3434

3535
public ImageGenerationToolBackground? Background { get; set; }
3636

37-
public ImageGenerationToolOutputFileFormat? OutputFormat { get; set; }
38-
3937
public ImageGenerationToolQuality? Quality { get; set; }
4038

4139
public ImageGenerationToolSize? Size { get; set; }

OpenAI.Responses/src/Generated/Models/ResponseTool.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,6 @@ internal ResponseTool(ResponseToolKind kind, in JsonPatch patch)
3333
[Experimental("SCME0001")]
3434
public ref JsonPatch Patch => ref _patch;
3535

36-
internal ResponseToolKind Kind { get; set; }
36+
public ResponseToolKind Kind { get; }
3737
}
3838
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
using Microsoft.TypeSpec.Generator.Customizations;
2+
3+
namespace OpenAI.Chat;
4+
5+
[CodeGenType("SearchContextSize")]
6+
public readonly partial struct ChatWebSearchContextSize
7+
{
8+
}

OpenAI/src/Custom/Chat/SearchContextSize.cs

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)