Skip to content

Release SDK updates#424

Open
stlc-workflow-app[bot] wants to merge 21 commits into
mainfrom
stainless/release
Open

Release SDK updates#424
stlc-workflow-app[bot] wants to merge 21 commits into
mainfrom
stainless/release

Conversation

@stlc-workflow-app

Copy link
Copy Markdown
Contributor

00fb6e9 Merge pull request #46 from togethercomputer/stlc/from-prod
097409a Merge branch 'main' into stlc/from-prod
52a22f8 Sync fine-tune public OpenAPI schema
618c8ac feat: expose GPU cluster reserved counts
39e72f7 Build SDK
03fa99b release: 2.19.0 (#419)
cac1f18 feat(cli): expose remediation approval mode (#418)
5a7e1a0 chore: Clarify warning messages on unavailable price estimation for fine tuning (#417)
4b11539 chore: fix yaml
faa9ef8 Sync RL attach-only training session OpenAPI
2c08a3f Build SDK
0b7ba07 Merge pull request #43 from togethercomputer/stlc/from-prod
f143789 Merge branch 'main' into stlc/from-prod
657f622 docs(adapters): align endpoint adapter code samples with the SDK
34052ce feat: add /v1/whoami endpoint to OpenAPI spec
83c5119 Merge pull request #42 from togethercomputer/stlc/from-prod
e4b9e66 release: 2.17.0 (#404)
38511c9 MOSH-3014: Update CLI for early stopping (#405)
69c334c fix: unbounded read into memory in upload path - ENG-89831 (#399)

narasul and others added 21 commits June 22, 2026 15:02
* draft: fix unbounded read into memory in upload path

* simplify
* Add early stopping parameters to fine-tuning CLI

Thread early_stopping_enabled/patience/min_delta/warmup_evals through the CLI create command, create_finetune_request, the FinetuneRequest wire model, and the generated create() surface, mirroring the existing random_seed param. Only --early-stopping-enabled is required; the tuning knobs fall back to server defaults when unset. Adds a client-side guard requiring a validation file and n_evals >= patience + warmup_evals + 1.

MOSH-3014

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Apply ruff format to early stopping CLI params

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Surface early stopping results and centralize validation

Address PR review:

- P1: add EARLY_STOPPED event type (lowercase 'early_stopped' to the generated FinetuneEventType literal, EARLY_STOPPED to the lib enum) plus early_stopping_best_step / early_stopping_best_metric_value on both event models, so list_events no longer fails validation on early-stopped jobs.

- P2: expose early_stopped / early_stopping_best_step / early_stopping_best_metric on the retrieve, list, and cancel response models and the lib FinetuneResponse.

- P3: centralize early-stopping validation in validate_early_stopping() (bounds: patience>=1, warmup_evals>=0, min_delta>=0; plus validation-file and n_evals prerequisites); reused by create_finetune_request (covers direct SDK calls) and the CLI (fails before upload/price estimation).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Address ES review: wording + end-to-end CLI tests

- Drop the repeated default values from the validate_early_stopping docstring.

- CLI help and SDK create() docstrings: 'server default (N)' -> 'default (N)', since validate_early_stopping applies those defaults client-side (random_seed, which has no client-side default, is left as 'server default').

- Add end-to-end CLI tests (respx): one asserts the early_stopping_* params reach the POST /fine-tunes body through the built client; one asserts an invalid config (n_evals < patience+warmup+1) fails before any create call.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Isolate early stopping to lib/ after SDK regen

Per review, the generated resources/types and unit tests are dropped (reset to main, which now carries the regenerated early-stopping response/event types). The change is now lib-only: CLI flags + validate_early_stopping + create_finetune_request/FinetuneRequest plumbing.

The generated create() gains the early_stopping_* request params via the openapi -> sdk regen (maintainer-owned), so the CLI forwards them only when ES is enabled (keeps non-ES jobs working today) and the end-to-end create test is xfail until that regen lands.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* remove negative param

* Remove redundant early-stopping comments

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Blaine Kasten <blainekasten@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sync release changes from production
Stainless-Generated-From: 786c17b7b31f05580e00a8414d72da26be157885
Stainless-Generated-From: b001dcd0c624de9c06b184d909fcf135e0eb787d
Sync release changes from production
Stainless-Generated-From: b9a433869d4c50fe92c0edc1e72c1c42eddb41af
Stainless-Generated-From: 8816a1afb9583be8ab61d51f04f93014fb684f3f
Stainless-Generated-From: 2f44245aed2255e27e05f84ef1fc000b2f9aa5f2
…ine tuning (#417)

* Clarified warning messages on unavailable price estimation

* Fixes
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Blaine Kasten <blainekasten@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Stainless-Generated-From: 66783ef620928394912d15aa001c3a0e34a82ac2
Stainless-Generated-From: 4d58e6bf38a9ca36645bf457f4c58e4e88ed3dfd
Stainless-Generated-From: 1eac5d6795d6bd4b874d2e363f3524140ea52b70
Sync release changes from production
Stainless-Generated-From: 6c18eb078d6a9b3f8d81d26bedb4ead48e99a399
Stainless-Generated-From: 23484b156035a5e91029e584b3c24abc3415f438
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants