Skip to content

Conversation

@stainless-app
Copy link
Contributor

@stainless-app stainless-app bot commented Nov 10, 2025

Automated Release PR

0.31.0 (2025-12-01)

Full Changelog: v0.30.0...v0.31.0

⚠ BREAKING CHANGES

  • api: Change call signature for audio.create to audio.speech.create to match spec with python library and add space for future APIs
  • api: Update method signature for reranking to rerank.create()
  • api: Change Fine Tuning method name from download() to content() to align with other namespaces
  • api: For the TS SDK the images.create is now images.generate
  • api: Access to the api for listing checkpoints has changed its name to list_checkpoints
  • api: Access to fine tuning APIs namespace has changed from fine_tune to fine_tuning

Features

  • api: Add audio.voices.list sdk (890595e)
  • api: Add batches.cancel API (b1133f8)
  • api: Add endpoints.list_avzones (606fea8)
  • api: Add fine_tune.delete API (79d0c84)
  • api: api update (fed5c48)
  • api: api update (1022fa6)
  • api: api update (da3e212)
  • api: api update (4be10bc)
  • api: api update (e594a76)
  • api: api update (8ec7bf0)
  • api: api update (04797be)
  • api: api update (c219bfd)
  • api: Change fine tuning download method to .create (34f7fe5)
  • api: Change image creation signature to images.generate (250569f)
  • api: Change rerank method signature (70a0ddc)
  • api: Change TTS call signature (fd2189a)
  • api: files.upload supported with custom file checks (5cba49f)
  • api: Fix internal references for VideoJob spec (2ce325f)
  • api: manual updates (9f78929)
  • api: Update Eval APIs (c91b8c0)

Chores

  • api: Cleanup some exported types (3b1eddb)
  • api: Ensure file.upload API remains in codebase after stainless sync (68895c0)
  • api: Remove API that is not intended to be public. (46dcc83)
  • api: Remove auto-generated files upload API to support custom coded version (94c54cb)
  • client: fix logger property type (10df0df)
  • Fix API example (8f34c93)
  • Fix fine tuning examples (b477053)
  • fix lint and type checks (#201) (963673f)

Styles

  • api: Change fine tuning method retrieve_checkpoints to list_checkpoints (b2c168a)
  • api: Change fine tuning namespace to fine_tuning (77b1211)

This pull request is managed by Stainless's GitHub App.

The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.

For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.

🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions


Note

Renames several APIs (audio.speech, images.generate, fineTuning, rerank.create), adds voices listing, batch canceling, endpoint availability zones, revamped evals, and introduces first‑class files.upload with strict local validation.

  • Breaking API Renames/Moves:
    • audio.createaudio.speech.create; introduces audio.speech and audio.voices.list.
    • images.createimages.generate.
    • Fine-tuning namespace fine_tunefineTuning; download()content(); retrieve_checkpointslistCheckpoints.
    • Rerank moved to client.rerank.create() (from top-level).
  • New/Updated Endpoints & Types:
    • Batches: add batches.cancel; retrieve returns BatchJob.
    • Endpoints: add listAvzones; unify types to DedicatedEndpoint; support availability_zone; list filters mine, usage_type.
    • Evals: new evals.create, evals.status; list path now /evaluation; types reworked.
    • Videos/Models: videos.create returns VideoJob; models list returns ModelObject.
  • Files:
    • Add files.upload(file, purpose, check?) with custom preflight validation (src/lib/check-file.ts) supporting JSONL/CSV(eval)/Parquet checks.
  • Docs/Examples/Tests:
    • Update README/api.md/examples to new signatures; add tests for audio.speech, audio.voices.list, batches.cancel, endpoints.listAvzones, files.upload, and updated evals.
  • Release: bump to 0.31.0; prune unused deps; stats/spec hashes updated.

Written by Cursor Bugbot for commit 35465cf. This will update automatically on new commits. Configure here.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is being reviewed by Cursor Bugbot

Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

): APIPromise<FineTuneDeleteResponse> {
const { force } = params;
return this._client.delete(path`/fine-tunes/${id}`, { query: { force }, ...options });
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: User Input Overrides Required API Parameters

The delete method spreads options after setting the query property, allowing user-provided options.query to override the required force parameter. This means the force value from params could be lost if the caller passes query in options, breaking the API call.

Fix in Cursor Fix in Web

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from 187276e to 3cb3894 Compare November 10, 2025 18:38
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from 3cb3894 to 90edcb9 Compare November 10, 2025 18:39
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from 90edcb9 to 19be098 Compare November 10, 2025 21:40
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from 19be098 to 0eb8879 Compare November 11, 2025 01:32
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: API Inconsistency Prevents Reasoning in Chat Creation

The reasoning field is missing from CompletionCreateParams.ChatCompletionAssistantMessageParam but present in the top-level ChatCompletionAssistantMessageParam and in response types. This inconsistency prevents users from including reasoning in assistant messages when creating chat completions, even though the API supports it in responses.

src/resources/chat/completions.ts#L535-L548

export interface ChatCompletionAssistantMessageParam {
role: 'assistant';
content?: string | null;
/**
* @deprecated
*/
function_call?: ChatCompletionAssistantMessageParam.FunctionCall;
name?: string;
tool_calls?: Array<CompletionsAPI.ToolChoice>;

Fix in Cursor Fix in Web


@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from 0eb8879 to 8e3637a Compare November 11, 2025 14:53
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from 8e3637a to db60a09 Compare November 11, 2025 15:01
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from db60a09 to f9d6b89 Compare November 12, 2025 10:10
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from f9d6b89 to c7a061d Compare November 12, 2025 22:17
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from c7a061d to 4939db7 Compare November 12, 2025 22:20
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from 4939db7 to a26e02f Compare November 12, 2025 22:30
BREAKING CHANGE: Access to fine tuning APIs namespace has changed from `fine_tune` to `fine_tuning`
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from a26e02f to 689b6d0 Compare November 14, 2025 14:51
…_checkpoints`

BREAKING CHANGE: Access to the api for listing checkpoints has changed its name to `list_checkpoints`
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from 689b6d0 to b427181 Compare November 14, 2025 14:54
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from e5fd933 to c49f101 Compare November 24, 2025 15:49
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from c49f101 to 9e0bd56 Compare November 24, 2025 17:15
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from 9e0bd56 to 77f0ac3 Compare November 24, 2025 17:16
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from 77f0ac3 to 9b93be6 Compare November 25, 2025 13:29
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from 9b93be6 to 37dd253 Compare November 25, 2025 19:31
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from 37dd253 to e7d9bd5 Compare November 25, 2025 21:41
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from e7d9bd5 to 62adf0d Compare November 26, 2025 18:49
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from 62adf0d to e6e2789 Compare November 26, 2025 19:29
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from e6e2789 to a16d595 Compare November 26, 2025 20:09
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from a16d595 to cc95643 Compare November 26, 2025 21:34
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--together-ai branch from cc95643 to 35465cf Compare December 1, 2025 12:40
@blainekasten blainekasten marked this pull request as ready for review December 1, 2025 13:09
if (fileType !== 'jsonl' && fileType !== 'parquet' && fileType !== 'csv') {
return {
message: 'File type must be either .jsonl, .parquet, or .csv',
};
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Upload returns object instead of rejecting promise

When an invalid file type is provided, the code returns an object { message: '...' } instead of calling reject(). This causes the Promise to never settle, making the application hang indefinitely. Additionally, the reject() calls on lines 37 and 50 are missing return statements, so execution continues after rejection - the code will attempt to process the file even after the Promise was rejected, potentially causing unexpected behavior or errors.

Additional Locations (2)

Fix in Cursor Fix in Web

@stainless-app stainless-app bot merged commit 7e75fa7 into main Dec 1, 2025
9 checks passed
@stainless-app
Copy link
Contributor Author

stainless-app bot commented Dec 1, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants