fix(memory): Initialize GoalExecutor singleton with username and validate Qdrant deletes #1
Reference in New Issue
Block a user
Delete Branch "fix-autonomous-memory-purge"
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?
This PR addresses the "memory poisoning paradox" during
blank_start.Bug 1: The Initialization Leak (Stale PathMemory)
QNavGraphinstantiatesGoalExecutor.get_instance(device)during startup. Becausebot_usernamewasn't passed,GoalExecutorinstantiated thePathMemorycomponent utilizing the defaultbot_username=""string.PathMemoryto the generic collectiongoap_paths_v1.blank_startwiped the specific collectiongoap_paths_v1_marisaundmarc, but since the singleton was usinggoap_paths_v1, it retained the stale memories.GoalExecutor.get_instance(device, username)inbot_flow.pybeforeQNavGraphgets built.Bug 2: The "Poisoned Memory" Paradox in Qdrant Logs
.delete()returns success (200 OK) unconditionally — it doesn't care if the document exists. Thedelete_pointmethod was blindly logging a successful purge whenever the Unlearn mechanic triggered, regardless of whether the vector had actually been deleted by the agent or byblank_startearlier.client.retrieve(ids=[point_id])validation check inqdrant_memory.py'sdelete_point. If the point was wiped by a globalblank_startand doesn't exist anymore, it skips the log.Pull request closed