Skip to content

feat(memory): add multi-slot memory role architecture#86210

Closed
kklouzal wants to merge 76 commits into
openclaw:mainfrom
kklouzal:feat/multi-slot-memory-architecture
Closed

feat(memory): add multi-slot memory role architecture#86210
kklouzal wants to merge 76 commits into
openclaw:mainfrom
kklouzal:feat/multi-slot-memory-architecture

Conversation

@kklouzal

@kklouzal kklouzal commented May 24, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR adds a purpose-specific memory role-slot contract so memory plugins can compose instead of replacing each other through one global plugins.slots.memory selector.

What changes:

  • Adds canonical memory role slots: memory.recall, memory.compaction, memory.capture, memory.dreaming, and memory.userModel.
  • Keeps legacy plugins.slots.memory as a backward-compatible recall shorthand during an extended migration window.
  • Adds per-agent memory role-slot overrides under agents.list[*].plugins.slots, limited to memory roles plus legacy memory.
  • Wires role-slot selection through config schema/types/help/docs, plugin activation, gateway startup preloading, runtime memory resolution, skill publishing, validation, doctor repair/preview, uninstall cleanup, status diagnostics, and SDK-facing aliases.
  • Preserves the existing global plugins.slots.contextEngine path for LosslessClaw and other context-engine plugins.
  • Explicitly rejects unsupported per-agent agents.list[*].plugins.slots.contextEngine overrides, because agent-scoped context-engine semantics are out of scope for this PR.

Why this matters:

  • Advanced OpenClaw users are already operating layered memory stacks: factual recall, context compaction, auto-capture, dreaming/consolidation, and inferred user modeling are distinct concerns.
  • The previous single memory slot forced useful plugins into workarounds such as context-engine ownership, sidecars, or global replacement of the primary recall plugin.
  • This branch makes the config contract match the memory architecture users are trying to run while keeping the migration path conservative.

Intended outcome:

  • memory-core can remain the factual recall owner while other plugins own capture, compaction, dreaming, or user-model roles.
  • Existing configs using plugins.slots.memory continue to work.
  • openclaw doctor --fix copies non-conflicting legacy plugins.slots.memory values into plugins.slots["memory.recall"] but keeps the legacy key in place for plugin compatibility.
  • Plugin lifecycle and diagnostics treat role-slot-selected memory plugins as intentionally active across startup, validation, skill publishing, runtime resolution, and cleanup.

Out of scope:

  • This does not replace or remove plugins.slots.contextEngine; LosslessClaw and other context engines continue to use the existing global contextEngine slot.
  • This does not add agent-scoped contextEngine semantics.
  • This does not implement the owner-provenance object shape proposed in RFC: machine-readable memory-slot ownership — plugins.slots.<slot>.owner #70823.
  • This does not require third-party plugins to implement every memory role immediately.

Linked context

Closes #60572.

Directly related memory-composition requests and prior proposals:

Dreaming and memory-role separation context:

Runtime/diagnostic slot handling context:

Context-engine compatibility context:

Future API/RFC context:

Real behavior proof

  • Behavior or issue addressed: Current-head proof refresh for PR feat(memory): add multi-slot memory role architecture #86210 at 23a29722524c982f9ed410610395e1db0363857e, covering the multi-slot memory role contract, the latest recall-default cleanup, Hermes migration regression coverage for plugins.slots["memory.recall"], legacy plugins.slots.memory doctor compatibility, per-agent memory role routing coverage, context-engine slot compatibility, and exact-head CI signal.
  • Real environment tested: Exact-head deterministic/upgrade proof ran on the available paired proof-host route via [REDACTED] host [REDACTED], checkout [REDACTED], Node v22.22.2, pnpm 11.2.2, OpenClaw 2026.5.28 (23a2972), artifact [REDACTED]/proof-refresh-23a2972252-20260528T172630Z.
  • Exact steps or command run after this patch: Fetched kklouzal:feat/multi-slot-memory-architecture, detached the proof checkout to 23a29722524c982f9ed410610395e1db0363857e, then ran corepack pnpm install --frozen-lockfile, corepack pnpm build:strict-smoke, focused memory/config/Hermes regression suites, agentic shard, plugin memory tests, command/config memory tests, extension memory tests, corepack pnpm tsgo:prod, git diff --check origin/main...HEAD, a legacy-memory doctor --fix upgrade harness, a plugins.slots.contextEngine = "lossless-claw" config-compatibility harness, openclaw models status --probe --json, GitHub Copilot live-auth probes, and Honcho availability probes.
  • Evidence after fix: Redacted runtime logs are preserved on the proof host at the artifact path above; copied redacted excerpts below are included for maintainer-visible review. GitHub proof gate for the pushed head also passed: https://github.com/openclaw/openclaw/actions/runs/26588940267/job/78342338941.
[REDACTED] environment.txt
head=23a29722524c982f9ed410610395e1db0363857e
node=v22.22.2
pnpm=11.2.2
openclaw=OpenClaw 2026.5.28 (23a2972)
[REDACTED] redacted/03-focused-memory-tests.log
node scripts/run-vitest.mjs run extensions/migrate-hermes/provider.test.ts extensions/memory-wiki/src/bridge.test.ts extensions/active-memory/index.test.ts src/config/config-misc.test.ts src/config/config.plugin-validation.test.ts src/commands/doctor/shared/legacy-memory-slot.test.ts src/commands/status.scan.shared.test.ts src/plugins/effective-plugin-ids.test.ts src/plugins/loader.test.ts src/plugins/config-state.test.ts
Test Files 10 passed (10)
Tests 496 passed (496)
[REDACTED] redacted/04-agentic-shard.log
[test] passed 3 Vitest shards in 65.22s
Test Files 76 passed (76)
Tests 1260 passed (1260)
[REDACTED] redacted/05-plugin-memory-tests.log
Test Files 5 passed (5)
Tests 320 passed (320)

[REDACTED] redacted/06-command-config-memory-tests.log
Test Files 1 passed (1)
Tests 14 passed (14)

[REDACTED] redacted/07-extension-memory-tests.log
Test Files 1 passed (1)
Tests 126 passed (126)
Test Files 1 passed (1)
Tests 11 passed (11)
[REDACTED] redacted/10b-legacy-memory-doctor-compat.log
plugins.slots.memory: copied legacy memory slot to memory.recall (memory-core) and kept the legacy key for plugin compatibility.
plugins.slots.memory: legacy memory slot remains for plugin compatibility; use memory.recall as the canonical selector.
{"valid":true,"path":"[REDACTED]"}
{
  "legacy": "memory-core",
  "recall": "memory-core",
  "slots": {
    "memory": "memory-core",
    "memory.recall": "memory-core"
  }
}
[REDACTED] redacted/11-context-engine-lossless-config.log
{"valid":true,"path":"[REDACTED]"}
{
  "slot": "lossless-claw",
  "present": false,
  "status": null,
  "enabled": null
}
[REDACTED] command-summary.json
"head": "23a29722524c982f9ed410610395e1db0363857e"
"deterministicOk": true
"deterministicFailures": []
required gates included install, build:strict-smoke, focused-memory-tests, agentic-shard, plugin-memory-tests, command-config-memory-tests, extension-memory-tests, tsgo:prod, diff-check, legacy-memory-doctor-compat, context-engine-lossless-config, and models-status-probe.
  • Observed result after fix: The exact current head validates the latest canonical recall-default behavior and Hermes migration regression, with extensions/migrate-hermes/provider.test.ts included in the 10-file focused suite. The upgrade harness confirms doctor --fix copies plugins.slots.memory = "memory-core" into plugins.slots["memory.recall"] = "memory-core" while retaining the legacy key for third-party compatibility. The role-slot deterministic gates, agentic shard, type gate, and diff check all passed at the current pushed head.
  • What was not tested: Authenticated GitHub Copilot inference, Honcho ask/status, and installed LosslessClaw runtime execution were not available on this proof host at refresh time. The exact-head logs preserve the negative checks: github-copilot/gpt-5.4-mini direct inference failed with No API key found for provider "github-copilot"; the live-model harness reported no API keys found; skipping; lossless-claw config validation passed but the plugin was not installed in the derived registry; local Honcho health did not respond. The stale bb771d live output has therefore been removed rather than reused.
  • Proof limitations or environment constraints: The host route available through this lane exposed the dedicated PR checkout and deterministic proof environment, but not the expected live github-copilot, Honcho, or LosslessClaw auth/runtime state. This PR-body refresh is exact-head proof for the config/default/migration changes and accurately records the unavailable live lanes.

Implementation notes

  • Adds src/plugins/slot-resolution.ts as the shared role-slot helper layer for canonical memory role keys, defaults, normalization, effective per-agent resolution, and configured selection collection.
  • Updates config schema/types/help/labels/docs for global and per-agent memory role slots.
  • Keeps PluginSlotsConfig.contextEngine for global plugin slots, and adds an agent-slot type/schema that omits contextEngine.
  • Updates doctor legacy memory-slot handling so doctor --fix canonicalizes to memory.recall while retaining legacy memory during the compatibility window.
  • Updates plugin loader/activation/startup resolution so explicit role-slot selections activate memory plugins without confusing default memory-core fallback with a user-selected plugin under restrictive allowlists.
  • Extends validation to report missing role-slot plugin refs and validate schemas for plugins selected only by non-recall or per-agent memory roles.
  • Extends skill publishing, status scanning, uninstall cleanup, memory runtime, dreaming, compaction provider, and SDK alias behavior to use the role-aware model.
  • Keeps memory runtime registrations addressable by plugin id, so runtime recall dispatch follows the resolved global or per-agent memory.recall owner.
  • Passes the session agent id into Pi embedded extension factory construction so safeguard compaction provider selection honors per-agent memory.compaction overrides in both normal session runs and manual/queued compaction paths.
  • Updates bundled memory plugin manifests/docs to describe role support and the recall shorthand migration.

Compatibility and risk

Backward compatibility preserved:

  • Existing plugins.slots.memory configs continue to resolve as recall selection.
  • doctor --fix now keeps the legacy plugins.slots.memory key in place after copying to memory.recall, so third-party plugins that still read only the legacy key do not hit an immediate flag day.
  • The default recall plugin remains memory-core unless explicitly disabled or overridden.
  • plugins.enabled = false, denylist behavior, and explicit plugins.entries.<id>.enabled = false remain respected.
  • Global plugins.slots.contextEngine remains separate from memory roles and continues to select context engines such as LosslessClaw.

Compatibility changes reviewers should inspect:

  • memory.recall, memory.compaction, memory.capture, memory.dreaming, and memory.userModel become durable public config keys after merge.
  • Per-agent plugin-slot overrides are memory-only. agents.list[*].plugins.slots.contextEngine is intentionally rejected until a future PR defines and implements agent-scoped context-engine semantics.
  • Legacy plugins.slots.memory is still deprecated as a canonical authoring target even though it remains supported and retained for compatibility.

Primary risks:

  • The public memory role taxonomy becomes API surface after merge, so naming and docs need maintainer signoff.
  • Role-gating mistakes could attach the wrong memory provider or suppress expected memory behavior; this PR adds focused coverage across loader, validation, startup, runtime, doctor, status, skill publishing, and cleanup surfaces.
  • Third-party plugins should eventually read memory.recall, but the retained legacy key avoids forcing that ecosystem update immediately.

Verification

Current pushed head:

  • 23a29722524c982f9ed410610395e1db0363857e (fix(memory): polish recall slot defaults)

Exact-head proof-host artifact:

  • [REDACTED]/proof-refresh-23a2972252-20260528T172630Z
  • Host/runtime: [REDACTED], Node v22.22.2, pnpm 11.2.2, OpenClaw 2026.5.28 (23a2972).
  • command-summary.json: deterministicOk=true, deterministicFailures=[].

Exact-head local proof gates:

  • corepack pnpm install --frozen-lockfile: passed.
  • corepack pnpm build:strict-smoke: passed.
  • Focused memory/config/Hermes suite: passed, 10 files / 496 tests.
  • Agentic shard: passed, 3 Vitest shards, including 76 files / 1260 tests in the agent shard.
  • Plugin memory suite: passed, 5 files / 320 tests.
  • Command/config memory suite: passed, 1 file / 14 tests.
  • Active-memory extension suite: passed, 1 file / 126 tests.
  • Memory-wiki bridge suite: passed, 1 file / 11 tests.
  • corepack pnpm tsgo:prod: passed.
  • git diff --check origin/main...HEAD: passed.
  • Legacy memory doctor compatibility harness: passed; doctor --fix copied memory to memory.recall and retained the legacy key as designed.
  • Context-engine/LosslessClaw config-compat harness: passed config validation for plugins.slots.contextEngine = "lossless-claw"; installed runtime execution was unavailable because the plugin was not installed on the proof host.
  • node openclaw.mjs models status --probe --json: completed and documented the host's current missing live auth state.

Current GitHub Actions signal for pushed head 23a29722524c982f9ed410610395e1db0363857e at body refresh time:

  • Real behavior proof: passed.
  • check-lint: passed.
  • check-prod-types: passed.
  • check-docs: passed.
  • Security High (network-ssrf-boundary): passed.
  • Security High (core-auth-secrets): passed.
  • Critical quality shards shown by gh pr checks are green except Critical Quality (core-auth-secrets), which GitHub reports as failed/cancelled after 25m5s with no failed-step log or assertion output in gh run view.

Live proof limitation:

  • The previous body included live GitHub Copilot and Honcho excerpts from stale head bb771d08911d361241d402bf684ca41645623f02. Those excerpts are no longer claimed as current-head proof.
  • Exact-head live probes on the available proof host did not have the expected live auth/runtime state: github-copilot auth was missing for the main agent, the GitHub Copilot live harness skipped due to no API keys, lossless-claw was not installed in the plugin registry, and local Honcho health did not respond.

@openclaw-barnacle openclaw-barnacle Bot added docs Improvements or additions to documentation gateway Gateway runtime extensions: memory-lancedb Extension: memory-lancedb cli CLI command changes commands Command implementations agents Agent runtime and tooling extensions: qa-lab plugin: migrate-hermes size: XL triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels May 24, 2026
@clawsweeper

clawsweeper Bot commented May 24, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed May 30, 2026, 7:48 PM ET / 23:48 UTC.

Summary
The branch adds global and per-agent memory role slots, legacy memory-slot migration, role-aware plugin activation/runtime routing, diagnostics, docs, SDK/package updates, and broad regression coverage.

Reproducibility: not applicable. this is a feature/config architecture PR rather than a bug report. Current main source shows only the legacy memory/contextEngine slot contract, while the PR proposes the new role-slot behavior.

Review metrics: 2 noteworthy metrics.

  • Config/default surfaces: 5 role keys added, 1 legacy key retained, 1 per-agent slot surface added. These become public upgrade and plugin-author contracts, so compatibility and migration behavior need maintainer acceptance before merge.
  • Dependency graph surfaces: 10 dependency-related files changed; dependency-guard failed. External PR dependency graph changes are a security/supply-chain gate, not a normal CI cleanup item.

Merge readiness
Overall: 🧂 unranked krab
Proof: 🦪 silver shellfish
Patch quality: 🧂 unranked krab
Result: blocked until stronger real behavior proof is added.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • Remove or explicitly security-authorize the dependency graph changes for the exact head.
  • Resolve the dirty merge state and refresh exact-head real behavior proof with redacted logs or artifacts.
  • Get maintainer signoff on the public memory role-slot config/API and plugin trust-boundary contract.

Proof guidance:

  • [P1] Needs stronger real behavior proof before merge: The PR body contains detailed redacted logs, but they cite 23a2972 while the latest head is e113bec, so exact-head proof needs refresh after the force-push. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Risk before merge

  • [P1] GitHub currently reports the PR as dirty, so maintainers cannot trust the exact merge result until the branch is rebased or conflicts are resolved.
  • [P1] The current head changes package manifests, lockfiles, and shrinkwrap files, and the dependency graph guard explicitly blocks those external PR changes without exact-head security authorization.
  • [P1] The PR adds durable global and per-agent memory role config keys plus a legacy migration window, making this a compatibility and upgrade contract decision rather than a routine code change.
  • [P1] Role-selected memory plugins become active across startup, runtime resolution, hooks, skills, diagnostics, and cleanup, expanding plugin trust and session-state behavior beyond the old recall slot.
  • [P1] The real-behavior proof in the PR body is detailed but tied to an older head, so exact-head proof must be refreshed for e113bec after conflict/dependency cleanup.

Maintainer options:

  1. Resolve the dependency guard first (recommended)
    Remove the manifest, lockfile, and shrinkwrap dependency graph changes from this PR, or get explicit OpenClaw security approval for the exact current head before merge.
  2. Refresh exact-head compatibility proof
    After the dirty merge state is resolved, rerun the memory role-slot, doctor migration, per-agent routing, plugin activation, and dependency checks on the rebased head.
  3. Accept the new memory role contract
    Maintainers may intentionally accept the new public config/API and plugin trust-boundary contract, but that decision should be explicit before merge.

Next step before merge

  • [P1] Manual review is required because the remaining blockers are API/product ownership, dependency/security authorization, dirty merge resolution, and exact-head proof rather than a narrow mechanical repair.

Security
Needs attention: The diff introduces a concrete supply-chain review blocker by changing dependency graph files from an external PR without the required security authorization.

Review findings

  • [P1] Remove the unapproved dependency graph change — package.json:1864
Review details

Best possible solution:

Land a narrower rebased branch only after maintainers accept the memory role-slot config/API contract, dependency graph changes are removed or security-authorized, and exact-head upgrade/session proof passes.

Do we have a high-confidence way to reproduce the issue?

Not applicable: this is a feature/config architecture PR rather than a bug report. Current main source shows only the legacy memory/contextEngine slot contract, while the PR proposes the new role-slot behavior.

Is this the best way to solve the issue?

Unclear: role slots are a plausible maintainable solution to the linked memory-composition request, but the current branch bundles blocked dependency graph changes and needs maintainer API/security signoff before it is the best landing shape.

Full review comments:

  • [P1] Remove the unapproved dependency graph change — package.json:1864
    package.json adds a root dependency while this head also changes lock/shrinkwrap/package manifest graph files. The repository dependency guard explicitly blocks external PR dependency graph changes unless security authorizes the exact head, so this cannot merge until those graph changes are removed or approved.
    Confidence: 0.94

Overall correctness: patch is incorrect
Overall confidence: 0.88

AGENTS.md: found and applied where relevant.

Codex review notes: model gpt-5.5, reasoning high; reviewed against 6270d5326f9f.

Label changes

Label changes:

  • add rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🦪 silver shellfish and patch quality is 🧂 unranked krab.
  • add status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: The PR body contains detailed redacted logs, but they cite 23a2972 while the latest head is e113bec, so exact-head proof needs refresh after the force-push. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
  • remove rating: 🐚 platinum hermit: Current PR rating is rating: 🧂 unranked krab, so this older rating label is no longer current.
  • remove status: 👀 ready for maintainer look: Current PR status label is status: 📣 needs proof.

Label justifications:

  • P2: This is a normal-priority feature/config architecture PR with broad blast radius but no emergency user outage by itself.
  • merge-risk: 🚨 compatibility: The PR adds and migrates public plugin slot config keys, including per-agent overrides and legacy memory shorthand behavior.
  • merge-risk: 🚨 session-state: Per-agent memory role routing affects recall, compaction, prompt assembly, memory runtime selection, and agent-scoped plugin state.
  • merge-risk: 🚨 security-boundary: The PR expands which memory plugins are intentionally active across runtime/hooks/skills and also changes dependency graph files blocked by the dependency guard.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🦪 silver shellfish and patch quality is 🧂 unranked krab.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: The PR body contains detailed redacted logs, but they cite 23a2972 while the latest head is e113bec, so exact-head proof needs refresh after the force-push. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
Evidence reviewed

Security concerns:

  • [high] Unapproved dependency graph changes — package.json:1864
    The current head changes root/package manifests, lockfiles, and shrinkwrap files, and the dependency-guard check failed with the repository policy that external PR dependency graph changes require security authorization for the exact head.
    Confidence: 0.94

What I checked:

  • Repository policy read: Read the full root AGENTS.md and scoped guides for the touched plugin, extension, ACPX, agent, docs, UI, scripts, and SDK surfaces; the compatibility, dependency, and plugin-boundary guidance directly affects this review. (AGENTS.md:1, 6270d5326f9f)
  • Current main slot contract: Current main exposes only the legacy memory slot and contextEngine in PluginSlotsConfig, so the PR is adding new public config surface rather than duplicating an already-landed implementation. (src/config/types.plugins.ts:41, 6270d5326f9f)
  • PR adds memory role config surface: The PR diff adds memory.recall, memory.compaction, memory.capture, memory.dreaming, and memory.userModel while retaining legacy memory as shorthand. (src/config/types.plugins.ts:42, e113beccaf54)
  • Dirty merge state: GitHub's pull API reports mergeable=false and mergeable_state=dirty for the current head, so exact merge behavior still needs conflict resolution before final approval. (e113beccaf54)
  • Dependency graph blocker: The dependency guard identifies 10 dependency-related files on the first PR files page and the current head has a failing dependency-guard check; the guard comment says external PR dependency graph changes are blocked unless security authorizes the exact head. (package.json:1864, e113beccaf54)
  • Exact-head proof mismatch: The PR body's real-behavior proof cites 23a2972, but the current head is e113bec after a force push. (e113beccaf54)

Likely related people:

  • steipete: Peter Steinberger introduced the memory runtime through-plugin refactor and recently refreshed release/changelog surfaces that this branch also touches. (role: feature-history owner and recent area contributor; confidence: high; commits: cad83db8b2f7, 0f5a77d05872, 31099ccb1fc1; files: src/plugins/memory-runtime.ts, src/plugins/memory-state.ts, CHANGELOG.md)
  • Takhoffman: Tak Hoffman handled recent memory runtime auto-enable and shutdown regressions on the same runtime-loading path this PR changes. (role: adjacent runtime owner; confidence: medium; commits: 63e35b2d9d05, ec122796f864; files: src/plugins/memory-runtime.ts)
  • vincentkoc: Vincent Koc recently worked on plugin activation provenance and dependency/package changes, both relevant to this PR's public config and dependency graph surfaces. (role: activation and dependency-surface contributor; confidence: medium; commits: 982383338373, 49d6efc65b38; files: src/plugins/config-activation-shared.ts, package.json, pnpm-workspace.yaml)
  • pradeep7127: The prior merged dreaming-engine memory-slot loader bypass is directly related to memory-plugin coexistence and role separation. (role: adjacent memory-loader contributor; confidence: medium; commits: 5fde14b84401; files: src/plugins/loader.ts)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@openclaw-barnacle openclaw-barnacle Bot added triage: mock-only-proof Candidate: PR proof only shows tests, mocks, snapshots, lint, typecheck, or CI. triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. proof: supplied External PR includes structured after-fix real behavior proof. and removed triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. triage: mock-only-proof Candidate: PR proof only shows tests, mocks, snapshots, lint, typecheck, or CI. labels May 24, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. labels May 24, 2026
@clawsweeper

clawsweeper Bot commented May 24, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper PR egg: 🔥 warming; proof passed, review follow-up or readiness checks remain. Hatch with @clawsweeper hatch when eligible.

Rules and details

Hatchability:

  • Merged PRs are hatchable.
  • Open PRs are hatchable when they are status: 👀 ready for maintainer look, status: 🚀 automerge armed, or labeled clawsweeper:automerge.
  • Closed unmerged PRs are hatchable only when one of those hatchable labels is still present in the durable record.

About:

  • Eggs appear after real-behavior proof passes. They are collectible flavor only.
  • Review momentum changes the shell state: follow-up work warms it, re-review makes it wobble, and a clean final review lets it hatch.
  • The hatch is seeded from this repository and PR number, so the same PR keeps the same creature; the reviewed head SHA can only change safe visual details.
  • Rarity is just collectible sparkle: 🥚 common, 🌱 uncommon, 💎 rare, ✨ glimmer, and 🌈 legendary.

@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 24, 2026
@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels May 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Dependency Guard

This PR changes dependency-related files. Maintainers should confirm these changes are intentional.

Changed files:

  • extensions/copilot/package.json
  • extensions/feishu/npm-shrinkwrap.json
  • extensions/feishu/package.json
  • extensions/workboard/package.json
  • npm-shrinkwrap.json
  • package.json
  • packages/net-policy/package.json
  • packages/sdk/package.json
  • pnpm-lock.yaml
  • pnpm-workspace.yaml

Maintainer follow-up:

  • Review whether the dependency changes are intentional.
  • Inspect resolved package deltas when lockfile, shrinkwrap, or workspace dependency policy changes are present.
  • Treat package-lock.json and npm-shrinkwrap.json diffs as security-review surfaces.
  • Run pnpm deps:changes:report -- --base-ref origin/main --markdown /tmp/dependency-changes.md --json /tmp/dependency-changes.json locally for detailed release-style evidence.

@github-actions

Copy link
Copy Markdown
Contributor

Dependency graph changes are blocked

OpenClaw does not accept dependency graph changes through PRs unless security explicitly authorizes the current head SHA. Dependency updates are generated internally by maintainers so external PRs cannot change the resolved graph.

Detected dependency graph changes:

  • extensions/feishu/npm-shrinkwrap.json changed.
  • npm-shrinkwrap.json changed.
  • pnpm-lock.yaml changed.
  • extensions/copilot/package.json changed version.
  • extensions/feishu/package.json changed peerDependencies, version.
  • extensions/workboard/package.json changed peerDependencies, version.
  • package.json changed dependencies, version.
  • packages/net-policy/package.json changed dependencies, name, version.
  • packages/sdk/package.json changed dependencies.

Auto-scrub was not attempted because this PR changes package manifest dependency graph fields:

  • extensions/copilot/package.json changed version.
  • extensions/feishu/package.json changed peerDependencies, version.
  • extensions/workboard/package.json changed peerDependencies, version.
  • package.json changed dependencies, version.
  • packages/net-policy/package.json changed dependencies, name, version.
  • packages/sdk/package.json changed dependencies.

Dependency graph changes must be reviewed by security or handled by maintainers internally. Please remove lockfile changes manually if they are not needed.

To remove lockfile changes, restore them from the target branch:

git fetch origin
git checkout 'origin/main' -- 'extensions/feishu/npm-shrinkwrap.json' 'npm-shrinkwrap.json' 'pnpm-lock.yaml'
git commit -m 'chore: remove dependency lockfile change'
git push

If this PR intentionally needs a dependency graph change, ask a member of @openclaw/openclaw-secops to comment:

/allow-dependencies-change

The action will approve the current head SHA (e113beccaf545600f4afe3a262a373979c85db1b) when it reruns. A later push requires a fresh approval.

@kklouzal

kklouzal commented May 31, 2026

Copy link
Copy Markdown
Contributor Author

Closing this stale release-base PR. The branch is being kept in the fork for local release-line testing, and any upstream work will be reopened later as a fresh, clean PR.

New PR: #88504

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

Labels

agents Agent runtime and tooling app: web-ui App: web-ui channel: discord Channel integration: discord channel: feishu Channel integration: feishu channel: imessage Channel integration: imessage channel: telegram Channel integration: telegram channel: whatsapp-web Channel integration: whatsapp-web channel: zalo Channel integration: zalo cli CLI command changes commands Command implementations dependencies-changed PR changes dependency-related files docker Docker and sandbox tooling docs Improvements or additions to documentation extensions: acpx extensions: codex extensions: codex-supervisor Extension: codex-supervisor extensions: copilot extensions: memory-lancedb Extension: memory-lancedb extensions: memory-wiki extensions: qa-lab extensions: xiaomi feature: ✨ showcase ClawSweeper spotlight: unusually compelling feature idea for maintainer attention. gateway Gateway runtime merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. P2 Normal backlog priority with limited blast radius. plugin: migrate-hermes plugin: workboard proof: supplied External PR includes structured after-fix real behavior proof. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. scripts Repository scripts size: XL status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Multi-Slot Memory Architecture