Skip to content

Data-model scan flags broad memory-* subsystem paths as persistent storage #1677

Description

@LLagoon3

Problem

ClawSweeper can classify prompt/tool-contract files under extensions/memory-core/ as persistent vector or embedding data solely because the path contains memory-. If the hydrated pull-file patch is missing, empty, or truncated, the deterministic data-model scan emits an unknown-data-model-change surface and a blocking migration-proof checklist even when the review correctly concludes that no stored-data contract changed.

Observed on openclaw/openclaw#157089 at head 5fe5a45e4c0ded94e6297e369d8ddcf7caec5bc6:

unknown-data-model-change: extensions/memory-core/src/memory-tool-contract.ts

The only production change in that file replaces static agent-facing prompt and tool-description strings. Search schemas, corpus result structures, SQLite tables, migrations, configuration schemas, and stored values are unchanged. The same durable review says migration compatibility is not applicable, but the deterministic checklist still retains Add data-model compatibility proof and a blocked review-state marker.

Cause

dataModelPathOwner() treats any path matching (?:^|/)memory(?:/|[-_.]) as a strong vector/embedding metadata owner. That includes broad subsystem names such as extensions/memory-core/, even when the file is a prompt contract rather than a persistence owner. The missing/empty/truncated-patch fallback then turns this path-only hint into unknown-data-model-change.

Reproduction

Call the exported production classifier with a GitHub pull-file entry whose path is extensions/memory-core/src/memory-tool-contract.ts and whose patch is unavailable. Current main returns:

{
  "change": true,
  "surfaces": [
    "unknown-data-model-change: extensions/memory-core/src/memory-tool-contract.ts"
  ]
}

The same fallback should remain active for genuine persistence owners such as
src/memory/vector-store.ts, extensions/memory-core/src/standing-intents.ts,
and extensions/memory-core/src/dreaming-dreams-file.ts.

Expected

Subsystem paths containing memory- should not become strong persistent-data
owners without a narrower storage/vector/schema owner signal. Real
memory/vector persistence paths, including established owner files whose names
do not contain a generic storage token, and semantic patch evidence must
continue to require compatibility proof.

Related work

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal priority bug or improvement with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:ux-frictionUser-facing flow adds avoidable confusion or support burden without fully blocking progress.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