Three Questions Grep Can't Answer (and How Tentra Answers Them)
Tentra is not a faster grep. It answers structural questions grep fundamentally can't — who really calls this function, what exactly breaks if I rename it, and what did we decide about this service six months ago. Concrete examples with real API output from our monorepo.
TL;DR: Grep is a string matcher; Tentra is a code graph. The gap shows up in three specific questions: real fan-in (78 distinct callers of getDisplayName, not 78 text matches), shortest path between two symbols through the import graph, and refactor safety (safe_rename returns a patch plan your agent executes). Persistent memory is the third pillar — snapshots, annotations, ADRs accumulate across sessions instead of starting from zero each chat.