LangChain 0.3 removed the document loaders and the Python interpreter tool that had been duplicated in @langchain/community since the packages split, 39 subpaths in all, each still published there under the same name. It also collapsed langchain/memory/index into langchain/memory, and removed five self-query translator entrypoints plus the NotionDB loader, which the migration notes point at integration packages rather than at a subpath this entry can name.
What changed
- 39 document loader and tool subpaths moved to
@langchain/community, same names.langchain/document_loaders/fs/*,langchain/document_loaders/web/*andlangchain/experimental/tools/pyinterpreterare gone fromlangchainand published by@langchain/community0.3.0 under the identical subpath and export names. The map was derived by diffing the exports oflangchain0.2.20 against 0.3.0 and keeping every removed subpath the community package still publishes. langchain/memory/indexcollapsed intolangchain/memory. The two entrypoints re-exported the same module in 0.2.20, so only the specifier changes.- Six entrypoints left with no equivalent subpath. The five
retrievers/self_querytranslators (chroma, pinecone, supabase, vectara, weaviate) anddocument_loaders/web/notiondbare gone from both packages under their old name. The migration notes point self-query users at the matching integration package; the NotionDB loader has no documented replacement.
Before and after
A loader import built against 0.2.20:
import { PDFLoader } from 'langchain/document_loaders/fs/pdf';import { CSVLoader } from 'langchain/document_loaders/fs/csv';After npx emendant fix, only the package in front of the subpath changes:
import { PDFLoader } from '@langchain/community/document_loaders/fs/pdf';import { CSVLoader } from '@langchain/community/document_loaders/fs/csv';The same rewrite handles langchain/memory/index to langchain/memory: one specifier, no package added. There is no after for the self-query translators or the NotionDB loader. The entry carries no fix, so langchain/retrievers/self_query/pinecone keeps failing to resolve until you find its integration package by hand.
Migration guidance and its limits
Apply the two deterministic patches: the community entrypoint rewrite and the memory/index collapse. Neither installs @langchain/community for you. Add it to your manifest before running the fix, or the rewritten imports fail to resolve in its place.
Emendant does not fix the self-query translators or the NotionDB loader. No patch is offered because the entry carries none: the five translators moved into per-store integration packages this map cannot pin one subpath for, and the NotionDB loader has no documented replacement at all. A scan reports these as findings for you to resolve by hand.
No change in this release is assisted, so no model provider is needed for anything a clean scan finds here. A clean scan proves your imports still resolve. It does not prove the migrated code loads the same documents the old entrypoints did, since @langchain/community 0.3.0 is a different package resolving its own dependencies.
The next major release moves chains, legacy agents, retrievers and memory out of langchain. After 0.3, read LangChain 1.0: the legacy modules moved to @langchain/classic.
What Emendant detects, fixes and verifies
3 changes in langchain 0.3.0. 2 automatic fixes, 0 fixes requiring a model provider you choose, 1 report only. Each patch states which checks passed. Understand patch evidence.
| Change | Severity | Detects | Fix | Verified by |
|---|---|---|---|---|
The deprecated community entrypoints were removedlangchain-npm-0.3.0-community-entrypoints-removed | Breaking |
| Patch, written by the replace-module-path transform | Your typecheck and tests |
langchain/memory/index collapsed into langchain/memorylangchain-npm-0.3.0-memory-index-collapsed | Breaking |
| Patch, written by the replace-module-path transform | Your typecheck and tests |
The self-query translator entrypoints left for the integration packageslangchain-npm-0.3.0-self-query-entrypoints-removed | Breaking |
| Report only | Not applicable |
emendant explain <change-id> prints any row's entry, guidance and sources at the terminal.
Coverage
Requires emendant@0.1.0 or later. Run emendant feed update to get the latest coverage.
Coverage details
- Snapshot
2026-08-28.1, sequence 11, signed 28 August 2026- Feed entry
feed/npm/langchain/0.3.0.json
emendant feed status shows the snapshot your machine holds.
Primary sources
- Indexlangchain-ai/langchainjs at 0.3.5
- langchain@0.3.0npm registry, the published package
- langchain@0.2.20npm registry, the published package
Scan your repository
Find affected code without editing your files.
npx emendant scanThen npx emendant fix writes the patches the table says exist. The getting started guide covers the flags and the patch grades.
Related release pages
- Later langchain release: LangChain 1.0 for JavaScript: the legacy modules moved to @langchain/classic
The LangChain.js migration guide lists every release page and says which to read for your upgrade.