@remnic/plugin-openclaw 9.69.56 → 9.69.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -243,6 +243,14 @@ OpenClaw 2026.5.30-beta.1 may resolve bare package names npm-first during the
243
243
  launch cutover, so operator docs should keep the explicit `clawhub:` prefix for
244
244
  deterministic installs.
245
245
 
246
+ OpenClaw 2026.8.1 (2.0) removed `api.registerMemoryPromptSection`. Plugin
247
+ releases up to and including `9.69.56` relied on that API in bridge/delegate
248
+ mode: on a 2.0 host the plugin loads, reaches the daemon, and captures turns,
249
+ but injects no memory into agent prompts. Upgrading the host to 2.0 requires
250
+ `@remnic/plugin-openclaw` `9.69.57` or newer. OpenClaw 1.x hosts (2026.4
251
+ through 2026.7.x) and embedded (non-delegate) memory mode are unaffected on
252
+ every plugin version. See issue #3057.
253
+
246
254
  The manifest declares `activation.onStartup: false`, exposes the optional
247
255
  plugin-mode OpenAI key through `providerAuthChoices`, and mirrors the
248
256
  `OPENAI_API_KEY` env signal through `setup.providers[].envVars` for current
package/dist/index.js CHANGED
@@ -8062,8 +8062,7 @@ function registerDelegateRuntime(api, options) {
8062
8062
  const promptLinesBySession = /* @__PURE__ */ new Map();
8063
8063
  const promptInjectionEnabled = options.allowPromptInjection && options.recallBudgetChars !== 0;
8064
8064
  const useSectionBuilder = typeof api.registerMemoryPromptSection === "function";
8065
- const useCapabilityBuilder = !useSectionBuilder && typeof api.registerMemoryCapability === "function";
8066
- const cachePromptLines = useSectionBuilder || useCapabilityBuilder;
8065
+ const cachePromptLines = useSectionBuilder;
8067
8066
  const capability = registerDelegateMemoryCapability(api, {
8068
8067
  serviceId: options.serviceId,
8069
8068
  target,
@@ -8097,14 +8096,10 @@ function registerDelegateRuntime(api, options) {
8097
8096
  workspaceDir: options.capability.workspaceDir,
8098
8097
  agentIds: options.capability.agentIds,
8099
8098
  allowPromptInjection: promptInjectionEnabled,
8100
- // The section builder owns the destructive read when it exists; otherwise
8101
- // the capability builder IS the sole consumer and must evict, or a stale
8102
- // section would be re-injected on the next turn.
8103
- readPromptLines: (sessionKey) => {
8104
- const lines = promptLinesBySession.get(sessionKey) ?? null;
8105
- if (!useSectionBuilder) promptLinesBySession.delete(sessionKey);
8106
- return lines;
8107
- },
8099
+ // Peek only. The section builder's own builder function owns eviction,
8100
+ // and on hosts without one (OpenClaw 2.0) the hook never caches it
8101
+ // injects directly so this can never double-inject behind the hook.
8102
+ readPromptLines: (sessionKey) => promptLinesBySession.get(sessionKey) ?? null,
8108
8103
  extractionMaxTurnChars: options.capability.extractionMaxTurnChars,
8109
8104
  flushModel: options.capability.flushModel,
8110
8105
  configuredSearchBackend: options.capability.configuredSearchBackend,