@inline-openclaw/inline 0.0.68 → 0.0.70

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
@@ -34,33 +34,51 @@ Reply-thread behavior:
34
34
 
35
35
  ## Install
36
36
 
37
- The current Inline plugin targets OpenClaw `2026.8.x` from `2026.8.2`. Install
37
+ The current Inline plugin supports OpenClaw `2026.8.2` and newer, including
38
+ `2026.9.x`, with no upper version cap. It is built against `2026.9.4`. Install
38
39
  the plugin version for your OpenClaw release line:
39
40
 
40
41
  | OpenClaw line | Inline plugin | Exact install |
41
42
  | --- | --- | --- |
42
- | `2026.8.x` (`>=2026.8.2`) | `0.0.68` | `openclaw plugins install @inline-openclaw/inline --force --accept-capabilities` |
43
+ | `2026.8.2` and newer | `0.0.70` | `openclaw plugins install npm:@inline-openclaw/inline@0.0.70 --force --accept-capabilities` |
43
44
  | `2026.7.x` (`>=2026.7.1`) | `0.0.63` | `openclaw plugins install @inline-openclaw/inline@0.0.63 --force` |
44
45
  | `2026.6.x` (`>=2026.6.11`, including extended-stable `2026.6.34`) | `0.0.63` | `openclaw plugins install @inline-openclaw/inline@0.0.63 --force` |
45
46
 
46
- `@latest` follows the newest supported OpenClaw line; it is not a compatibility
47
- alias for older host APIs.
47
+ The minimum supported host remains `2026.8.2`. Newer host versions are not
48
+ blocked by package metadata. OpenClaw 2026.9.3 and newer require Node 24.16+
49
+ on the 24.x line or Node 26.1+; Node 26 is recommended.
48
50
 
49
51
  ## Compatibility
50
52
 
51
53
  | Plugin version | OpenClaw host | Inline realtime SDK | Status | Notes |
52
54
  | --- | --- | --- | --- | --- |
53
- | `0.0.68` | `>=2026.8.2 <2026.9.0` | `0.0.18` | Current | Retries stalled sync autonomously and isolates unrelated chat handlers while retaining ordered acknowledgements. |
54
- | `0.0.67` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Previous | Keeps the manifest compatible with ClawHub's metadata transport without changing the channel schema. |
55
- | `0.0.66` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Previous | Bounds direct account probes so SDK cleanup completes before the host deadline. |
56
- | `0.0.65` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Previous | Makes chat-triggered updates noninteractive by explicitly accepting the trusted Inline capability surface. |
57
- | `0.0.64` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Previous | Supports the stable 2026.8 plugin SDK and preserves DM/group reply-thread routing. |
58
- | `0.0.63` | `>=2026.6.11 || >=2026.7.1-0` | `0.0.16` | Previous | Applies live-safe settings writes without restarting the Inline channel before it can answer. |
55
+ | `0.0.70` | `>=2026.8.2` | `0.0.18` | Current | Preserves native reply suppression and send-policy decisions, with September approvals and shutdown cancellation. |
56
+ | `0.0.69` | `>=2026.8.2` | `0.0.18` | Previous | Added September system change approvals and shutdown cancellation. |
57
+ | `0.0.68` | `2026.8.2` | `0.0.18` | Previous | Retries stalled sync autonomously and isolates unrelated chat handlers while retaining ordered acknowledgements. |
58
+ | `0.0.67` | `2026.8.2` | `0.0.17` | Previous | Keeps the manifest compatible with ClawHub's metadata transport without changing the channel schema. |
59
+ | `0.0.66` | `2026.8.2` | `0.0.17` | Previous | Bounds direct account probes so SDK cleanup completes before the host deadline. |
60
+ | `0.0.65` | `2026.8.2` | `0.0.17` | Previous | Makes chat-triggered updates noninteractive by explicitly accepting the trusted Inline capability surface. |
61
+
62
+ ### Release 0.0.70
63
+
64
+ - Matches native Telegram by suppressing empty-response fallbacks in message-tool-only mode and honoring host send-policy denial, including after delivery errors.
65
+
66
+ - Removes the host upper bound and supports September system change approvals while retaining August APIs.
67
+ - Cancels reply generation when the channel stops, suppresses late sends, and bounds shutdown waits.
68
+ - Retains realtime SDK `0.0.18`: finite-target catch-up fence release, autonomous recovery after timeouts, authoritative DM deletion buckets, and concurrent handlers with ordered acknowledgements.
69
+ - Tests the extracted package against released hosts and checks that the bundled SDK matches the validated build.
70
+
71
+ The CI host matrix runs on `2026.8.2`, `2026.9.1`, and npm `latest`.
72
+ To check an installed host locally after building the SDK:
73
+
74
+ ```sh
75
+ bun run --cwd openclaw check:host /path/to/node_modules/openclaw
76
+ ```
59
77
 
60
78
  From npm:
61
79
 
62
80
  ```sh
63
- openclaw plugins install @inline-openclaw/inline --force --accept-capabilities
81
+ openclaw plugins install npm:@inline-openclaw/inline@0.0.70 --force --accept-capabilities
64
82
  ```
65
83
 
66
84
  If the plugin is already installed, update in place:
@@ -69786,6 +69786,9 @@ var inlineMessageActions = {
69786
69786
  };
69787
69787
  var inlineSupportedActions = listAllActions();
69788
69788
 
69789
+ // src/inline/approval-contract.ts
69790
+ var INLINE_APPROVAL_EVENT_KINDS = ["exec", "plugin", "system-agent"];
69791
+
69789
69792
  // src/inline/exec-approvals.ts
69790
69793
  import { resolveApprovalApprovers } from "openclaw/plugin-sdk/approval-auth-runtime";
69791
69794
  import {
@@ -69865,7 +69868,7 @@ function countInlineExecApprovalEligibleAccounts(params) {
69865
69868
  }).length;
69866
69869
  }
69867
69870
  function isExecApprovalRequest(request) {
69868
- return "command" in request.request;
69871
+ return request.approvalKind != null ? request.approvalKind === "exec" : ("command" in request.request) && !("proposalHash" in request.request);
69869
69872
  }
69870
69873
  function isTargetForwardingMode(mode) {
69871
69874
  return mode === "targets" || mode === "both";
@@ -70151,6 +70154,21 @@ function buildInlineApprovalActions(view) {
70151
70154
  return resolveInlineMessageActionsParam({ buttons }, { owner: "system" });
70152
70155
  }
70153
70156
  function buildPendingPayload(params) {
70157
+ if (String(params.approvalKind) === "system-agent") {
70158
+ const view = params.view;
70159
+ if (String(view.approvalKind) !== "system-agent" || !("operationSummary" in view) || typeof view.operationSummary !== "string") {
70160
+ throw new Error("system-agent approval request and view kinds do not match");
70161
+ }
70162
+ const text2 = sanitizeInlineOutgoingText([
70163
+ "\uD83D\uDD12 OpenClaw change requires approval",
70164
+ `Change: ${view.operationSummary}`,
70165
+ `Agent: ${"agentId" in view ? view.agentId ?? "unknown" : "unknown"}`,
70166
+ `Expires in: ${Math.max(0, Math.ceil((params.request.expiresAtMs - params.nowMs) / 1000))}s`
70167
+ ].join(`
70168
+ `));
70169
+ const actions2 = buildInlineApprovalActions(view);
70170
+ return { text: text2, ...actions2 ? { actions: actions2 } : {} };
70171
+ }
70154
70172
  const execView = params.view.approvalKind === "exec" ? params.view : null;
70155
70173
  const payload = params.approvalKind === "plugin" ? buildPluginApprovalPendingReplyPayload({
70156
70174
  request: params.request,
@@ -70179,7 +70197,7 @@ function buildPendingPayload(params) {
70179
70197
  };
70180
70198
  }
70181
70199
  var inlineApprovalNativeRuntime = createChannelApprovalNativeRuntimeAdapter({
70182
- eventKinds: ["exec", "plugin"],
70200
+ eventKinds: INLINE_APPROVAL_EVENT_KINDS,
70183
70201
  availability: {
70184
70202
  isConfigured: (params) => {
70185
70203
  const resolved = resolveHandlerContext(params);
@@ -70310,5 +70328,5 @@ export {
70310
70328
  inlineApprovalNativeRuntime
70311
70329
  };
70312
70330
 
70313
- //# debugId=93963BB832359CF064756E2164756E21
70331
+ //# debugId=5E1234798083973564756E2164756E21
70314
70332
  //# sourceMappingURL=approval-handler.runtime.js.map