fix(ui,kg): fix credential user picker, KG filters, graph limits, and traversal depth

- Fix MCP/CLI credential dialogs: separate search text from selected user ID
  to prevent keystroke-as-selection bug (use onSelect pattern)
- Fix Combobox: suppress value-sync after selection to prevent label flicker
- Fix MCP dialog: prevent full-page spinner flash when switching users
- Fix KG page filter: replace session-based scope with stats-based user_ids
  from KG entities (more reliable user list)
- Increase KG graph visualization limit from 50 to 200 nodes with optimized
  D3 force layout breakpoints for 100+/150+ nodes
- Cap graph API server-side limit at 500 to prevent unbounded queries
- Increase KG traversal max_depth from 3 to 5 (HTTP API + agent tool)
- Add dedicated Zustand store for KG detail dialog (isolated from main graph)
- Add depth selector UI (2-5 hops) in entity detail dialog
This commit is contained in:
viettranx committed 2026-04-03 16:45:00 +07:00
1 parent 929dcd20c2
commit c2bd5349e5
16 files changed
+190 -60

No files matched your search

+2 -2
View File
@@ -50,7 +50,7 @@ func (t *KnowledgeGraphSearchTool) Parameters() map[string]any {
},
"max_depth": map[string]any{
"type": "number",
"description": "Maximum traversal depth (default 2, max 3)",
"description": "Maximum traversal depth (default 2, max 5)",
},
},
"required": []string{"query"},
@@ -76,7 +76,7 @@ func (t *KnowledgeGraphSearchTool) Execute(ctx context.Context, args map[string]
entityID, _ := args["entity_id"].(string)
maxDepth := 2
if md, ok := args["max_depth"].(float64); ok && md > 0 {
maxDepth = min(int(md), 3)
maxDepth = min(int(md), 5)
}
// Traversal mode: entity_id provided