Skip to content

feat: add blast-radius / impact analysis (what breaks if I change symbol X) #15

Description

@aider4ryder

Motivation

codeseek currently provides codeseek_callers (direct callers of a symbol) and codeseek_callgraph (local call graph neighborhood). But it lacks transitive impact analysis — answering questions like:

  • "If I change the return type of parse_config(), what downstream code breaks?"
  • "If I delete DatabasePool::acquire(), what's the blast radius?"
  • "What's the dependency path from handle_request() to execute_query()?"

These are the most valuable questions during refactoring, and right now users must manually chain codeseek_callers N times.

Proposed tools

codeseek_impact — transitive reverse reachability

codeseek_impact(symbol: str, max_depth: int = 5) → list of all symbols that transitively depend on `symbol`

codeseek_path — shortest call path between two symbols

codeseek_path(from: str, to: str) → list of edges showing the call chain

Implementation note

The call graph data already exists from tree-sitter parsing during indexing. These queries are pure graph traversal (BFS/DFS) on the existing edges — no additional model calls needed. The LanceDB index could store edges in a separate table for efficient graph queries.

This would make codeseek a complete replacement for tools like CodeGraph/GitNexus, which already provide this functionality.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions