Skip to content
This repository was archived by the owner on Feb 23, 2026. It is now read-only.
This repository was archived by the owner on Feb 23, 2026. It is now read-only.

Personal scope (core-memory) broken: memories stored but not retrievable #1

@mdlopresti

Description

@mdlopresti

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

  1. Call core-memory with test content
  2. Tool returns success + memory ID
  3. Call recall-context with scope: "personal"
  4. 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-memory is 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):

  1. core-memory tool (src/tools/core-memory.ts)

    • Verify scope parameter set to "personal" (✅ VERIFIED - line 105)
    • Check if writing to correct bucket
  2. Storage layer (src/storage/)

    • Is personal-scope bucket being written to?
    • Are writes succeeding but going to wrong location?
  3. recall-context tool (src/tools/recall-context.ts)

    • Verify it queries personal-scope bucket (✅ VERIFIED - uses listFromUserBucket)
    • Check bucket naming consistency
  4. Bucket naming (@loominal/shared bucket helpers)

    • Are bucket names consistent between write and read?
    • Possible mismatch: user vs personal bucket naming?

Code Review

Both tools appear to use correct bucket methods:

  • core-memory.ts line 62: storage.keysFromUserBucket()
  • core-memory.ts line 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

  1. core-memory stores to personal scope bucket
  2. recall-context retrieves from personal scope bucket
  3. Memories persist across projects (personal scope = cross-project)
  4. Core memories never expire (no TTL)

Actual Behavior

  1. core-memory reports success ✅
  2. recall-context returns 0 personal memories ❌
  3. Memories are permanently lost ❌
  4. Personal scope appears completely non-functional ❌

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions