SIGN IN SIGN UP

fix(graph): resolve C# namespace imports in impact traversal and bare-endpoint evidence (#310, #792)

C# using directives produce IMPORTS_FROM edges whose target is the raw
namespace string, never a file path. PR #353 added a namespace fallback
for importers_of only, leaving two paths broken:

- get_impact_radius returned 0 impacted files/nodes for changed .cs
  files: neither impact engine could traverse namespace-targeted edges.
  Both engines now seed the changed C# files' declared namespaces
  (from the File node's csharp_namespaces extra) as bridge seeds; the
  namespace strings have no node rows so they never surface in results.

- _resolve_bare_endpoints only accepted import evidence keyed by file
  path, which C# never emits, so bare CALLS targets and TESTED_BY
  sources stayed unresolved. tests_for returned 0 for all C# nodes and
  detect_changes reported covered code as Untested. The resolver now
  maps namespace-string import targets back to the files declaring
  those namespaces and adds them as import evidence.

End-to-end regression tests cover importers_of, both impact engines,
TESTED_BY resolution, tests_for, and detect_changes gap classification
on a multi-file C# fixture with an NUnit-style test.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FmPUotoqsNWWt3b41FMjwv
T
Tirth Kanani committed
a7b47537027b679d54177661f7e65ed6214fc731
Parent: f88f26e