Conversation
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 33 minutes and 27 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (7)
📝 WalkthroughWalkthroughThis pull request updates the nowledge-mem OpenClaw plugin from version 0.8.14 to 0.8.15, introducing dual-role capability declaration ( Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
bugbot run |
|
@codex review |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
nowledge-mem-openclaw-plugin/src/index.js (1)
100-108:⚠️ Potential issue | 🔴 Critical
memorySlotis undefined — destructuring mismatch.Line 102 references
memorySlot, but onlymemorySlotSelectedis destructured fromresolveRegistrationModeat line 47. This will passundefinedto the status tool.🐛 Proposed fix
- const { memorySlotSelected } = resolveRegistrationMode({ + const { memorySlot, memorySlotSelected } = resolveRegistrationMode({ pluginId: api.id, configuredMemorySlot: api.config?.plugins?.slots?.memory, });🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@nowledge-mem-openclaw-plugin/src/index.js` around lines 100 - 108, The status tool is being passed an undefined memorySlot because resolveRegistrationMode only returns memorySlotSelected; update the call to createStatusTool/registerTool to pass the correct variable (memorySlotSelected) or change resolveRegistrationMode to return memorySlot as well. Locate resolveRegistrationMode and the registerTool call that invokes createStatusTool and either (a) replace the passed memorySlot with memorySlotSelected, or (b) add memorySlot to the destructured return of resolveRegistrationMode so createStatusTool receives a defined memorySlot.
🧹 Nitpick comments (1)
nowledge-mem-openclaw-plugin/tests/register-mode.test.mjs (1)
7-25: Add one test for the implicit default slot path.Nice coverage on explicit modes. I’d also pin behavior when
configuredMemorySlotis omitted, sinceresolveRegistrationMode()defaults it to"memory-core".✅ Suggested additional test
test("full memory mode registers compatibility tools when Nowledge Mem owns the slot", () => { const mode = resolveRegistrationMode({ pluginId: "openclaw-nowledge-mem", configuredMemorySlot: "openclaw-nowledge-mem", }); assert.equal(mode.memorySlotSelected, true); assert.equal(mode.registerMemoryCompatTools, true); }); + +test("defaults to memory-core mode when configuredMemorySlot is omitted", () => { + const mode = resolveRegistrationMode({ + pluginId: "openclaw-nowledge-mem", + }); + + assert.equal(mode.memorySlot, "memory-core"); + assert.equal(mode.memorySlotSelected, false); + assert.equal(mode.registerMemoryCompatTools, false); +});🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@nowledge-mem-openclaw-plugin/tests/register-mode.test.mjs` around lines 7 - 25, Add a test to assert the implicit default path when configuredMemorySlot is omitted: call resolveRegistrationMode({ pluginId: "openclaw-nowledge-mem" }) and assert that it behaves like the explicit "memory-core" case (memorySlotSelected === false and registerMemoryCompatTools === false); place this new case alongside the existing tests in register-mode.test.mjs so resolveRegistrationMode's defaulting behavior is covered.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@nowledge-mem-openclaw-plugin/CLAUDE.md`:
- Around line 85-88: Update the wording describing the memory-slot activation so
it matches runtime behavior: change the “Always active” claim for the
memory-slot (which provides memory_search + memory_get) to state that these
compatibility hooks are active only when the slot is selected via
plugins.slots.memory (e.g., plugins.slots.memory = "openclaw-nowledge-mem") and
are not active in supplement mode when using memory-core; also preserve the note
that the context-engine role is separately activated via
plugins.slots.contextEngine = "nowledge-mem".
---
Outside diff comments:
In `@nowledge-mem-openclaw-plugin/src/index.js`:
- Around line 100-108: The status tool is being passed an undefined memorySlot
because resolveRegistrationMode only returns memorySlotSelected; update the call
to createStatusTool/registerTool to pass the correct variable
(memorySlotSelected) or change resolveRegistrationMode to return memorySlot as
well. Locate resolveRegistrationMode and the registerTool call that invokes
createStatusTool and either (a) replace the passed memorySlot with
memorySlotSelected, or (b) add memorySlot to the destructured return of
resolveRegistrationMode so createStatusTool receives a defined memorySlot.
---
Nitpick comments:
In `@nowledge-mem-openclaw-plugin/tests/register-mode.test.mjs`:
- Around line 7-25: Add a test to assert the implicit default path when
configuredMemorySlot is omitted: call resolveRegistrationMode({ pluginId:
"openclaw-nowledge-mem" }) and assert that it behaves like the explicit
"memory-core" case (memorySlotSelected === false and registerMemoryCompatTools
=== false); place this new case alongside the existing tests in
register-mode.test.mjs so resolveRegistrationMode's defaulting behavior is
covered.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 9435cca9-dbbb-4f80-9058-2f00365462f5
⛔ Files ignored due to path filters (1)
nowledge-mem-openclaw-plugin/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (13)
apt/README.mdapt/install.shintegrations.jsonnowledge-mem-openclaw-plugin/CHANGELOG.mdnowledge-mem-openclaw-plugin/CLAUDE.mdnowledge-mem-openclaw-plugin/README.mdnowledge-mem-openclaw-plugin/openclaw.plugin.jsonnowledge-mem-openclaw-plugin/package.jsonnowledge-mem-openclaw-plugin/scripts/validate-plugin.mjsnowledge-mem-openclaw-plugin/src/context-engine.jsnowledge-mem-openclaw-plugin/src/index.jsnowledge-mem-openclaw-plugin/src/register-mode.jsnowledge-mem-openclaw-plugin/tests/register-mode.test.mjs
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1e94ec68dd
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
|
bugbot run |
|
Codex Review: Didn't find any major issues. More of your lovely PRs please. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 6b27d6d. Configure here.
Summary by CodeRabbit
Release Notes
Bug Fixes
Documentation
Chores
Note
Medium Risk
Changes OpenClaw plugin registration and tool exposure based on the configured memory slot, which can affect startup and which
memory_*tools are available in different host configurations.Overview
Improves OpenClaw corpus supplement coexistence with
memory-coreby making Nowledge Mem a dual-role plugin (["memory", "context-engine"]) while conditionally registeringmemory_search/memory_getonly when this plugin owns the memory slot, avoiding tool shadowing in supplement mode.Fixes a supplement-mode startup regression by introducing
resolveRegistrationMode()(with tests) to safely derive the memory-slot state (defaulting tomemory-core) and wiring that into status/initialization logging.Bumps the OpenClaw integration and plugin versions to
0.8.16, updates the release validator to enforce dual-rolekind, and refreshes docs/install scripts (including a CLI-only upgrade command for the APT package).Reviewed by Cursor Bugbot for commit 6b27d6d. Bugbot is set up for automated code reviews on this repo. Configure here.