Skip to content

neighbors: support OVERRIDDEN_BY.* dot-key traversals #165

@HumanBean17

Description

@HumanBean17

Summary

Follow-up from #162 and the NEIGHBORS-DOT-KEY-TRAVERSAL-PROPOSE.md proposal.

The proposal adds DECLARES.* dot-key support to neighbors (2-hop traversals using the composed keys that edge_summary already surfaces). This follow-up covers the OVERRIDDEN_BY.* family:

  • OVERRIDDEN_BY — virtual override-axis key
  • OVERRIDDEN_BY.DECLARES_CLIENT
  • OVERRIDDEN_BY.DECLARES_PRODUCER
  • OVERRIDDEN_BY.EXPOSES

Why separate

OVERRIDDEN_BY is not a stored graph relationship — it is computed at describe-time via IMPLEMENTS/EXTENDS + Symbol.signature matching (see override_axis_rollup_for in kuzu_queries.py). Making it navigable in neighbors requires embedding the same signature-matching logic in the neighbors query path, which is significantly more complex than the DECLARES.* family (simple 2-hop Cypher over stored edges).

Desired behavior

When a method edge_summary shows OVERRIDDEN_BY.DECLARES_CLIENT: {"out": 2}, the agent should be able to call neighbors(method_id, 'out', ['OVERRIDDEN_BY.DECLARES_CLIENT']) and get the Client nodes declared by overriding methods — in one tool call instead of manually discovering overrides and traversing each.

Dependencies

Depends on the DECLARES.* dot-key implementation landing first (establishes the composed edge_type pattern, ComposedEdgeType, via_id in attrs, etc.).

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