Skip to content

Feature: bundled @openclaw/memory-lancedb should register publicArtifacts.listArtifacts for memory-wiki bridge parity with memory-core #83604

Description

@islandpreneur007

Summary

Bundled @openclaw/memory-lancedb (in this monorepo at extensions/memory-lancedb/) does not register the publicArtifacts.listArtifacts capability that memory-wiki bridge mode consumes. When plugins.slots.memory is set to memory-lancedb, the wiki bridge returns 0 artifacts despite MEMORY.md, daily memory notes, and dream-report markdown all being present on disk.

Bundled memory-core implements the contract cleanly at extensions/memory-core/index.ts:178 (compiled at dist/extensions/memory-core/index.js:247-253):

api.registerMemoryCapability({
    ...,
    publicArtifacts: { async listArtifacts(params) {
        const { listMemoryCorePublicArtifacts } = await import("../../public-artifacts-6GujWdJO.js");
        return await listMemoryCorePublicArtifacts(params);
    } },
});

Verification on v2026.5.12

$ grep -rE "publicArtifacts|listArtifacts|registerMemoryCapability" \
    .../extensions/memory-lancedb/dist/
# empty — no matches

$ grep -nE "publicArtifacts|listArtifacts|registerMemoryCapability" \
    .npm-global/.../memory-core/dist/index.js
247:    api.registerMemoryCapability({
251:        publicArtifacts: { async listArtifacts(params) {
252:            const { listMemoryCorePublicArtifacts } = await import("../../public-artifacts-6GujWdJO.js");
253:            return await listMemoryCorePublicArtifacts(params);

Context: scope rule from #81321

#81321 closed the Honcho equivalent request as external-plugin scope, citing VISION.md (external plugins host in their own repos, ClawHub handles distribution). That rule doesn't apply here: bundled @openclaw/memory-lancedb lives in this repo at extensions/memory-lancedb/. Its package.json repository field is https://github.com/openclaw/openclaw. It's one of two memory-kind slot options shipped in core; the other (memory-core) implements the contract.

Independent proof the implementation is small

A third-party OpenClaw operator patched their installed @openclaw/memory-lancedb to register publicArtifacts.listArtifacts and reported successful first-load:

  • 120 artifacts exported (3 memory-root, 114 daily-note, 3 dream-report, 1 generated curated-memory markdown)
  • No vectors and no LanceDB internals leaked through the public surface
  • node --check passed on the patched file

That suggests a contained PR mirroring memory-core's listMemoryCorePublicArtifacts import + delegation would close the gap without core changes.

Request

Add publicArtifacts.listArtifacts registration to bundled @openclaw/memory-lancedb, following the memory-core pattern (delegate to a shared or memory-lancedb-specific listPublicArtifacts helper that surfaces MEMORY.md, daily notes, and dream-report markdown — no vectors, no LanceDB internals).

Alternative: if this is intentionally out of scope, please document explicitly in concepts/active-memory.md and concepts/memory-wiki.md that memory-lancedb slot does not support bridge mode, so users don't silently end up with a starved bridge.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions