chore: 🐝 Update SDK - Generate SDK 0.5.1#307
Conversation
1f6a651 to
52902f8
Compare
There was a problem hiding this comment.
Perry's Review
Speakeasy regen bumping the Go SDK 0.5.0 → 0.5.1 (new Benchmarks/Classifications/Images services, workspace-budget + task-classification models), but it ships on a downgraded generator that reintroduces a confirmed union-deserialization panic and deletes the test that catches it.
Verdict: 🔁 Needs changes
Details
Risk: 🔴 High — human approval required
CI: no checks configured on this repo (status pending, 0 check-runs) — not a gate.
Findings (see inline comments):
- 🔴
internal/utils/union.go:132—.Elem()/.IsNil()panic on non-pointer union variants (49 such members: 17any, 32 slices). Empirically reproduced at this head:reflect: call of reflect.Value.Elem on slice Value. Reachable via/responses(InputsUnion→InputsUnion1→InputsMessage.Content) and chat content unions. - 🔴
internal/utils/union_test.go:589— the deletedTestPickBestUnionCandidate_NonPointerUnionVariantswas the only guard for this exact panic; suite is green only because it's gone. - 🟡
.speakeasy/gen.lock:6— root cause: generator downgrade (speakeasyVersion 1.778.0→1.761.1,unions 2.87.7→2.87.6) re-emits the crash-prone scorer. Regenerate from the newer generator. - nit: 326-file regen also removes 216 exported funcs/methods incl.
Datasets.GetBenchmarksArtificialAnalysis/GetBenchmarksDesignArena(replaced by unifiedBenchmarks.GetBenchmarks). Breaking API change under a patch bump — acceptable pre-1.0 per SemVer, but worth a minor bump and a RELEASES note for consumers. - nit: generated quickstart in
README.md:84/USAGE.mdcalls the management-key-onlyGetUserActivitywithOPENROUTER_API_KEY— fails for a normal inference key. Fix via anx-speakeasy-usage-exampleoverride in the spec (recurs on every regen otherwise). [codex]
Codex (gpt-5.5): flagged the datasets.go:235 nil-request pagination deref and limit/offset default drift — verified pre-existing generated code (this PR only adds 2 status-code lines to that file), so out of scope. README/USAGE management-key example folded in above.
Research: confirmed root cause against golang/go#36523 (Elem() panics on slice Values) and reflect.Value.Elem docs (panics unless Interface/Pointer kind). Speakeasy versions its CLI and generator separately (changelog); the downgrade reverts the pointer-safe union scorer that 0.5.0 shipped.
Security: no concerns — no credential/auth/streaming code touched; secret-pattern grep on added lines clean. Only note: the auto-generated README example uses a management endpoint with a regular API key (doc-quality, not exploitable).
Test coverage: regression test for the union panic was removed, not added — the central problem. The build and the internal utils test package both pass, masking the defect.
Blast radius: countFieldsRecursive is on the hot path of every non-discriminated union UnmarshalJSON across the SDK (PickBestUnionCandidate has 20+ callers). Any response/request payload activating a non-pointer union variant crashes the consumer.
Unresolved threads: none (first review of this PR).
Scope: first review (full)
Review: tier=large · model=claude-opus-latest · score=183.6
| if activeVariant != nil { | ||
| countFieldsRecursive(candidate, activeVariant.Type, variantVal, raw) | ||
| if activeVariant != nil && !variantVal.IsNil() { | ||
| countFieldsRecursive(candidate, activeVariant.Type.Elem(), variantVal.Elem(), raw) |
There was a problem hiding this comment.
[blocker] variantVal.IsNil() / .Type.Elem() / variantVal.Elem() panic whenever the active union variant is a non-pointer member — empirically reproduced.
Details
Why: the new comment at line 256 asserts "All union variants are pointers", but that invariant does not hold. 49 generated union:"member" fields in this SDK are non-pointers — 17 any interfaces and 32 slices ([]string, []ChatContentItems, []InputsContent1, …). For those, reflect.Value.Elem() panics on a slice and reflect.Type.Elem() panics on an interface, and reflect.Value.IsNil() is only valid for chan/func/interface/map/pointer/slice (a struct value would also panic).
Reproduced against this exact head in a throwaway test in the real package:
PANIC: reflect: call of reflect.Value.Elem on slice Value (slice variant)
PANIC: reflect: Elem of invalid type interface {} (any variant)
Production trigger: ResponsesRequest.Input *InputsUnion → InputsUnion (scored, non-discriminated) → []InputsUnion1 → candidate *InputsMessage whose Content *InputsContent2 union has the ArrayOfInputsContent1 []… (non-pointer) variant active. When PickBestUnionCandidate scores ≥2 candidates and countFieldsRecursive walks that nested union, it panics — crashing UnmarshalJSON for a normal /responses payload. The same shape recurs across chat content unions, Stop, AllowedToolsUnion, System, etc.
This is the same defect previously flagged on #303; it has been reintroduced here and its regression test (TestPickBestUnionCandidate_NonPointerUnionVariants, line 589) was deleted in the same diff, so the suite is green only because the test that catches it is gone.
Fix: guard the dereference on Kind, only unwrapping pointers (and bailing on nil) before recursing:
if activeVariant != nil && variantVal.Kind() == reflect.Ptr {
if variantVal.IsNil() {
return
}
countFieldsRecursive(candidate, activeVariant.Type.Elem(), variantVal.Elem(), raw)
} else if activeVariant != nil {
// non-pointer member (slice / interface / etc.) — recurse without Elem()
countFieldsRecursive(candidate, activeVariant.Type, variantVal, raw)
}The correct upstream fix is to stop shipping the downgraded unions 2.87.6 generator (see the .speakeasy/gen.lock comment) — but the code as generated here is crash-prone and must not ship.
Ref: golang/go#36523 — Elem() on a slice reflect.Value panics; pkg.go.dev reflect.Value.Elem ("It panics if v's Kind is not Interface or Pointer").
Prompt for agents
In internal/utils/union.go:131-132 (func countFieldsRecursive, the union branch), the code calls variantVal.IsNil(), activeVariant.Type.Elem() and variantVal.Elem() assuming every union member is a pointer. That invariant is false: 49 generated union:"member" fields are non-pointers (any and []T slices). reflect.Value.Elem()/reflect.Type.Elem() panic on slice/interface kinds, crashing UnmarshalJSON for normal /responses and chat payloads (verified: "reflect: call of reflect.Value.Elem on slice Value"). Fix: only deref when variantVal.Kind()==reflect.Ptr (returning early if IsNil), and for non-pointer members recurse with the original activeVariant.Type and variantVal (no Elem()). Also restore the deleted regression test TestPickBestUnionCandidate_NonPointerUnionVariants in internal/utils/union_test.go. The root cause is the downgraded unions generator (2.87.7 -> 2.87.6) in .speakeasy/gen.lock; prefer regenerating with the newer generator that emits the pointer-safe scorer.
Reviewed at 52902f8
| @@ -585,73 +585,3 @@ func TestPickBestUnionCandidate_AnyFieldType(t *testing.T) { | |||
| require.NotNil(t, result) | |||
| assert.IsType(t, B{}, result.Type) | |||
| } | |||
|
|
|||
| func TestPickBestUnionCandidate_NonPointerUnionVariants(t *testing.T) { | |||
There was a problem hiding this comment.
[blocker] Deleting TestPickBestUnionCandidate_NonPointerUnionVariants removes the only regression guard for the union.go panic — the suite now passes because the catching test is gone.
Details
Why: this test exercised exactly the slice/map/any non-pointer union-variant cases that the line-132 change panics on. With it deleted, go test ./internal/utils/ is green even though PickBestUnionCandidate crashes on real payloads. Removing the test that proves a known regression is fixed — in the same diff that reintroduces the regression — is how #303's defect silently returns.
Fix: restore this test (and keep it passing once the line-132 guard is fixed). It should cover at least: slice-typed variant active, map-typed variant active, and any-typed variant active.
Ref: prior review of #303 flagged the identical "generator downgrade reverts the fix and deletes its test" pattern.
Prompt for agents
Restore the deleted test TestPickBestUnionCandidate_NonPointerUnionVariants in internal/utils/union_test.go (it was removed in this PR at original line 589). The test must construct UnionCandidate values whose Value is a struct with non-pointer union:"member" fields (a []string slice variant, a map variant, and an `any` variant) active, call PickBestUnionCandidate, and assert it returns the expected variant without panicking. Keep it green only after fixing the Elem() guard in union.go:131-132.
Reviewed at 52902f8
| generationVersion: 2.904.2 | ||
| releaseVersion: 0.5.0 | ||
| configChecksum: a8cd011d0fa84720f7c3504347addacc | ||
| speakeasyVersion: 1.761.1 |
There was a problem hiding this comment.
[suggestion] Generator downgrade is the root cause — speakeasyVersion 1.778.0→1.761.1, generationVersion 2.904.2→2.879.6, unions 2.87.7→2.87.6 — which re-emits the crash-prone union scorer and drops its test.
Details
Why: this regen went backwards on the generator (and the unions feature specifically, 2.87.7→2.87.6). The older generator produces the countFieldsRecursive union branch that assumes all members are pointers (see the union.go:132 blocker). The newer generator that produced 0.5.0 emitted the pointer-safe scorer and shipped the now-deleted regression test. Shipping 0.5.1 off the downgraded generator reintroduces a confirmed runtime panic.
Fix: regenerate from the newer Speakeasy generator (≥ the 2.904.2 / unions 2.87.7 that produced 0.5.0) rather than 2.879.6, so the union deserializer and its test come back. Pin the generator version in CI to prevent silent downgrades on future regens.
Ref: Speakeasy versions the CLI and the code generator separately — see Speakeasy SDK changelog.
Prompt for agents
The .speakeasy/gen.lock shows a generator downgrade (speakeasyVersion 1.778.0->1.761.1, generationVersion 2.904.2->2.879.6, unions 2.87.7->2.87.6) that reintroduces the union.go Elem() panic and deleted its regression test. Re-run the Speakeasy generation pinned to the newer generator (the one that produced 0.5.0, generationVersion 2.904.2 / unions 2.87.7) so the pointer-safe union scorer and TestPickBestUnionCandidate_NonPointerUnionVariants are regenerated. Add a CI guard that fails the regen workflow if generationVersion or the unions feature version decreases relative to main.
Reviewed at 52902f8
52902f8 to
32e9366
Compare
Superseded by updated Perry review
* `OpenRouter.Benchmarks.GetBenchmarks()`: **Added** * `OpenRouter.Classifications.GetTaskClassifications()`: **Added** * `OpenRouter.Images.Generate()`: **Added** * `OpenRouter.Images.ListModels()`: **Added** * `OpenRouter.Images.ListModelEndpoints()`: **Added** * `OpenRouter.Workspaces.ListBudgets()`: **Added** * `OpenRouter.Workspaces.DeleteBudget()`: **Added** * `OpenRouter.Workspaces.SetBudget()`: **Added** * `OpenRouter.Datasets.GetBenchmarksArtificialAnalysis()`: **Removed** (Breaking⚠️ ) * `OpenRouter.Datasets.GetBenchmarksDesignArena()`: **Removed** (Breaking⚠️ ) * `OpenRouter.Beta.Analytics.QueryAnalytics()`: `response.Data.Warnings` **Added** * `OpenRouter.Beta.Responses.Send()`: * `request.ResponsesRequest` **Changed** * `response` **Changed** * `OpenRouter.Tts.CreateSpeech()`: * `request.Request.Provider.Options.Tenstorrent` **Added** * `OpenRouter.Stt.CreateTranscription()`: * `request.Request.Provider.Options.Tenstorrent` **Added** * `OpenRouter.Byok.List()`: * `request.Provider` **Changed** * `response.Data[].Provider.Enum(tenstorrent)` **Added** * `OpenRouter.Byok.Create()`: * `request.Request.Provider.Enum(tenstorrent)` **Added** * `response.Data.Provider.Enum(tenstorrent)` **Added** * `OpenRouter.Byok.Get()`: `response.Data.Provider.Enum(tenstorrent)` **Added** * `OpenRouter.Byok.Update()`: `response.Data.Provider.Enum(tenstorrent)` **Added** * `OpenRouter.Chat.Send()`: * `request.ChatRequest` **Changed** * `response` **Changed** * `OpenRouter.Embeddings.Generate()`: * `request.Request.Provider.Ignore[].union(ProviderName).Enum(tenstorrent)` **Added** * `response.Usage` **Changed** * `OpenRouter.Embeddings.ListModels()`: `response.Data[].Reasoning` **Added** * `OpenRouter.Endpoints.ListZdrEndpoints()`: `response.Data[].ProviderName.Enum(tenstorrent)` **Added** * `OpenRouter.Endpoints.List()`: `response.Data.Endpoints[].ProviderName.Enum(tenstorrent)` **Added** * `OpenRouter.Generations.GetGeneration()`: `response.Data.ProviderResponses[].ProviderName.Enum(tenstorrent)` **Added** * `OpenRouter.Models.Get()`: `response.Data.Reasoning` **Added** * `OpenRouter.Models.List()`: `response.Data[].Reasoning` **Added** * `OpenRouter.Models.ListForUser()`: `response.Data[].Reasoning` **Added** * `OpenRouter.Presets.CreatePresetsChatCompletions()`: `request.ChatRequest` **Changed** * `OpenRouter.Presets.CreatePresetsMessages()`: `request.MessagesRequest` **Changed** * `OpenRouter.Presets.CreatePresetsResponses()`: `request.ResponsesRequest` **Changed** * `OpenRouter.Rerank.Rerank()`: * `request.Request.Provider.Ignore[].union(ProviderName).Enum(tenstorrent)` **Added** * `OpenRouter.VideoGeneration.Generate()`: * `request.Request.Provider.Options.Tenstorrent` **Added**
32e9366 to
c791355
Compare
There was a problem hiding this comment.
Perry's Review
Speakeasy SDK regen to v0.5.1 — re-review at commit c791355. The substantive Go code is unchanged since my prior review (this push only refreshed lock files plus a rebase onto main); both prior blockers still reproduce.
Verdict: 🔁 Needs changes
Details
Risk: 🔴 High — human approval required
CI: no checks are configured on this PR (combined status empty) — neither the union panic nor the failing example test would be caught by CI. The full Go test suite is red at this head (see below).
Findings — all four were already raised on this PR and remain unresolved. I re-verified each still holds at this head rather than re-posting duplicate inline comments:
- 🔴 union.go (around L132) — the new activeVariant.Type.Elem() / variantVal.Elem() / variantVal.IsNil() calls panic when the active union variant is a non-pointer member. Empirically reproduced at this head by unmarshalling a realistic role=user content-array payload into BaseInputsUnion1: "panic: reflect: call of reflect.Value.Elem on slice Value". 48 non-pointer union members (string slices, float slices, any, slices of structs) exist across core models, reachable from ~76 UnmarshalJSON sites (chat, embeddings, responses, rerank, …). The code comment "All union variants are pointers" is false.
- 🔴 union_test.go — this PR deletes TestPickBestUnionCandidate_NonPointerUnionVariants, the only regression test covering the panicking path. It passes on main and would have gone red here; removing it is what lets the suite stay green over a live crash.
- 🟡 gen.lock — root cause: the generator is downgraded (speakeasyVersion 1.778.0 to 1.761.1, generationVersion 2.904.2 to 2.879.6, unions 2.87.7 to 2.87.6), which re-emits the older crash-prone union scorer and drops its test. Regenerating with the generator version on main should fix both blockers. Independently flagged by Codex plus the correctness lane.
- 🟡 openrouter.go — bumping SDKVersion to 0.5.1 leaves the committed example test asserting 0.5.0, so ExampleNew fails. The example and doc files are not in this diff, but the version bump here is what breaks them.
Codex (heavy second opinion): corroborated the generator-downgrade blocker; its "AnthropicUsageIteration undiscriminated anyOf" note is a pre-existing spec shape, not introduced by this diff.
Research: reflect Value.Elem() is only valid on pointers and interfaces — calling it on a slice value panics ("call of reflect.Value.Elem on slice Value"); on an interface type, Type.Elem() panics too. The correct generated form guards on Kind() before dereferencing. The generator on main (generationVersion ≥ 2.904.2) emits the guarded code; this PR's downgrade reintroduces the unguarded form.
Security: no concerns — pure generated SDK; secret scan clean; no hand-written auth or key handling in the diff. The new tenstorrent provider enum is benign.
Breaking changes: Datasets.GetBenchmarksArtificialAnalysis() and GetBenchmarksDesignArena() are removed (intentional upstream spec change, flagged in the PR body).
Test coverage: the one test that covered the panicking path was deleted; the components package has no test files, so nothing else guards it.
Unresolved threads: 4 — all four findings above already have open Perry threads at this head; the prior CHANGES_REQUESTED review keeps the merge gate. Not re-posting to avoid duplicate noise.
Scope: incremental — substantive Go code unchanged since prior review; only lock-file plus rebase delta this push.
Review: tier=large · model=claude-opus-latest · score=184.5
SDK update
Versioning
Version Bump Type: [patch] - 🤖 (automated)
Tip
If updates to your OpenAPI document introduce breaking changes, be sure to update the
info.versionfield to trigger the correct version bump.Speakeasy supports manual control of SDK versioning through multiple methods.
Go SDK Changes:
OpenRouter.Benchmarks.GetBenchmarks(): AddedOpenRouter.Classifications.GetTaskClassifications(): AddedOpenRouter.Images.Generate(): AddedOpenRouter.Images.ListModels(): AddedOpenRouter.Images.ListModelEndpoints(): AddedOpenRouter.Workspaces.ListBudgets(): AddedOpenRouter.Workspaces.DeleteBudget(): AddedOpenRouter.Workspaces.SetBudget(): AddedOpenRouter.Datasets.GetBenchmarksArtificialAnalysis(): Removed (BreakingOpenRouter.Datasets.GetBenchmarksDesignArena(): Removed (BreakingOpenRouter.Beta.Analytics.QueryAnalytics():response.Data.WarningsAddedOpenRouter.Beta.Responses.Send():request.ResponsesRequestChangedresponseChangedOpenRouter.Tts.CreateSpeech():request.Request.Provider.Options.TenstorrentAddedOpenRouter.Stt.CreateTranscription():request.Request.Provider.Options.TenstorrentAddedOpenRouter.Byok.List():request.ProviderChangedresponse.Data[].Provider.Enum(tenstorrent)AddedOpenRouter.Byok.Create():request.Request.Provider.Enum(tenstorrent)Addedresponse.Data.Provider.Enum(tenstorrent)AddedOpenRouter.Byok.Get():response.Data.Provider.Enum(tenstorrent)AddedOpenRouter.Byok.Update():response.Data.Provider.Enum(tenstorrent)AddedOpenRouter.Chat.Send():request.ChatRequestChangedresponseChangedOpenRouter.Embeddings.Generate():request.Request.Provider.Ignore[].union(ProviderName).Enum(tenstorrent)Addedresponse.UsageChangedOpenRouter.Embeddings.ListModels():response.Data[].ReasoningAddedOpenRouter.Endpoints.ListZdrEndpoints():response.Data[].ProviderName.Enum(tenstorrent)AddedOpenRouter.Endpoints.List():response.Data.Endpoints[].ProviderName.Enum(tenstorrent)AddedOpenRouter.Generations.GetGeneration():response.Data.ProviderResponses[].ProviderName.Enum(tenstorrent)AddedOpenRouter.Models.Get():response.Data.ReasoningAddedOpenRouter.Models.List():response.Data[].ReasoningAddedOpenRouter.Models.ListForUser():response.Data[].ReasoningAddedOpenRouter.Presets.CreatePresetsChatCompletions():request.ChatRequestChangedOpenRouter.Presets.CreatePresetsMessages():request.MessagesRequestChangedOpenRouter.Presets.CreatePresetsResponses():request.ResponsesRequestChangedOpenRouter.Rerank.Rerank():request.Request.Provider.Ignore[].union(ProviderName).Enum(tenstorrent)AddedOpenRouter.VideoGeneration.Generate():request.Request.Provider.Options.TenstorrentAddedView full SDK changelog
OpenAPI Change Summary
View full report
Linting Report
0 errors, 1 warnings, 0 hintsView full report
GO CHANGELOG
core: 3.13.40 - 2026-03-23
🐛 Bug Fixes
core: 3.13.39 - 2026-03-23
🐛 Bug Fixes
core: 3.13.38 - 2026-03-23
🐛 Bug Fixes
core: 3.13.37 - 2026-03-23
🐛 Bug Fixes
core: 3.13.36 - 2026-03-12
🐛 Bug Fixes
core: 3.13.35 - 2026-03-12
🐛 Bug Fixes
core: 3.13.34 - 2026-03-11
🐛 Bug Fixes
Get(commit by @danielkov)core: 3.13.23 - 2026-03-11
🐛 Bug Fixes
core: 3.13.21 - 2026-03-04
🐛 Bug Fixes
core: 3.13.20 - 2026-02-27
🐛 Bug Fixes
core: 3.13.19 - 2026-02-27
🐛 Bug Fixes
core: 3.13.33 - 2026-02-24
🐛 Bug Fixes
core: 3.13.22 - 2026-02-24
🐛 Bug Fixes
core: 3.13.17 - 2026-02-23
🐛 Bug Fixes
core: 3.13.16 - 2026-02-21
🐛 Bug Fixes
core: 3.13.15 - 2026-02-19
🐛 Bug Fixes
core: 3.13.14 - 2026-02-18
🐛 Bug Fixes
core: 3.13.13 - 2026-02-18
🐛 Bug Fixes
core: 3.13.12 - 2026-01-29
🐛 Bug Fixes
core: 3.13.11 - 2026-01-23
🐛 Bug Fixes
core: 3.13.10 - 2026-01-11
🐛 Bug Fixes
core: 3.13.9 - 2026-01-07
🐛 Bug Fixes
core: 3.13.8 - 2026-01-03
🐛 Bug Fixes
core: 3.13.7 - 2025-12-18
🐛 Bug Fixes
core: 3.13.6 - 2025-12-02
🐛 Bug Fixes
core: 3.13.4 - 2025-11-25
🐝 New Features
core: 3.13.3 - 2025-11-24
🐝 New Features
inferUnionDiscriminators: truein gen.yaml (commit by @mfbx9da4)core: 3.13.2 - 2025-11-10
🐛 Bug Fixes
core: 3.13.5 - 2025-11-06
🐛 Bug Fixes
core: 3.13.1 - 2025-11-05
🐝 New Features
core: 3.12.1 - 2025-10-30
🐛 Bug Fixes
core: 3.13.0 - 2025-10-24
🐝 New Features
core: 3.12.0 - 2025-10-13
🐝 New Features
core: 3.11.1 - 2025-09-23
🐛 Bug Fixes
core: 3.11.0 - 2025-09-17
🐝 New Features
core: 3.10.1 - 2025-09-15
🔧 Chores
core: 3.9.7 - 2025-09-10
🐛 Bug Fixes
core: 3.10.0 - 2025-09-09
🐝 New Features
core: 3.9.6 - 2025-09-02
🐛 Bug Fixes
core: 3.9.5 - 2025-09-01
🔧 Chores
core: 3.9.4 - 2025-08-27
🔧 Chores
core: 3.9.3 - 2025-07-31
🐛 Bug Fixes
core: 3.9.2 - 2025-07-31
🐛 Bug Fixes
core: 3.9.1 - 2025-07-24
🔧 Chores
core: 3.9.0 - 2025-07-15
🐝 New Features
core: 3.8.1 - 2025-06-09
🐛 Bug Fixes
core: 3.8.0 - 2025-06-05
🐝 New Features
core: 3.7.5 - 2025-05-07
🐛 Bug Fixes
core: 3.7.4 - 2025-04-11
🐛 Bug Fixes
core: 3.7.3 - 2025-04-03
🐛 Bug Fixes
core: 3.7.2 - 2025-02-21
🐛 Bug Fixes
core: 3.7.1 - 2025-02-14
🐛 Bug Fixes
core: 3.7.0 - 2025-02-04
🐝 New Features
core: 3.6.12 - 2025-01-31
🐛 Bug Fixes
core: 3.6.11 - 2025-01-29
🐛 Bug Fixes
core: 3.6.10 - 2025-01-27
🐛 Bug Fixes
core: 3.6.9 - 2025-01-20
🐛 Bug Fixes
core: 3.6.8 - 2025-01-20
🐛 Bug Fixes
core: 3.6.7 - 2025-01-20
🐛 Bug Fixes
core: 3.6.5 - 2025-01-14
🐛 Bug Fixes
Content-Type: */*request header for relevant operations (commit by @tristanspeakeasy)core: 3.6.4 - 2025-01-14
🐛 Bug Fixes
core: 3.6.6 - 2025-01-13
🐛 Bug Fixes
core: 3.6.3 - 2025-01-13
🐛 Bug Fixes
core: 3.6.2 - 2024-12-16
🐛 Bug Fixes
core: 3.6.1 - 2024-12-13
🐛 Bug Fixes
core: 3.6.0 - 2024-12-12
🐝 New Features
core: 3.5.18 - 2024-12-06
🐛 Bug Fixes
core: 3.5.17 - 2024-11-22
🐛 Bug Fixes
core: 3.5.16 - 2024-11-12
🐛 Bug Fixes
core: 3.5.15 - 2024-10-31
🐛 Bug Fixes
core: 3.5.14 - 2024-10-09
🐛 Bug Fixes
core: 3.5.13 - 2024-10-07
🐛 Bug Fixes
core: 3.5.12 - 2024-09-27
🐛 Bug Fixes
core: 3.5.11 - 2024-09-25
🐛 Bug Fixes
core: 3.5.10 - 2024-09-25
🐛 Bug Fixes
core: 3.5.9 - 2024-09-18
🐛 Bug Fixes
core: 3.5.8 - 2024-09-11
🔧 Chores
core: 3.5.7 - 2024-09-10
🔧 Chores
core: 3.5.6 - 2024-09-05
🐛 Bug Fixes
core: 3.5.5 - 2024-08-16
🐛 Bug Fixes
core: 3.5.4 - 2024-08-13
🐛 Bug Fixes
core: 3.5.3 - 2024-08-01
🐛 Bug Fixes
core: 3.5.2 - 2024-07-23
🐛 Bug Fixes
defaultstatus code is available and considered succesful (commit by @disintegrator)core: 3.5.1 - 2024-07-23
🐛 Bug Fixes
core: 3.4.16 - 2024-07-16
🔧 Chores
core: 3.5.0 - 2024-07-11
🐝 New Features
core: 3.4.15 - 2024-07-09
🐛 Bug Fixes
core: 3.4.14 - 2024-06-21
🔧 Chores
core: 3.4.13 - 2024-06-20
🐛 Bug Fixes
core: 3.4.12 - 2024-06-17
🐛 Bug Fixes
core: 3.4.11 - 2024-06-03
🐛 Bug Fixes
core: 3.4.10 - 2024-05-21
🐛 Bug Fixes
core: 3.4.9 - 2024-05-21
🐛 Bug Fixes
core: 3.4.8 - 2024-05-09
🐛 Bug Fixes
core: 3.4.7 - 2024-04-25
🐛 Bug Fixes
core: 3.4.6 - 2024-04-07
♻️ Refactors
core: 3.4.5 - 2024-03-22
🐛 Bug Fixes
core: 3.4.4 - 2024-03-06
🐛 Bug Fixes
core: 3.4.3 - 2024-02-23
🐛 Bug Fixes
core: 3.4.2 - 2024-02-22
🐛 Bug Fixes
core: 3.4.1 - 2024-02-15
♻️ Refactors
core: 3.3.3 - 2024-02-13
🔧 Chores
core: 3.4.0 - 2024-02-12
🐝 New Features
core: 3.3.2 - 2024-02-02
🐛 Bug Fixes
core: 3.3.1 - 2024-01-16
🔧 Chores
core: 3.3.0 - 2023-12-19
🐝 New Features
core: 3.2.2 - 2023-12-14
🐛 Bug Fixes
core: 3.2.1 - 2023-12-14
🐛 Bug Fixes
core: 3.1.6 - 2023-12-06
🐛 Bug Fixes
🔧 Chores
core: 3.2.0 - 2023-12-05
🐝 New Features
core: 3.1.5 - 2023-11-14
🐛 Bug Fixes
core: 3.1.4 - 2023-11-09
🔧 Chores
core: 3.1.3 - 2023-11-09
🐛 Bug Fixes
core: 3.1.2 - 2023-11-08
🔧 Chores
core: 3.1.1 - 2023-11-07
🐛 Bug Fixes
core: 3.1.0 - 2023-11-01
🐝 New Features
core: 3.0.1 - 2023-11-01
🐛 Bug Fixes
core: 3.0.0 - 2023-10-24
🐝 New Features
core: 2.94.0 - 2023-10-20
🐝 New Features
core: 2.93.3 - 2023-10-20
🐛 Bug Fixes
core: 2.93.2 - 2023-10-19
🐛 Bug Fixes
core: 2.93.1 - 2023-10-19
🐛 Bug Fixes
core: 2.93.0 - 2023-10-18
🐝 New Features
core: 2.91.6 - 2023-10-18
🐛 Bug Fixes
core: 2.91.5 - 2023-10-13
🐛 Bug Fixes
core: 2.91.4 - 2023-10-06
🐛 Bug Fixes
core: 2.91.3 - 2023-10-05
🐛 Bug Fixes
core: 2.91.2 // globalSecurity: 2.82.2 - 2023-10-04
🐛 Bug Fixes
core: 2.91.1 - 2023-10-01
🐛 Bug Fixes
core: 2.91.0 - 2023-09-29
🐝 New Features
core: 2.90.0 - 2023-09-26
🐝 New Features
core: 2.89.3 - 2023-09-26
🐛 Bug Fixes
core: 2.89.2 - 2023-09-26
🐛 Bug Fixes
core: 2.89.1 - 2023-09-25
🐛 Bug Fixes
core: 2.88.4 - 2023-09-21
🐛 Bug Fixes
core: 2.89.0 - 2023-09-20
🐝 New Features
core: 2.88.3 - 2023-09-18
🔧 Chores
core: 2.88.2 - 2023-09-15
🐛 Bug Fixes
core: 2.88.1 - 2023-09-13
🐛 Bug Fixes
core: 2.88.0 - 2023-09-06
🐝 New Features
core: 2.86.4 - 2023-09-04
🐛 Bug Fixes
core: 2.86.3 - 2023-09-01
🐛 Bug Fixes
core: 2.86.2 - 2023-08-31
🐛 Bug Fixes
core: 2.86.1 - 2023-08-30
🐛 Bug Fixes
core: 2.86.0 - 2023-08-29
🐝 New Features
core: 2.85.0 - 2023-08-29
🐝 New Features
core: 2.84.2 - 2023-08-28
🐛 Bug Fixes
core: 2.84.1 - 2023-08-25
🐛 Bug Fixes
core: 2.84.0 - 2023-08-24
🐝 New Features
core: 2.83.1 - 2023-08-23
🐛 Bug Fixes
core: 2.83.0 - 2023-08-14
🐝 New Features
core: 2.82.0 - 2023-08-07
🐝 New Features
pagination: 2.82.6 - 2026-02-21
🐛 Bug Fixes
pagination: 2.82.5 - 2025-10-15
🐛 Bug Fixes
pagination: 2.82.4 - 2025-03-06
🐛 Bug Fixes
pagination: 2.82.3 - 2025-02-19
🐛 Bug Fixes
pagination: 2.82.2 - 2024-12-20
🐛 Bug Fixes
pagination: 2.82.1 - 2024-03-25
🐛 Bug Fixes
pagination: 2.82.0 - 2024-02-28
🐝 New Features
pagination: 2.81.2 - 2023-10-17
🐛 Bug Fixes
serverEvents: 0.1.7 - 2026-03-10
🐛 Bug Fixes
serverEvents: 0.1.6 - 2026-03-03
🐛 Bug Fixes
serverEvents: 0.1.5 - 2026-02-13
🐛 Bug Fixes
serverEvents: 0.1.4 - 2026-02-02
🐛 Bug Fixes
serverEvents: 0.1.3 - 2025-02-02
🐛 Bug Fixes
serverEvents: 0.1.2 - 2024-02-15
🐛 Bug Fixes
serverEvents: 0.1.1 - 2024-02-05
🐛 Bug Fixes
serverEvents: 0.1.0 - 2024-01-17
🐝 New Features
unions: 2.87.6 - 2026-03-12
🐝 New Features
unions: 2.87.5 - 2026-02-24
🐛 Bug Fixes
unions: 2.87.4 - 2026-02-12
🐝 New Features
unions: 2.87.3 - 2026-02-02
🐛 Bug Fixes
respectTitlesForPrimitiveUnionMembers) (commit by @mfbx9da4)unions: 2.87.2 - 2025-11-20
🔧 Fixes
unions: 2.87.1 - 2025-11-10
🐛 Bug Fixes
unions: 2.87.0 - 2025-10-23
🐝 New Features
unions: 2.86.0 - 2025-10-01
🐝 New Features
unions: 2.85.14 - 2025-08-29
🐛 Bug Fixes
unions: 2.85.13 - 2025-08-26
🐛 Bug Fixes
unions: 2.85.12 - 2025-07-03
🐛 Bug Fixes
unions: 2.85.11 - 2025-06-09
🐛 Bug Fixes
unions: 2.85.10 - 2024-11-05
🐛 Bug Fixes
unions: 2.85.9 - 2024-08-09
🐛 Bug Fixes
unions: 2.85.8 - 2024-05-17
🔧 Chores
unions: 2.85.7 - 2024-05-16
🐛 Bug Fixes
unions: 2.85.6 - 2024-05-14
🐛 Bug Fixes
unions: 2.85.5 - 2024-05-02
🐛 Bug Fixes
unions: 2.85.4 - 2024-02-29
🐛 Bug Fixes
unions: 2.85.3 - 2024-02-07
🐛 Bug Fixes
unions: 2.85.2 - 2023-12-14
🐛 Bug Fixes
unions: 2.85.1 - 2023-12-14
🐛 Bug Fixes
unions: 2.84.1 - 2023-10-31
🐛 Bug Fixes
unions: 2.85.0 - 2023-10-24
🐝 New Features
unions: 2.84.0 - 2023-10-18
🐝 New Features
unions: 2.83.1 - 2023-09-30
🐛 Bug Fixes
unions: 2.83.0 - 2023-09-15
🐝 New Features
unions: 2.82.0 - 2023-09-04
🐝 New Features
unions: 2.81.2 - 2023-08-07
🐛 Bug Fixes
Based on Speakeasy CLI 1.761.1
Last updated by Speakeasy workflow