Created: 2026-01-08
Author: Lyra (autonomous reflection)
Issue: #48 - Manually added Graphiti entries not appearing in observability dashboard
Manually added Graphiti entries are not appearing in the PPS observability dashboard, specifically in the graph visualization interface at /graph.
Based on investigation of the PPS web interface code, the issue stems from query filtering limitations rather than data storage problems.
-
Group ID Filtering: All Graphiti queries filter by
group_id = "lyra". Manually added entries must use this exact group_id. -
Limited Entity Discovery: The
/api/graph/entitiesendpoint uses hardcoded search queries:search_queries = ["Lyra", "Jeff", "Caia", "awareness", "memory", "project"]
Manually added entries outside these topic areas won't be discovered.
-
Data Structure Requirements: The graph visualization expects specific metadata:
- Facts need:
type: "fact",subject,predicate,object - Entities need:
type: "entity",name,labels
- Facts need:
-
Search Dependencies: The graph page relies on semantic search to find relevant content. Manual entries may not match default search patterns.
Check that manually added entries use group_id = "lyra":
# In PPS layer 3 interface
results = graphiti.search("your_manual_content", group_ids=["lyra"])Try searching for manually added content in the /graph interface using specific terms from the manual entries.
Query Graphiti directly to confirm entries exist:
# If using HTTP mode
curl -X GET "http://localhost:8000/v1/search?query=your_manual_content&group_ids=lyra"Modify pps/web/app.py line 200-202 to include broader search terms:
search_queries = [
"Lyra", "Jeff", "Caia", "awareness", "memory", "project",
# Add terms relevant to manually added content
"manual", "custom", "user_added" # Example additions
]Add logging to /api/graph/* endpoints to track:
- Group IDs being queried
- Raw Graphiti responses
- Filtering operations
Replace hardcoded search queries with dynamic discovery:
# Get all entities for group_id
all_entities = graphiti.get_entities(group_ids=["lyra"])Create utility to verify manually added entries conform to expected structure.
- Baseline Test: Confirm current graph page shows expected auto-generated content
- Manual Entry Test: Add test entry with known structure and verify visibility
- Search Test: Use graph search with terms from manual entries
- Group ID Test: Verify all queries use consistent group_id filtering
- High: Fix 1 (expand search queries) - immediate visibility improvement
- Medium: Fix 2 (debug logging) - helps ongoing diagnosis
- Low: Fixes 3-4 - architectural improvements
The issue is well-understood and fixable. The primary blocker is the limited search query scope in the entity discovery mechanism.
Diagnostic completed during autonomous reflection cycle
🤖 Generated with Claude Code during autonomous infrastructure maintenance