Evidence: harness probe 2026-07-27 (glm-4.7-flash arm, report at /opt/remember-stack/.benchmark-runs/v4-glm2/harness-probe-grok-45.md). Grok-4.5 as API consumer: graph_neighborhood for Caroline returned nodes but empty edge lists, so there was no way to see how Caroline connects to the LGBTQ support group without already possessing a relation_id to feed explain.
The P2 graph for this store is not empty — projections published 108 RELATES and 161 MENTIONED_IN rows — so either the recipe queries the wrong edge set, filters everything out, or the response envelope drops edges.
To reproduce: POST /recipe/graph_neighborhood with Caroline's entity_id on the current v4-glm2 store and compare against select count(*) from the P2 edge tables for that entity.
Acceptance: neighborhood output includes typed edges with endpoint entity names for an entity that has RELATES rows, and a harness consumer can go entity → edge → explain(relation_id) without prior knowledge.
Evidence: harness probe 2026-07-27 (glm-4.7-flash arm, report at
/opt/remember-stack/.benchmark-runs/v4-glm2/harness-probe-grok-45.md). Grok-4.5 as API consumer:graph_neighborhoodfor Caroline returned nodes but empty edge lists, so there was no way to see how Caroline connects to the LGBTQ support group without already possessing arelation_idto feedexplain.The P2 graph for this store is not empty — projections published 108 RELATES and 161 MENTIONED_IN rows — so either the recipe queries the wrong edge set, filters everything out, or the response envelope drops edges.
To reproduce:
POST /recipe/graph_neighborhoodwith Caroline's entity_id on the current v4-glm2 store and compare againstselect count(*) fromthe P2 edge tables for that entity.Acceptance: neighborhood output includes typed edges with endpoint entity names for an entity that has RELATES rows, and a harness consumer can go entity → edge →
explain(relation_id)without prior knowledge.