Skip to content

Supported projects

Capability Status
Node.js runtime Node 20 or later
TypeScript matching Supported: .ts, .tsx, .mts, .cts
JavaScript matching Supported: .js, .jsx, .mjs, .cjs
Python dependency detection Supported
Python source matching Not yet supported

Python files can be identified by the source walk, but no Python grammar or PyPI feed entry ships yet. A Python candidate produces a coverage warning instead of being guessed through a JavaScript matcher.

Ecosystem Files
npm package.json, package-lock.json, pnpm-lock.yaml, pnpm-workspace.yaml, yarn.lock
PyPI pyproject.toml, requirements.txt, poetry.lock, uv.lock

Emendant reports both direct and transitive dependencies during detection, but normal feed selection uses directly declared packages. npm package aliases are supported and matched under the local import name.

Declared workspaces are supported through:

  • workspaces in the root package.json;
  • packages in pnpm-workspace.yaml; and
  • [tool.uv.workspace] in pyproject.toml.

Each workspace is scanned separately so a package installed in one workspace is not attributed to code in another. Nested workspace declarations are not expanded.

The following releases have published migration pages and confirmed feed coverage:

PackageReleases described
@ai-sdk/anthropic4.0.0
@ai-sdk/google4.0.0, 4.0.98
@ai-sdk/openai4.0.0, 4.0.99
@ai-sdk/provider4.0.22, 4.0.25, 4.0.29
@anthropic-ai/sdk0.50.1, 0.58.0, 0.59.0, 0.62.0, 0.70.0, 0.72.1, 0.75.0, 0.76.0, 0.105.0, 0.118.0, 0.119.0, 0.122.0, 0.132.0, 0.134.0, 0.135.0
@google/genai1.50.1, 2.8.0
@langchain/core1.0.0, 1.1.7, 1.1.25, 1.1.28, 1.1.30, 1.1.31, 1.1.32, 1.1.35, 1.1.38, 1.1.45, 1.2.0, 1.2.18
ai4.0.0, 5.0.0, 6.0.0, 6.0.312, 7.0.0, 7.0.14, 7.0.40, 7.0.50, 7.0.63, 7.0.76, 7.0.94, 7.0.102, 7.0.128, 7.0.129, 7.0.143
langchain0.3.0, 1.0.1, 1.0.3, 1.0.5, 1.1.0, 1.2.7, 1.2.12, 1.2.13, 1.2.24, 1.2.29, 1.2.35, 1.2.36, 1.2.39, 1.4.0, 1.4.1, 1.4.4, 1.4.6, 1.5.3, 1.5.16, 1.5.17
openai5.0.0, 5.4.0, 5.8.0, 5.18.0, 6.3.0, 6.9.0, 6.21.0, 6.28.0, 6.29.0, 6.30.1, 6.31.0, 6.35.0, 6.36.0, 6.37.0, 6.49.0, 7.2.0, 7.5.0, 7.6.0, 7.8.0, 7.12.1

emendant feed status prints the snapshot your machine holds, and emendant explain <change-id> prints the entry behind any single result, so the feed itself is always the exact answer to what is covered today. The SDK Changes pages describe what each covered release breaks, with the coverage table generated from the feed entry itself, and there is an RSS feed of them.

Each change links to sources for the published release. The release pages show what Emendant detects, which fixes it offers, and the checks available for each patch.

New coverage is available through emendant feed update, without a new release of the tool. A scan checks changes in the feed; read the release’s migration guidance for steps outside that coverage.

You can request an API or SDK to help us prioritise new coverage. Submitting a request does not guarantee coverage or a delivery date.

The source walk skips:

  • dependencies, build output, caches, virtual environments, coverage, and vendored directories;
  • paths excluded by committed .gitignore rules or emendant.json;
  • minified and bundled JavaScript;
  • files over 1,000,000 characters; and
  • extensions no current matcher can interpret.

See Known limitations for the precision trade-offs behind these boundaries.