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 in the preview. 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 current preview feed covers five verified breaking changes in the OpenAI Node SDK v4-to-v5 migration. Every change cites a primary source pinned to the relevant release.

Anthropic, Vercel AI SDK, and LangChain coverage is planned for the first public release. A repository is scanned only for changes that exist in the feed; Emendant does not invent findings for uncatalogued changes.

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.