Skip to content

Release 2.1.190 (2026-08-12)

Bug fixes

  • resolve packaged ESLint flat config from the consumer repo (#2777) The registry LINT command referenced the ESLint flat config by its packaged path inside the vergil-tooling Python package, which has no adjacent node_modules. Node resolves the config's bare ESM imports (@eslint/js, typescript-eslint) relative to the config file's own directory, so every TypeScript consumer's LINT stage failed with ERR_MODULE_NOT_FOUND (and NODE_PATH does not help, as ESM ignores it).

Stage the packaged config into the consumer repo root at lint time via an sh -c wrapper (the idiom already used by the C++ clang-format LINT command), run eslint against the staged copy so ESM resolution walks up to the repo-local node_modules that npm ci populates, and remove the staged file via an EXIT trap that preserves eslint's exit code. The dot-prefixed .mjs staging name is loaded as ESM regardless of the consumer's package.json type and is matched by no config entry, so it is never linted and never left behind.

CI Evidence: All gates passed — full audit bundle available. Download →