Repository navigation
Update dependency MacPaw/OpenAI to from: "0.5.3" - #20
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/macpaw-openai-0.x
branch
from
April 1, 2026 17:36
a9ac1d5 to
2237aeb
Compare
renovate
Bot
force-pushed
the
renovate/macpaw-openai-0.x
branch
from
April 30, 2026 12:01
2237aeb to
497c24a
Compare
renovate
Bot
force-pushed
the
renovate/macpaw-openai-0.x
branch
from
June 5, 2026 10:09
497c24a to
3c1b5f4
Compare
renovate
Bot
force-pushed
the
renovate/macpaw-openai-0.x
branch
from
July 21, 2026 16:14
3c1b5f4 to
bfa3329
Compare
renovate
Bot
force-pushed
the
renovate/macpaw-openai-0.x
branch
from
October 7, 2026 09:04
bfa3329 to
5b391fe
Compare
renovate
Bot
force-pushed
the
renovate/macpaw-openai-0.x
branch
from
October 11, 2026 09:35
5b391fe to
7a73729
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
from: "0.4.7"→from: "0.5.3"Release Notes
MacPaw/OpenAI (MacPaw/OpenAI)
v0.5.3Compare Source
Added
Model.gpt_audio_1_5,Model.gpt_audioandModel.gpt_audio_mini, the audio-in, audio-out models for Chat Completions, also returned byModel.allModels(satisfying:). The README gained an Audio input and output with Chat Completions section coveringmodalities,audioOptions, audio input parts and streaming (#397).Changed
Model.gpt_4o_audio_previewis deprecated, since OpenAI shut the model down on May 7th, 2026; useModel.gpt_audio_1_5. It is no longer returned byModel.allModels(satisfying:)(#397).Fixed
Demo:ResponsesStore.replyFunctionCallincluded the completed.functionToolCallin the next request along with its.functionCallOutputItemParamwhileprevious_response_idwas already set, so the Responses API rejected the follow-up withDuplicate item found with id fc_.... The follow-up now sends only the function-call output, and the pending call stays available if that request fails (#457).v0.5.2Compare Source
Added
ModelSpec, describing a model's capabilities as its OpenAI docs page lists them: endpoints, features, Responses API tools, supported reasoning efforts, and limitations the docs note, such as Chat Completions function calling being unsupported or requiringreasoning_effort: none(ModelSpec.Endpoint,.Feature,.Tool,.ReasoningEffortand.Limitation).ModelSpec.allcurrently covers the GPT-6 models;Model.allModels(satisfying:)filters them by their spec.Model.Filter.Endpoint,.Featureand.Toolare now typealiases for theModelSpectypes.ModelSpec.ReasoningEffortconverts toComponents.Schemas.ReasoningEffortandChatQuery.ReasoningEffort(xhighandmaxbecome.customValue, asChatQuery.ReasoningEfforthas no cases for them).Model.gpt6_astra,Model.gpt6_solandModel.gpt6_luna, also returned byModel.allModels(satisfying:)for the Chat Completions and Responses endpoints and the MCP tool.Model.Filter.Tool.mcpandModel.Filter.requiredTools, soModel.allModels(satisfying:)can narrow results to models that support remote MCP servers in the Responses API.ResponseStreamEvent.shellCall, covering the new shell-call streaming events (response.shell_call_command.added/delta/done,response.shell_call_output_content.delta/done) added by the latest OpenAPI spec.Tool.programmaticToolCallingTool, the tool case paired with theOutputItem.program/.programOutputresponse items; without it, decoding a response whosetoolsarray contains aprogrammatic_tool_callingtool would throw.ResponseStreamEvent.customToolCallInput, covering the previously unhandledresponse.custom_tool_call_input.delta/donestreaming events; without it, a custom-tool streaming response would fail the whole stream with anunknownEventTypeerror.InputItem.compactionTriggerItemParam,.programItemParam, and.programOutputItemParam, the item cases added by the latest OpenAPI spec; without them, decoding an input item withtype: "compaction_trigger","program", or"program_output"would throwunknownOneOfDiscriminator.ResponsesEndpoint.retrieveResponse(query:)andcancelResponse(id:), in callback, async and Combine variants, forGET /responses/{response_id}andPOST /responses/{response_id}/cancel.RetrieveModelResponseQuery.includeis sent asinclude[]query parameters. Cancelling takes just the response ID, matching the official Python SDK'sclient.responses.cancel(response_id), and only applies to responses created withbackground: true.CreateModelResponseQuery.contextManagement, encoded ascontext_management, for configuring server-side context compaction..github/api-breakage-allowlist.txtwith a matching changelog entry.Components.Schemastypes are treated.Changed
ResponsesEndpointProtocol,ResponsesEndpointAsyncandResponsesEndpointCombinegainedretrieveResponseandcancelResponserequirements. Code that only callsopenAI.responsesis unaffected, but custom conformances (e.g. test doubles) need to implement them.GetModelResponseQuerywas renamed toRetrieveModelResponseQueryto matchretrieveResponse(query:). It had no public initializer before, so it couldn't be constructed outside the package.CreateModelResponseQuery.initgained acontextManagementparameter (defaulting tonil). Existing call sites compile unchanged; only code referring to the initializer by its full name, such asCreateModelResponseQuery.init(input:model:...)used as a function value, needs updating.Components.Schemasfrom the latest OpenAPI spec. Most of the reported breaks are mechanical (new cases added to generated enums, and generated memberwise initializers gaining parameters for new optional fields) and are allowlisted in.github/api-breakage-allowlist.txtwithout individual call-outs, matching how the0.5.1regeneration was documented. The changes worth knowing about if you read or construct these types directly:ResponseObject.instructionschanged fromString?toResponseObject.Instructions?, lettinginstructionsbe either a plain string or a list of input items.Instructionsis a generated two-case enum (.case1(String)for the string form,.case2([InputItem])for the list form); code that readinstructionsas aStringneeds to switch over it instead. This mirrors how the official Python SDK models the same field (Union[str, List[ResponseInputItem], None]) rather than adding a second property under a new name.Components.Schemas.ServiceTierwas renamed toServiceTierResponses.Components.Schemas.Conversation2was removed;Response.conversationandResponseProperties-derived types now useResponseConversationinstead.MCPToolCall.errorchanged fromString?toMCPToolCallError?.ResponseOutputTextAnnotationAddedEvent.annotationchanged fromOpenAPIObjectContainertoAnnotation?, matching the stricterAnnotationschema.FunctionToolCallOutput.callIdandFunctionCallOutputItemParam.callIdchanged fromStringtoString?.ResponseStreamEvent.reasoningwas renamed to.reasoningText, with its payload changing fromReasoningEventtoReasoningTextEvent.ResponseObject.toolChoicechanged fromSchemas.ToolChoiceParam?toSchemas.ToolChoiceParam. The generatedResponseProperties.toolChoiceis optional only because that schema is shared with request bodies, wheretool_choicemay be omitted; an actualResponsealways includes it, which we verified against the API docs and the official Python SDK (Response.tool_choice: ToolChoice, non-optional). This corrects a facade type that didn't match the real response shape, but is still a source-breaking type change for callers who readtoolChoiceas optional.OutputItem.webSearchToolCall's payload changed fromComponents.Schemas.WebSearchToolCallto a new hand-writtenWebSearchToolCalltype whoseactionis optional. The spec marksactionrequired, but the live API can emit aweb_search_calloutput item without one (e.g. aresponse.output_item.addedevent whilestatusis stillin_progress), and decoding threw akeyNotFounderror foractionwhenever that happened. This is an acknowledged upstream spec bug (openai/openai-openapi#572), not something specific to any one status. Callers that read.webSearchToolCall(let call)need to unwrapcall.actioninstead of accessing it directly.Fixed
Demo: a non-streaming Responses request to a reasoning model (e.g.gpt-5) always includes a.reasoningoutput item, andResponsesStore.createResponse(query:)didn't handle it (or the MCP output item cases), so it threwunhandledOutputIteminstead of completing.Components.Schemas.InputItemand theInputItemfacade failed to decode a valid{ "type": "item_reference", "id": "..." }payload withunknownOneOfDiscriminator. The generator only matched discriminator values declared as a plain string enum, butItemReferenceParam.typeis declared as a nullableanyOf: [<string enum>, {type: null}], which it didn't unwrap; theInputItemfacade also fixed the same bug independently, plus a stale"ItemReference"discriminator string (missing theParamsuffix) and a missing"message"match forEasyInputMessage.ResponseStreamEventandOutputItemdidn't round-trip throughJSONEncoder/JSONDecoder: both have a hand-writteninit(from:)that decodes the API'stypediscriminator, but noencode(to:), so the compiler-synthesized one wrapped values by enum case name instead of matching the API's shape; the hand-writtenResponseOutputItemAddedEvent/ResponseOutputItemDoneEventalso gained asequenceNumberfield they were missing, since re-encoding through them droppedsequence_number.ResponseStreamEvent.reasoningTextstreaming events never decoded:ModelResponseStreamEventTypelistened forresponse.reasoning.delta/.done, but the API sendsresponse.reasoning_text.delta/.done, so reasoning-text deltas always failed with anunknownEventTypeerror.make download-speccould leave the trackedopenapi.yamltruncated ifcurlwas interrupted mid-transfer; it now downloads to a temp file and moves it into place only on success.ModelResponseEventsStreamInterpreterwhen logging a failed stream event decode in debug builds.Regex, which requires iOS 16.URLSessionAPIs only in Swift 6, so the async client now bridges the completion-handler API on older Linux toolchains.v0.5.1Compare Source
Added
refusalfield on the streaming chat completion delta (#408).reasoningContenton assistant chat messages for providers that return reasoning (#402).annotationsonChatStreamResult(#399).Changed
Components.Schemasfrom the updated OpenAPI spec (#433). This changed public generated types: transcription segment and word timestamps moved fromFloattoDouble,ImageGenTool.SizePayloadlost its fixed cases,responseIdwas removed from the response audio events, andChatResult.Choice.Message.Annotationmoved to a top-levelAnnotationtype. TwoChatCompletionMessageParaminitializers were removed.v0.5.0Compare Source
Added
modelis optional inCreateModelResponseQueryfor the stored-prompt (prompt_id) flow (#419).Changed
Components.Schemasfrom the fresh OpenAPI spec (#423); the release notes flagged possible breaking changes.Fixed
namefield onResponseFunctionCallArgumentsDoneEvent(#420).v0.4.9Compare Source
Added
completion_tokens_detailsonCompletionUsage(#411).prompt_cache_keyonCreateModelResponseQuery(#412).Changed
ChoiceDeltaToolCall.indexis required again (#388).ChatQuerydescription output is easier to read (#394).response_formatversustextfor structured outputs (#413); security policy points to the private reporting channel (#410).Older releases are documented on the GitHub Releases page.
v0.4.8Compare Source
What's Changed
New Contributors
Full Changelog: MacPaw/OpenAI@0.4.7...0.4.8
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.