chore: 🐝 Update SDK - Generate 0.10.1#352
Conversation
fc8027d to
fe0f350
Compare
b641cd9 to
65a462e
Compare
* `open_router.beta.responses.send()`: * `request` **Changed** * `response` **Changed** **Breaking**⚠️ * `open_router.tts.create_speech()`: * `request.provider.options.tenstorrent` **Added** * `open_router.chat.send()`: `response` **Changed** * `open_router.images.list_models()`: **Added** * `open_router.images.list_model_endpoints()`: **Added** * `open_router.datasets.get_benchmarks_artificial_analysis()`: **Deleted** **Breaking**⚠️ * `open_router.datasets.get_benchmarks_design_arena()`: **Deleted** **Breaking**⚠️ * `open_router.classifications.get_task_classifications()`: **Added** * `open_router.benchmarks.get_benchmarks()`: **Added** * `open_router.images.generate()`: **Added** * `open_router.stt.create_transcription()`: * `request.provider.options.tenstorrent` **Added** * `open_router.byok.list()`: `request.provider` **Changed** * `open_router.embeddings.generate()`: `response.usage` **Changed** * `open_router.embeddings.list_models()`: `response.data.[].reasoning` **Added** * `open_router.models.get()`: `response.data.reasoning` **Added** * `open_router.models.list()`: `response.data.[].reasoning` **Added** * `open_router.models.list_for_user()`: `response.data.[].reasoning` **Added** * `open_router.presets.create_presets_responses()`: `request` **Changed** * `open_router.video_generation.generate()`: * `request.provider.options.tenstorrent` **Added**
3701f70 to
d32d528
Compare
There was a problem hiding this comment.
Perry's Review
Speakeasy SDK regeneration bumping the client from 0.10.0 to 0.10.1: adds three new endpoint namespaces (benchmarks, classifications, images), consolidates the two per-source benchmark methods into a unified get_benchmarks, and parent-prefixes a batch of previously generic component type names.
Verdict: 💬 Comments / questions
Details
Risk: 🟡 Medium — breaking public-API removals and renames in a published SDK, mis-versioned as a patch release. No auth, billing, or routing surface touched.
CI: no checks reported on the head SHA (an empty run-tests-trigger commit is the head) — not a blocker per review policy.
Scope: incremental — the SDK source tree, docs, and pyproject.toml are byte-identical to my last review (head 3701f70). The only delta since then is the auto-merge workflow YAML, the speakeasy regen lock metadata, and a RELEASES.md timestamp. No net-new source lines to review.
Findings (carry-forward — both still open as unresolved threads from the prior pass; re-verified valid against this head, not re-posted):
- 🟡 Breaking public-API changes shipped under a patch bump. Two public methods removed (Datasets.get_benchmarks_artificial_analysis and get_benchmarks_design_arena, sync plus async) and ~37 component exports dropped or renamed (e.g. CompletionTokensDetails to ChatUsageCompletionTokensDetails, AspectRatio to VideoGenerationRequestAspectRatio). Speakeasy's own versioning auto-downgrades a detected breaking change to a minor (0.11.0), never patch — a patch label under-signals the break to pip's resolver and the changelog.
- 🟡 New UnifiedBenchmarksResponseData discriminated union has no catch-all variant — a future or unknown source value makes get_discriminator raise ValueError instead of degrading. Originates in the OpenAPI spec; fix with x-speakeasy-unknown-values.
Move integrity: verified clean — 0 dangling internal references to removed symbols; import openrouter resolves, all three new namespaces plus get_benchmarks load, and the removed benchmark methods are gone from the public surface.
Codex (gpt-5.5): no additional findings (timed out at the 60s cap on this 91-file generated diff).
Analysis lanes: no valid findings (1210 candidates dropped — all generated-file hash noise).
Research: confirmed via Speakeasy versioning docs (https://www.speakeasy.com/docs/sdks/manage/versioning) that a detected breaking change in a pre-1.0 SDK auto-downgrades major to minor (0.11.0), so a patch bump for these removals is anomalous and signals the breaks were not classified — corroborates finding 1.
Security: no concerns — generated SDK client; no secret patterns in the diff, no auth or credential-handling changes.
Test coverage: generated code (do-not-edit); no hand-written tests expected or changed.
Unresolved threads: 2 — both Perry's own carry-forward suggestions above. Neither is a merge blocker.
Scope: incremental — 0 net-new source lines since prior review (3701f70); only regen lock + workflow + timestamp changed
Review: tier=large · model=claude-opus-latest · score=109.8
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.
Python SDK Changes:
open_router.beta.responses.send():requestChangedresponseChanged Breakingopen_router.tts.create_speech():request.provider.options.tenstorrentAddedopen_router.chat.send():responseChangedopen_router.images.list_models(): Addedopen_router.images.list_model_endpoints(): Addedopen_router.datasets.get_benchmarks_artificial_analysis(): Deleted Breakingopen_router.datasets.get_benchmarks_design_arena(): Deleted Breakingopen_router.classifications.get_task_classifications(): Addedopen_router.benchmarks.get_benchmarks(): Addedopen_router.images.generate(): Addedopen_router.stt.create_transcription():request.provider.options.tenstorrentAddedopen_router.byok.list():request.providerChangedopen_router.embeddings.generate():response.usageChangedopen_router.embeddings.list_models():response.data.[].reasoningAddedopen_router.models.get():response.data.reasoningAddedopen_router.models.list():response.data.[].reasoningAddedopen_router.models.list_for_user():response.data.[].reasoningAddedopen_router.presets.create_presets_responses():requestChangedopen_router.video_generation.generate():request.provider.options.tenstorrentAddedOpenAPI Change Summary
PYTHON CHANGELOG
No relevant generator changes
Based on Speakeasy CLI 1.680.0
Last updated by Speakeasy workflow