From 03b55fdc3d4b587523948ec8048741ca9d54ace5 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-sync[bot]" Date: Mon, 4 May 2026 08:23:14 +0000 Subject: [PATCH] chore(sync): mirror docs from openclaw/openclaw@fcb396bf6589402e83ffbd96dd3d88c2f7f7a4f0 --- .openclaw-sync/source.json | 4 ++-- docs/plugins/sdk-runtime.md | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 0aa2239af..9dc9b173f 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "281b5bd511de1191138a65072a8f9b494b5a337f", - "syncedAt": "2026-05-04T08:18:28.744Z" + "sha": "fcb396bf6589402e83ffbd96dd3d88c2f7f7a4f0", + "syncedAt": "2026-05-04T08:21:18.365Z" } diff --git a/docs/plugins/sdk-runtime.md b/docs/plugins/sdk-runtime.md index e0dee0e88..bd4835df0 100644 --- a/docs/plugins/sdk-runtime.md +++ b/docs/plugins/sdk-runtime.md @@ -417,12 +417,13 @@ Provider and channel execution paths must use the active runtime config snapshot }); await store.register("key-1", { value: "hello" }); + const claimed = await store.registerIfAbsent("dedupe-key", { value: "first" }); const value = await store.lookup("key-1"); await store.consume("key-1"); await store.clear(); ``` - Keyed stores survive restarts and are isolated by the runtime-bound plugin id. Limits: `maxEntries` per namespace, 1,000 live rows per plugin, JSON values under 64KB, and optional TTL expiry. + Keyed stores survive restarts and are isolated by the runtime-bound plugin id. Use `registerIfAbsent(...)` for atomic dedupe claims: it returns `true` when the key was missing or expired and registered, or `false` when a live value already exists without overwriting its value, creation time, or TTL. Limits: `maxEntries` per namespace, 1,000 live rows per plugin, JSON values under 64KB, and optional TTL expiry. Bundled plugins only in this release.