-
Notifications
You must be signed in to change notification settings - Fork 0
Personal scope (core-memory) broken: memories stored but not retrievable #1
Description
Problem
Memories created with core-memory tool report success but are never retrievable via recall-context. Personal scope consistently returns 0 memories despite successful creation.
Evidence
First reported: December 16, 2025 (during memory migration)
Re-confirmed: December 26, 2025 (bug still present in v0.4.0)
Reproduction Steps
- Call
core-memorywith test content - Tool returns success + memory ID
- Call
recall-contextwithscope: "personal" - Result: 0 memories returned
Actual Test Results (Dec 26, 2025)
{
"personal": [],
"counts": {
"personal": 0
}
}Export with includeExpired: true also returns 0 memories (168 bytes = empty JSON structure).
Lost Data
Two core memories from Dec 16 are permanently lost:
- Memory ID:
7426e755-66bd-43b3-816f-4313c1e9f4df(Vikunja MCP config) - Memory ID:
e01f8993-2623-4194-891f-834a1471cb90(Projects & Goals)
Impact
Severity: HIGH 🔴
core-memoryis designed for identity-defining personal memories- Personal scope should follow user across ALL projects (core feature)
- Core memories limited to 100 per agent (precious, curated data)
- Data appears stored somewhere but is unretrievable
- Breaks cross-project agent identity persistence
Investigation Areas
From original bug report (Dec 16):
-
core-memory tool (
src/tools/core-memory.ts)- Verify scope parameter set to
"personal"(✅ VERIFIED - line 105) - Check if writing to correct bucket
- Verify scope parameter set to
-
Storage layer (
src/storage/)- Is personal-scope bucket being written to?
- Are writes succeeding but going to wrong location?
-
recall-context tool (
src/tools/recall-context.ts)- Verify it queries personal-scope bucket (✅ VERIFIED - uses
listFromUserBucket) - Check bucket naming consistency
- Verify it queries personal-scope bucket (✅ VERIFIED - uses
-
Bucket naming (
@loominal/sharedbucket helpers)- Are bucket names consistent between write and read?
- Possible mismatch:
uservspersonalbucket naming?
Code Review
Both tools appear to use correct bucket methods:
core-memory.tsline 62:storage.keysFromUserBucket()core-memory.tsline 116:buildKey(agentId, 'core', memoryId, 'personal')recall-context.ts:storage.listFromUserBucket()for personal scope
Both reference "UserBucket" which appears to be the implementation name for personal scope.
Workaround
Use remember with explicit scope: "personal" instead of core-memory to test if issue is specific to core-memory tool or affects all personal-scope writes.
Environment
- Pattern version: v0.4.0
- Agent ID:
5e77acfc77c69a8c6e2561f7b98b03b0 - Project ID:
0000000000000001 - First reported: v0.3.x (Dec 16)
- Still present: v0.4.0 (Dec 26)
Expected Behavior
core-memorystores to personal scope bucketrecall-contextretrieves from personal scope bucket- Memories persist across projects (personal scope = cross-project)
- Core memories never expire (no TTL)
Actual Behavior
core-memoryreports success ✅recall-contextreturns 0 personal memories ❌- Memories are permanently lost ❌
- Personal scope appears completely non-functional ❌