github Yeachan-Heo/oh-my-claudecode v3.7.15
v3.7.15 - Fix AST tools: ESM vs CJS resolution

latest releases: v4.9.1, v4.9.0, v4.8.2...
one month ago

Fix

Root cause: await import("@ast-grep/napi") uses ESM module resolution, which does NOT respect NODE_PATH or Module._initPaths(). Those only affect CJS require() calls. This is why v3.7.12-v3.7.14 all failed despite correctly setting NODE_PATH.

Solution: Use createRequire() from Node.js module package to create a CJS-style require function that respects NODE_PATH. Falls back to dynamic import for pure ESM environments.

Resolution chain:

  1. Banner sets NODE_PATHModule._initPaths() (CJS paths updated)
  2. getSgModule() uses createRequire().require("@ast-grep/napi") (CJS resolution, respects NODE_PATH)
  3. Fallback to import() if CJS fails (pure ESM environments)

Don't miss a new oh-my-claudecode release

NewReleases is sending notifications on new releases.