mirror of
https://github.com/Graphify-Labs/graphify.git
synced 2026-09-14 19:34:09 +08:00
50556baaea
These land together because they are interleaved in extract.py/engine.py. #2584 (PR #2588, thanks @phudayyy): the 0.9.38 dynamic-import dedupe keyed only on target, so an in-function import() suppressed the file-level edge affected follows. Dedupe now keys on the importing file, emitting one file-level dynamic_import edge per file/target while keeping the call-site edge. #2586 / #2417 (PR #2586, thanks @EZZEASY): a Python member call on an untyped receiver (x.get(...)) no longer binds by name to a same-named module function. walk_calls now defers non-self/cls/super Python member calls to the evidence-gated resolver; super().method() still resolves. Known trade: same-file x = Thing(); x.method() loses its evidence-free edge (precision over recall, per #2553). #2589/#2591 resolver arm (in _resolve_objc_member_calls): the @protocol exclusion and the self.field/_ivar receiver resolution (paired with the objc.py extractor changes committed separately). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>