personal memory agent

KG-8: graph API improvements — edge type stats, fuzzy name bridging master

Add explicit_edge_count and co_occurrence_edge_count to graph stats response so frontend can display signal quality indicators. Add fuzzy name bridging to _build_name_to_node_id() using the 5-tier matching from think.entities.matching. KG entity names that differ from canonical names (e.g., "Jer Miller" vs "Jeremie Miller") now resolve correctly via exact, case-insensitive, slug, first-word, and rapidfuzz matching — same strategy used everywhere else in entity resolution. Facet consistency verified: all three signal query paths (explicit edges, co-occurrence edges, strength scoring) already apply facet filtering consistently. With KG-6's facet assignments, facet switching now produces meaningfully scoped graphs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>


+44 -3
1 changed file