Skip to content

unresolved-call-site NodeRef silently drops the callee name (fqn="") #354

Description

@HumanBean17

Summary

neighbors(include_unresolved=True) constructs the unresolved-call-site NodeRef with name=callee, but NodeRef has no name field, so the callee identifier is silently discarded (pydantic v2 default extra="ignore").

Evidence (confirmed)

  • mcp_v2.py:1557: other=NodeRef(id=ucs_id, kind="unresolved_call_site", fqn="", name=callee)
  • mcp_v2.py:449: class NodeRef fields are id, kind, fqn, symbol_kind, microservice, module, role, … — no name, and no model_config override → default extra="ignore"name=callee is dropped (silent data loss, not a crash).

Impact

Every unresolved-call-site edge returned to the LLM has fqn="" and no human-readable callee identifier in the structured NodeRef; the client must dig into attrs.callee_simple to learn what was called.

Suggested fix

Either add name: str | None = None to NodeRef, or carry the callee in fqn (or another existing field). Related: #167 (NodeRef signal gaps).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions