langsmith breaking changes
Every breaking API change we have recorded in langsmith on PyPI: 226 breaking changes in 57 versions. Below are its newest 6 versions, removals and renames first, each with its source.
Newest change June 18, 2026

On this page
0.8.17
- Removed
langsmith.sandbox.aws_auth_proxy_config
langsmith.sandbox.aws_auth_proxy_config was removed in langsmith 0.8.17 pypi.org - Signature changed
langsmith.AsyncClient.__init__
Was def __init__(self, api_url: Optional[str] = None, api_key: Optional[str] = None, timeout_ms: Optional[Union[int, tuple[Optional[int], Optional[int], Optional[int], Optional[int]]]] = None, retry_config: Optional[Mapping[str, Any]] =... pypi.org - Signature changed
langsmith.sandbox.SandboxClient.create_sandbox
Was def create_sandbox(self, snapshot_id: Optional[str] = None, *, snapshot_name: Optional[str] = None, name: Optional[str] = None, timeout: int = 30, wait_for_ready: bool = True, idle_ttl_seconds: Optional[int] = None... pypi.org - Signature changed
langsmith.sandbox.SandboxClient.sandbox
Was def sandbox(self, snapshot_id: Optional[str] = None, *, snapshot_name: Optional[str] = None, name: Optional[str] = None, timeout: int = 30, idle_ttl_seconds: Optional[int] = None, delete_after_stop_seconds: Optional[int] = None, vcpus... pypi.org
0.8.15
- Signature changed
langsmith.sandbox.CommandHandle.__init__
Was def __init__(self, message_stream: Iterator[dict], control: Optional[_WSStreamControl], sandbox: Sandbox, *, command_id: str = '', stdout_offset: int = 0, stderr_offset: int = 0) -> None; now def __init__(self, message_stream... pypi.org
0.8.12
- Removed
langsmith.async_client.PLATFORM_HUB
langsmith.async_client.PLATFORM_HUB was removed in langsmith 0.8.12 pypi.org - Removed
langsmith.client.PLATFORM_HUB
langsmith.client.PLATFORM_HUB was removed in langsmith 0.8.12 pypi.org
0.8.11
- Signature changed
langsmith.AsyncClient.create_feedback
Was async def create_feedback(self, run_id: Optional[ls_client.ID_TYPE], key: str, score: Optional[float] = None, value: Union[float, int, bool, str, dict, None] = None, comment: Optional[str] = None, trace_id: Optional[ls_client.ID_TYPE]... pypi.org
0.8.10
- Signature changed
langsmith.AsyncClient.create_feedback
Was async def create_feedback(self, run_id: Optional[ls_client.ID_TYPE], key: str, score: Optional[float] = None, value: Union[float, int, bool, str, dict, None] = None, comment: Optional[str] = None, **kwargs: Any) -> ls_schemas.Feedback... pypi.org - Signature changed
langsmith.client.ComparativeExperimentResults.__init__
Was def __init__(self, results: dict, examples: Optional[dict[uuid.UUID, schemas.Example]] = None); now def __init__(self, results: dict, examples: Optional[dict[uuid.UUID, schemas.Example]] = None, comparative_experiment... pypi.org - Signature changed
langsmith.Client.create_project
Was def create_project(self, project_name: str, *, description: Optional[str] = None, metadata: Optional[dict] = None, upsert: bool = False, project_extra: Optional[dict] = None, reference_dataset_id: Optional[ID_TYPE] = None) ->... pypi.org - Signature changed
langsmith.sandbox.SandboxClient.create_sandbox
Was def create_sandbox(self, snapshot_id: Optional[str] = None, *, snapshot_name: Optional[str] = None, name: Optional[str] = None, timeout: int = 30, wait_for_ready: bool = True, idle_ttl_seconds: Optional[int] = None... pypi.org - Signature changed
langsmith.sandbox.SandboxClient.sandbox
Was def sandbox(self, snapshot_id: Optional[str] = None, *, snapshot_name: Optional[str] = None, name: Optional[str] = None, timeout: int = 30, idle_ttl_seconds: Optional[int] = None, delete_after_stop_seconds: Optional[int] = None, vcpus... pypi.org
0.8.9
- Signature changed
langsmith.sandbox.SandboxClient.create_snapshot_from_dockerfile
Was def create_snapshot_from_dockerfile(self, name: str, dockerfile: Union[str, os.PathLike[str]], fs_capacity_bytes: int, *, context: Union[str, os.PathLike[str]] = '.', build_args: Optional[Mapping[str, str]] = None, target... pypi.org
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The API reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

Put your code on continuous management.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp