Skip to content

v2.7.5: stale lockfile blocks build on pnpm 11; import extraction returns 0 edges (Python + TypeScript) #358

@aidenmak0624

Description

@aidenmak0624

Thanks for the project! Tried /understand on a FastAPI (Python) + Next.js (TypeScript) monorepo via the Claude Code plugin and hit two blockers. Functions/classes extract perfectly, but the dependency graph comes out with zero import edges. Reporting with repro since the two may share a root cause (the published artifact looks out of sync).

Environment

macOS (Darwin 24.6), Node v24.11.1, pnpm 11.5.0 (corepack), plugin 2.7.5 (Claude Code /plugin marketplace add).

Issue 1 — stale lockfile blocks the Phase 0 build on pnpm 11

pnpm --filter @understand-anything/core build fails:

ERR_PNPM_OUTDATED_LOCKFILE  specifiers in the lockfile don't match specifiers in package.json:
* 2 dependencies were added: graphology@~0.26.0, graphology-communities-louvain@^2.0.2

--frozen-lockfile fails outright; plain pnpm install reports "Already up to date" but does not add them, so every subsequent pnpm --filter ... build aborts in runDepsStatusCheck before tsc runs. pnpm 11 also reports ERR_PNPM_IGNORED_BUILDS for esbuild + all tree-sitter parsers (prebuilds are present, so non-fatal, but noisy).

Workaround that unblocked it:

cd packages/core && ../../node_modules/.bin/tsc   # dist/index.js builds fine

Suggest committing an up-to-date pnpm-lock.yaml (and/or pnpm.onlyBuiltDependencies for the native builds).

Issue 2 — import extraction returns 0 edges (Python AND TypeScript)

After core is built, extract-structure.mjs / extract-import-map.mjs parse functions and classes correctly but extract no imports for files that clearly have many:

extract-structure.mjs on a 256-line Python file → functions=[9] classes=[3]  imports: []
   (the file has `from sqlalchemy import select`, `import logging`, etc.)
extract-import-map.mjs → Python, 170 files: filesScanned=170 filesWithImports=0 totalEdges=0
                       → TypeScript, a component with dozens of relative+alias imports: 0

So the assembled knowledge graph has nodes (files/functions/classes) but no structural edges, and Phases 4 (layers) and 5 (tour), which consume import topology, degrade accordingly.

Hypothesis: the lockfile desync (Issue 1) installs tree-sitter grammar versions whose node types no longer match the import queries, so the query silently matches nothing across both languages. Happy to test a patch if you point me at the query.

Net

Big fan of the concept. On a fresh pnpm-11 install the deterministic dependency graph (the headline value) currently comes out edge-less. Pinning a current lockfile + verifying the import queries against the shipped grammar versions would fix both.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions