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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions