memory_edge_search silently returns empty for partial UUIDs instead of matching or erroring #3
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: cal/claude-memory#3
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bug
memory_edge_searchwithfrom_idorto_idaccepts partial UUIDs (e.g.,e6158e53) without error but returns empty results, even when edges exist for the full UUID (e6158e53-af06-40f7-bfd1-32fc481a2b3f).Steps to reproduce
e6158e53-af06-40f7-bfd1-32fc481a2b3fmemory_edge_search(from_id="e6158e53")→ returns[]memory_edge_search(from_id="e6158e53-af06-40f7-bfd1-32fc481a2b3f")→ returns the edgeExpected behavior
Either:
git log abc123matches commitabc12345...)"Invalid UUID format"or"No memory found for ID: e6158e53"Why this matters
The memory-saver subagent uses short IDs from
memory_storeresponses (e.g.,e6158e53) when callingmemory_relateandmemory_edge_search. The silent empty response made it appear that edges weren't being created, when they actually were —memory_relateapparently does handle short IDs (or the agent had full IDs). The inconsistency between tools caused a misleading debugging session.Recommendation
Prefix matching (git-style) would be the most ergonomic fix, applied consistently across
memory_edge_search,memory_relate,memory_get, andmemory_related.