github Graphify-Labs/graphify v0.9.37

3 hours ago

Correctness release: stops TypeScript fabricating high-confidence call edges, fixes Kotlin import/call/parse gaps against the bundled grammar, retries failed extractions on update, and surfaces claude-cli envelope errors.

  • Fix: TypeScript member calls no longer fabricate a high-confidence calls edge by matching a receiver type by name alone (#2553, thanks @Earthfreedom). A member call resolves only when the receiver's type is defined in the same file or actually imported by the caller's file, so a third-party import type { Repo } can no longer bind to an unrelated local class Repo; table-inferred receivers are tiered to INFERRED rather than EXTRACTED.
  • Fix: TypeScript/JavaScript calls inside a callback body passed to another call (for example export const handler = wrapper(async (req) => { helper() })) are no longer dropped (#2552, thanks @Earthfreedom). The callback body is walked and its calls attributed to the declaration, through the same import-gated resolution so it cannot fabricate edges.
  • Fix: Kotlin imports, fully-qualified calls, and one-line type bodies (#2526, #2550, #2551, thanks @spaceBrownie, @thomasrengot-hub, and @Mustaqeem66 for #2531). The extractor now matches the bundled grammar's import node (imports were silently dropped) and resolves each import to the real target node; a fully-qualified call like com.example.Foo.bar() now produces a calls edge; and a file with syntax the bundled grammar cannot parse (such as a one-line class C { val x }) now emits a warning instead of silently extracting nothing, with declarations recovered inside an error span keeping their enclosing class.
  • Fix: graphify update now retries a file whose extractor failed on a previous run instead of stamping it up-to-date forever (#2543, thanks @michaelxer). A failed extraction is no longer recorded in the manifest as processed, a manifest already poisoned by the old behavior is healed on the next run, and genuinely-unchanged files are not re-processed.
  • Fix: the claude-cli backend now surfaces an API error carried in the stdout envelope (for example a rate limit returned with a zero exit code) instead of treating it as an empty success (#2554, thanks @annieyii). The error is raised on both the zero and non-zero exit paths.

Don't miss a new graphify release

NewReleases is sending notifications on new releases.