sealclaw 2026.9.16 → 2026.9.17

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.9.16",
2
+ "version": "2026.9.17",
3
3
  "commit": "de2e5e0514d6dbee1b0828f6c9bd9497221353b6",
4
- "builtAt": "2026-09-18T08:58:02.651Z"
4
+ "builtAt": "2026-09-18T09:53:00.493Z"
5
5
  }
@@ -17,5 +17,5 @@
17
17
  ],
18
18
  "channelCatalogSignature": "701dd1d3ff65f80e219795873d85a623b7af5361",
19
19
  "rootHelpBundleSignature": "1541334442a8049353e6c06789c1da523c565843",
20
- "rootHelpText": "\n🦞 SealClaw 2026.9.16 (de2e5e0) — WhatsApp automation without the \"please accept our new privacy policy\".\n\nUsage: openclaw [options] [command]\n\nOptions:\n --container <name> Run the CLI inside a running Podman/Docker container\n named <name> (default: env OPENCLAW_CONTAINER)\n --dev Dev profile: isolate state under ~/.openclaw-dev, default\n gateway port 19001, and shift derived ports\n (browser/canvas)\n -h, --help Display help for command\n --log-level <level> Global log level override for file + console\n (silent|fatal|error|warn|info|debug|trace)\n --no-color Disable ANSI colors\n --profile <name> Use a named profile (isolates\n OPENCLAW_STATE_DIR/OPENCLAW_CONFIG_PATH under\n ~/.openclaw-<name>)\n -V, --version output the version number\n\nCommands:\n Hint: commands suffixed with * have subcommands. Run <command> --help for details.\n acp * Agent Control Protocol tools\n agent Run one agent turn via the Gateway\n agents * Manage isolated agents (workspaces, auth, routing)\n approvals * Manage exec approvals (gateway or node host)\n backup * Create and verify local backup archives for OpenClaw\n state\n capability * Run provider-backed inference commands (fallback alias:\n infer)\n channels * Manage connected chat channels (Telegram, Discord, etc.)\n clawbot * Legacy clawbot command aliases\n commitments * List and manage inferred follow-up commitments\n completion Generate shell completion script\n config * Non-interactive config helpers\n (get/set/unset/file/validate). Default: starts guided\n setup.\n configure Interactive configuration for credentials, channels,\n gateway, and agent defaults\n crestodian Run a ring-zero setup or repair request\n cron * Manage cron jobs via the Gateway scheduler\n daemon * Gateway service (legacy alias)\n dashboard Open the Control UI with your current token\n devices * Device pairing + token management\n directory * Lookup contact and group IDs (self, peers, groups) for\n supported chat channels\n dns * DNS helpers for wide-area discovery (Tailscale + CoreDNS)\n docs Search the live OpenClaw docs\n doctor Health checks + quick fixes for the gateway and channels\n exec-policy * Show or synchronize requested exec policy with host\n approvals\n gateway * Run, inspect, and query the WebSocket Gateway\n health Fetch health from the running gateway\n help Display help for command\n hooks * Manage internal agent hooks\n infer * Run provider-backed inference commands\n logs Tail gateway file logs via RPC\n mcp * Manage OpenClaw MCP config and channel bridge\n memory Search, inspect, and reindex memory files\n message * Send, read, and manage messages\n migrate * Import state from another agent system\n models * Discover, scan, and configure models\n node * Run and manage the headless node host service\n nodes * Manage gateway-owned node pairing and node commands\n officecli-cli Install and run OfficeCLI\n onboard Interactive onboarding for gateway, workspace, and skills\n pairing * Secure DM pairing (approve inbound requests)\n plugins * Manage OpenClaw plugins\n proxy * Run the OpenClaw debug proxy and inspect captured traffic\n qr Generate mobile pairing QR/setup code\n reset Reset local config/state (keeps the CLI installed)\n sandbox * Manage sandbox containers for agent isolation\n secrets * Secrets runtime reload controls\n security * Security tools and local config audits\n sessions * List stored conversation sessions\n setup Initialize local config and agent workspace\n skills * List and inspect available skills\n status Show channel health and recent session recipients\n system * System events, heartbeat, and presence\n tasks * Inspect durable background task state\n uninstall Uninstall the gateway service + local data (CLI remains)\n update * Update OpenClaw and inspect update channel status\n webhooks * Webhook helpers and integrations\n\nExamples:\n openclaw models --help\n Show detailed help for the models command.\n openclaw channels login --verbose\n Link personal WhatsApp Web and show QR + connection logs.\n openclaw message send --target +15555550123 --message \"Hi\" --json\n Send via your web session and print JSON result.\n openclaw gateway --port 18789\n Run the WebSocket Gateway locally.\n openclaw --dev gateway\n Run a dev Gateway (isolated state/config) on ws://127.0.0.1:19001.\n openclaw gateway --force\n Kill anything bound to the default gateway port, then start it.\n openclaw gateway ...\n Gateway control via WebSocket.\n openclaw agent --to +15555550123 --message \"Run summary\" --deliver\n Talk directly to the agent using the Gateway; optionally send the WhatsApp reply.\n openclaw message send --channel telegram --target @mychat --message \"Hi\"\n Send via your Telegram bot.\n\nDocs: https://docs.openclaw.ai/cli\n\n"
20
+ "rootHelpText": "\n🦞 SealClaw 2026.9.17 (de2e5e0) — Your second brain, except this one actually remembers where you left things.\n\nUsage: openclaw [options] [command]\n\nOptions:\n --container <name> Run the CLI inside a running Podman/Docker container\n named <name> (default: env OPENCLAW_CONTAINER)\n --dev Dev profile: isolate state under ~/.openclaw-dev, default\n gateway port 19001, and shift derived ports\n (browser/canvas)\n -h, --help Display help for command\n --log-level <level> Global log level override for file + console\n (silent|fatal|error|warn|info|debug|trace)\n --no-color Disable ANSI colors\n --profile <name> Use a named profile (isolates\n OPENCLAW_STATE_DIR/OPENCLAW_CONFIG_PATH under\n ~/.openclaw-<name>)\n -V, --version output the version number\n\nCommands:\n Hint: commands suffixed with * have subcommands. Run <command> --help for details.\n acp * Agent Control Protocol tools\n agent Run one agent turn via the Gateway\n agents * Manage isolated agents (workspaces, auth, routing)\n approvals * Manage exec approvals (gateway or node host)\n backup * Create and verify local backup archives for OpenClaw\n state\n capability * Run provider-backed inference commands (fallback alias:\n infer)\n channels * Manage connected chat channels (Telegram, Discord, etc.)\n clawbot * Legacy clawbot command aliases\n commitments * List and manage inferred follow-up commitments\n completion Generate shell completion script\n config * Non-interactive config helpers\n (get/set/unset/file/validate). Default: starts guided\n setup.\n configure Interactive configuration for credentials, channels,\n gateway, and agent defaults\n crestodian Run a ring-zero setup or repair request\n cron * Manage cron jobs via the Gateway scheduler\n daemon * Gateway service (legacy alias)\n dashboard Open the Control UI with your current token\n devices * Device pairing + token management\n directory * Lookup contact and group IDs (self, peers, groups) for\n supported chat channels\n dns * DNS helpers for wide-area discovery (Tailscale + CoreDNS)\n docs Search the live OpenClaw docs\n doctor Health checks + quick fixes for the gateway and channels\n exec-policy * Show or synchronize requested exec policy with host\n approvals\n gateway * Run, inspect, and query the WebSocket Gateway\n health Fetch health from the running gateway\n help Display help for command\n hooks * Manage internal agent hooks\n infer * Run provider-backed inference commands\n logs Tail gateway file logs via RPC\n mcp * Manage OpenClaw MCP config and channel bridge\n memory Search, inspect, and reindex memory files\n message * Send, read, and manage messages\n migrate * Import state from another agent system\n models * Discover, scan, and configure models\n node * Run and manage the headless node host service\n nodes * Manage gateway-owned node pairing and node commands\n officecli-cli Install and run OfficeCLI\n onboard Interactive onboarding for gateway, workspace, and skills\n pairing * Secure DM pairing (approve inbound requests)\n plugins * Manage OpenClaw plugins\n proxy * Run the OpenClaw debug proxy and inspect captured traffic\n qr Generate mobile pairing QR/setup code\n reset Reset local config/state (keeps the CLI installed)\n sandbox * Manage sandbox containers for agent isolation\n secrets * Secrets runtime reload controls\n security * Security tools and local config audits\n sessions * List stored conversation sessions\n setup Initialize local config and agent workspace\n skills * List and inspect available skills\n status Show channel health and recent session recipients\n system * System events, heartbeat, and presence\n tasks * Inspect durable background task state\n uninstall Uninstall the gateway service + local data (CLI remains)\n update * Update OpenClaw and inspect update channel status\n webhooks * Webhook helpers and integrations\n\nExamples:\n openclaw models --help\n Show detailed help for the models command.\n openclaw channels login --verbose\n Link personal WhatsApp Web and show QR + connection logs.\n openclaw message send --target +15555550123 --message \"Hi\" --json\n Send via your web session and print JSON result.\n openclaw gateway --port 18789\n Run the WebSocket Gateway locally.\n openclaw --dev gateway\n Run a dev Gateway (isolated state/config) on ws://127.0.0.1:19001.\n openclaw gateway --force\n Kill anything bound to the default gateway port, then start it.\n openclaw gateway ...\n Gateway control via WebSocket.\n openclaw agent --to +15555550123 --message \"Run summary\" --deliver\n Talk directly to the agent using the Gateway; optionally send the WhatsApp reply.\n openclaw message send --channel telegram --target @mychat --message \"Hi\"\n Send via your Telegram bot.\n\nDocs: https://docs.openclaw.ai/cli\n\n"
21
21
  }
@@ -9,7 +9,7 @@ async function loadServerImpl() {
9
9
  const startupStartedAt = performance.now();
10
10
  const before = performance.now();
11
11
  try {
12
- return await import("../server.impl-D9KUw8PA.js");
12
+ return await import("../server.impl-DiQPe6r-.js");
13
13
  } finally {
14
14
  const now = performance.now();
15
15
  emitStartupTrace("gateway.server-impl-import", now - before, now - startupStartedAt);
@@ -1458,7 +1458,7 @@ function attachGatewayWsMessageHandler(params) {
1458
1458
  });
1459
1459
  };
1460
1460
  (async () => {
1461
- const { handleGatewayRequest } = await import("./server-methods-CEr3kWrz.js");
1461
+ const { handleGatewayRequest } = await import("./server-methods-PdIzM9K-.js");
1462
1462
  await handleGatewayRequest({
1463
1463
  req,
1464
1464
  respond,
@@ -1 +1 @@
1
- 2026-09-18T08:58:02.004Z
1
+ 2026-09-18T09:52:59.552Z
@@ -1437,7 +1437,7 @@
1437
1437
  "dist/message-channel-CuIn9W3e.js",
1438
1438
  "dist/message-CVl60LTz.js",
1439
1439
  "dist/message-format-CCqkxl48.js",
1440
- "dist/message-handler-Bno4fSmf.js",
1440
+ "dist/message-handler-C0RfRp9-.js",
1441
1441
  "dist/message-hook-mappers-B-L5CiN1.js",
1442
1442
  "dist/message-secret-scope-DiJWqknm.js",
1443
1443
  "dist/message.config.runtime-Gk5WsvPJ.js",
@@ -6190,15 +6190,15 @@
6190
6190
  "dist/server-discovery-runtime-B7zxPfWz.js",
6191
6191
  "dist/server-json-DDr-9vwV.js",
6192
6192
  "dist/server-maintenance-ClgRXazL.js",
6193
- "dist/server-methods-CEr3kWrz.js",
6194
6193
  "dist/server-methods-list-YgcGsSq-.js",
6194
+ "dist/server-methods-PdIzM9K-.js",
6195
6195
  "dist/server-model-catalog-0rgnemzA.js",
6196
6196
  "dist/server-model-catalog-Byep24t-.js",
6197
6197
  "dist/server-network-runtime-r2VdYyCY.js",
6198
6198
  "dist/server-node-events-C5IibkAU.js",
6199
6199
  "dist/server-node-session-runtime-Dj304Fq8.js",
6200
- "dist/server-plugin-bootstrap-Bwg5IMTb.js",
6201
- "dist/server-plugins-DRhO10-V.js",
6200
+ "dist/server-plugin-bootstrap-x4gpQuBe.js",
6201
+ "dist/server-plugins-BHqo4zeM.js",
6202
6202
  "dist/server-reload-handlers-B_GxENCF.js",
6203
6203
  "dist/server-request-context-BYbOf1sW.js",
6204
6204
  "dist/server-restart-sentinel-DcLG1Vo0.js",
@@ -6216,7 +6216,7 @@
6216
6216
  "dist/server-startup-legacy-workspaces-migration-CziyRVHn.js",
6217
6217
  "dist/server-startup-log-yWA0iaZU.js",
6218
6218
  "dist/server-startup-memory-BmoS-C4-.js",
6219
- "dist/server-startup-plugins-CYoh6r_H.js",
6219
+ "dist/server-startup-plugins-nbj6RJvy.js",
6220
6220
  "dist/server-startup-post-attach-Bitzaw0b.js",
6221
6221
  "dist/server-startup-sealseek-models-BsVBsqY-.js",
6222
6222
  "dist/server-startup-session-migration--7fuTpCL.js",
@@ -6224,9 +6224,9 @@
6224
6224
  "dist/server-startup-unavailable-methods-VykTDteL.js",
6225
6225
  "dist/server-tailscale-Yhp861Z-.js",
6226
6226
  "dist/server-utils-DKhGaAJB.js",
6227
- "dist/server-ws-runtime-BxkfxnIp.js",
6227
+ "dist/server-ws-runtime-DD-x7MQR.js",
6228
6228
  "dist/server-wuN1Dlnk.js",
6229
- "dist/server.impl-D9KUw8PA.js",
6229
+ "dist/server.impl-DiQPe6r-.js",
6230
6230
  "dist/service-audit-B6vxz9co.js",
6231
6231
  "dist/service-audit-CFvRZ_vw.js",
6232
6232
  "dist/service-BIn7opCf.js",
@@ -3399,7 +3399,10 @@ async function repairInvalidBaseConfigForPatch(params) {
3399
3399
  try {
3400
3400
  await commitGatewayConfigWrite({
3401
3401
  snapshot: params.snapshot,
3402
- writeOptions: params.writeOptions,
3402
+ writeOptions: {
3403
+ ...params.writeOptions,
3404
+ allowConfigSizeDrop: true
3405
+ },
3403
3406
  nextConfig: revalidated.config
3404
3407
  });
3405
3408
  } catch (err) {
@@ -3,7 +3,7 @@ import { t as applyPluginAutoEnable } from "./plugin-auto-enable-BDgGk3pS.js";
3
3
  import { i as setGatewaySubagentRuntime, r as setGatewayNodesRuntime } from "./gateway-bindings-gdmL7dUY.js";
4
4
  import { t as primeConfiguredBindingRegistry } from "./binding-registry-BfU8Dtuo.js";
5
5
  import { t as mergeActivationSectionsIntoRuntimeConfig } from "./plugin-activation-runtime-config-C5QwIDuN.js";
6
- import { a as setPluginSubagentOverridePolicies, n as createGatewaySubagentRuntime, r as loadGatewayPlugins, t as createGatewayNodesRuntime } from "./server-plugins-DRhO10-V.js";
6
+ import { a as setPluginSubagentOverridePolicies, n as createGatewaySubagentRuntime, r as loadGatewayPlugins, t as createGatewayNodesRuntime } from "./server-plugins-BHqo4zeM.js";
7
7
  //#region src/gateway/server-plugin-bootstrap.ts
8
8
  function installGatewayPluginRuntimeEnvironment(cfg) {
9
9
  setPluginSubagentOverridePolicies(cfg);
@@ -193,7 +193,7 @@ async function dispatchGatewayMethod(method, params, options) {
193
193
  const isWebchatConnect = scope?.isWebchatConnect ?? (() => false);
194
194
  if (!context) throw new Error(`Plugin subagent dispatch requires a gateway request scope (method: ${method}). No scope set and no fallback context available.`);
195
195
  let result;
196
- const { handleGatewayRequest } = await import("./server-methods-CEr3kWrz.js");
196
+ const { handleGatewayRequest } = await import("./server-methods-PdIzM9K-.js");
197
197
  const pluginRuntimeOwnerId = typeof options?.pluginRuntimeOwnerId === "string" && options.pluginRuntimeOwnerId.trim() ? options.pluginRuntimeOwnerId.trim() : void 0;
198
198
  const syntheticClient = createSyntheticOperatorClient({
199
199
  allowModelOverride: options?.allowSyntheticModelOverride === true,
@@ -104,7 +104,7 @@ async function prepareGatewayPluginBootstrap(params) {
104
104
  };
105
105
  }
106
106
  async function loadGatewayStartupPluginRuntime(params) {
107
- const { loadGatewayStartupPlugins } = await import("./server-plugin-bootstrap-Bwg5IMTb.js");
107
+ const { loadGatewayStartupPlugins } = await import("./server-plugin-bootstrap-x4gpQuBe.js");
108
108
  return loadGatewayStartupPlugins({
109
109
  cfg: params.cfg,
110
110
  activationSourceConfig: params.activationSourceConfig,
@@ -121,7 +121,7 @@ function attachGatewayWsMessageHandlerOnDemand(params) {
121
121
  queued.push(data);
122
122
  };
123
123
  params.socket.on("message", queueMessage);
124
- import("./message-handler-Bno4fSmf.js").then(({ attachGatewayWsMessageHandler }) => {
124
+ import("./message-handler-C0RfRp9-.js").then(({ attachGatewayWsMessageHandler }) => {
125
125
  params.socket.off("message", queueMessage);
126
126
  if (params.isClosed()) return;
127
127
  attachGatewayWsMessageHandler(params);
@@ -50,7 +50,7 @@ import { a as createToolEventRecipientRegistry, n as createChatRunState } from "
50
50
  import { a as incrementPresenceVersion, i as getPresenceVersion, n as getHealthCache, o as refreshGatewayHealthSnapshot, r as getHealthVersion } from "./health-state-DNJh6CAY.js";
51
51
  import { i as setGatewayMaintenance, t as autoStartEnabledCnChannels } from "./channels.cn-C3B6M2ZI.js";
52
52
  import { i as normalizeCanvasScopedUrl } from "./canvas-capability-BuaF9l_o.js";
53
- import { i as setFallbackGatewayContextResolver } from "./server-plugins-DRhO10-V.js";
53
+ import { i as setFallbackGatewayContextResolver } from "./server-plugins-BHqo4zeM.js";
54
54
  import { n as applyGatewayLaneConcurrency, t as resolveHookClientIpConfig } from "./hook-client-ip-config-DL24W9ST.js";
55
55
  import { t as GATEWAY_EVENTS } from "./server-methods-list-YgcGsSq-.js";
56
56
  import { t as STARTUP_UNAVAILABLE_GATEWAY_METHODS } from "./server-startup-unavailable-methods-VykTDteL.js";
@@ -1674,7 +1674,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
1674
1674
  const startupConfigModulePromise = import("./server-startup-config-DdUUMyuy.js");
1675
1675
  let startupPluginsModulePromise = null;
1676
1676
  const loadStartupPluginsModule = () => {
1677
- startupPluginsModulePromise ??= import("./server-startup-plugins-CYoh6r_H.js");
1677
+ startupPluginsModulePromise ??= import("./server-startup-plugins-nbj6RJvy.js");
1678
1678
  return startupPluginsModulePromise;
1679
1679
  };
1680
1680
  const { loadGatewayStartupConfigSnapshot } = await startupConfigModulePromise;
@@ -2102,7 +2102,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
2102
2102
  const beforeChannelIds = new Set(beforeChannelTargets.keys());
2103
2103
  const [{ loadPluginLookUpTable }, { prepareGatewayPluginLoad }, { startPluginServices }] = await Promise.all([
2104
2104
  import("./plugin-lookup-table-Bi1VJM-P.js"),
2105
- import("./server-plugin-bootstrap-Bwg5IMTb.js"),
2105
+ import("./server-plugin-bootstrap-x4gpQuBe.js"),
2106
2106
  import("./services-CdtlA33m.js")
2107
2107
  ]);
2108
2108
  const nextPluginLookUpTable = loadPluginLookUpTable({
@@ -2239,7 +2239,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
2239
2239
  } : () => {};
2240
2240
  if (!minimalTestGateway) {
2241
2241
  if (runtimePluginsLoaded && deferredConfiguredChannelPluginIds.length > 0) {
2242
- const { reloadDeferredGatewayPlugins } = await import("./server-plugin-bootstrap-Bwg5IMTb.js");
2242
+ const { reloadDeferredGatewayPlugins } = await import("./server-plugin-bootstrap-x4gpQuBe.js");
2243
2243
  const loaded = reloadDeferredGatewayPlugins({
2244
2244
  cfg: gatewayPluginConfigAtStart,
2245
2245
  activationSourceConfig: startupActivationSourceConfig,
@@ -2255,7 +2255,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
2255
2255
  await refreshAttachedGatewayDiscovery(loaded.pluginRegistry);
2256
2256
  }
2257
2257
  }
2258
- const { attachGatewayWsHandlers } = await import("./server-ws-runtime-BxkfxnIp.js");
2258
+ const { attachGatewayWsHandlers } = await import("./server-ws-runtime-DD-x7MQR.js");
2259
2259
  const canvasHostScheme = gatewayTls.enabled ? "https" : "http";
2260
2260
  attachGatewayWsHandlers({
2261
2261
  wss,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sealclaw",
3
- "version": "2026.9.16",
3
+ "version": "2026.9.17",
4
4
  "description": "Multi-channel AI gateway with extensible messaging integrations",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/openclaw/openclaw#readme",