langchain-text-splitters breaking changes
Every breaking API change we have recorded in langchain-text-splitters on PyPI: 22 breaking changes in 3 versions. Below are its newest 3 versions, removals and renames first, each with its source.
Newest change April 16, 2026

On this page
1.1.2
- Signature changed
langchain_text_splitters.TextSplitter.from_tiktoken_encoder
Was @classmethod def from_tiktoken_encoder(cls, encoding_name: str = 'gpt2', model_name: str | None = None, allowed_special: Literal['all'] | AbstractSet[str] = set(), disallowed_special: Literal['all'] | Collection[str] = 'all', **kwargs... pypi.org - Signature changed
langchain_text_splitters.TokenTextSplitter.__init__
Was def __init__(self, encoding_name: str = 'gpt2', model_name: str | None = None, allowed_special: Literal['all'] | AbstractSet[str] = set(), disallowed_special: Literal['all'] | Collection[str] = 'all', **kwargs: Any) -> None; now def... pypi.org
1.1.1
- Removed
langchain_text_splitters.ExperimentalMarkdownSyntaxTextSplitter.DEFAULT_HEADER_KEYS
langchain_text_splitters.ExperimentalMarkdownSyntaxTextSplitter.DEFAULT_HEADER_KEYS was removed in langchain-text-splitters 1.1.1 pypi.org - Removed
langchain_text_splitters.markdown.ExperimentalMarkdownSyntaxTextSplitter.DEFAULT_HEADER_KEYS
langchain_text_splitters.markdown.ExperimentalMarkdownSyntaxTextSplitter.DEFAULT_HEADER_KEYS was removed in langchain-text-splitters 1.1.1 pypi.org - Signature changed
langchain_text_splitters.SentenceTransformersTokenTextSplitter.__init__
Was def __init__(self, chunk_overlap: int = 50, model_name: str = 'sentence-transformers/all-mpnet-base-v2', tokens_per_chunk: int | None = None, **kwargs: Any) -> None; now def __init__(self, chunk_overlap: int = 50, model_name: str =... pypi.org
1.0.0
- Signature changed
langchain_text_splitters.ExperimentalMarkdownSyntaxTextSplitter.__init__
Was def __init__(self, headers_to_split_on: Union[list[tuple[str, str]], None] = None, return_each_line: bool = False, strip_headers: bool = True) -> None; now def __init__(self, headers_to_split_on: list[tuple[str, str]] | None = None... pypi.org - Signature changed
langchain_text_splitters.HTMLHeaderTextSplitter.split_text_from_file
Was def split_text_from_file(self, file: Any) -> list[Document]; now def split_text_from_file(self, file: str | IO[str]) -> list[Document]. pypi.org - Signature changed
langchain_text_splitters.HTMLSectionSplitter.create_documents
Was def create_documents(self, texts: list[str], metadatas: Optional[list[dict[Any, Any]]] = None) -> list[Document]; now def create_documents(self, texts: list[str], metadatas: list[dict[Any, Any]] | None = None) -> list[Document]. pypi.org - Signature changed
langchain_text_splitters.HTMLSectionSplitter.split_html_by_headers
Was def split_html_by_headers(self, html_doc: str) -> list[dict[str, Optional[str]]]; now def split_html_by_headers(self, html_doc: str) -> list[dict[str, str | None]]. pypi.org - Signature changed
langchain_text_splitters.HTMLSectionSplitter.split_text_from_file
Was def split_text_from_file(self, file: Any) -> list[Document]; now def split_text_from_file(self, file: StringIO) -> list[Document]. pypi.org - Signature changed
langchain_text_splitters.HTMLSemanticPreservingSplitter.__init__
Was def __init__(self, headers_to_split_on: list[tuple[str, str]], *, max_chunk_size: int = 1000, chunk_overlap: int = 0, separators: Optional[list[str]] = None, elements_to_preserve: Optional[list[str]] = None, preserve_links: bool =... pypi.org - Signature changed
langchain_text_splitters.JSFrameworkTextSplitter.__init__
Was def __init__(self, separators: Optional[list[str]] = None, chunk_size: int = 2000, chunk_overlap: int = 0, **kwargs: Any) -> None; now def __init__(self, separators: list[str] | None = None, chunk_size: int = 2000, chunk_overlap: int =... pypi.org - Signature changed
langchain_text_splitters.MarkdownHeaderTextSplitter.__init__
Was def __init__(self, headers_to_split_on: list[tuple[str, str]], return_each_line: bool = False, strip_headers: bool = True, custom_header_patterns: Optional[dict[str, int]] = None) -> None; now def __init__(self, headers_to_split_on... pypi.org - Signature changed
langchain_text_splitters.RecursiveCharacterTextSplitter.__init__
Was def __init__(self, separators: Optional[list[str]] = None, keep_separator: Union[bool, Literal['start', 'end']] = True, is_separator_regex: bool = False, **kwargs: Any) -> None; now def __init__(self, separators: list[str] | None =... pypi.org - Signature changed
langchain_text_splitters.RecursiveJsonSplitter.__init__
Was def __init__(self, max_chunk_size: int = 2000, min_chunk_size: Optional[int] = None) -> None; now def __init__(self, max_chunk_size: int = 2000, min_chunk_size: int | None = None) -> None. pypi.org
And 7 more in this version.
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