You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Gateway: treat scope-limited probe RPC as degraded reachability (#45622)
* Gateway: treat scope-limited probe RPC as degraded
* Docs: clarify gateway probe degraded scope output
* test: fix CI type regressions in gateway and outbound suites
* Tests: fix Node24 diffs theme loading and Windows assertions
* Tests: fix extension typing after main rebase
* Tests: fix Windows CI regressions after rebase
* Tests: normalize executable path assertions on Windows
* Tests: remove duplicate gateway daemon result alias
* Tests: stabilize Windows approval path assertions
* Tests: fix Discord rate-limit startup fixture typing
* Tests: use Windows-friendly relative exec fixtures
---------
Co-authored-by: Mainframe <mainframe@MainfraacStudio.localdomain>
Copy file name to clipboardExpand all lines: docs/cli/gateway.md
+17Lines changed: 17 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -126,6 +126,23 @@ openclaw gateway probe
126
126
openclaw gateway probe --json
127
127
```
128
128
129
+
Interpretation:
130
+
131
+
-`Reachable: yes` means at least one target accepted a WebSocket connect.
132
+
-`RPC: ok` means detail RPC calls (`health`/`status`/`system-presence`/`config.get`) also succeeded.
133
+
-`RPC: limited - missing scope: operator.read` means connect succeeded but detail RPC is scope-limited. This is reported as **degraded** reachability, not full failure.
134
+
- Exit code is non-zero only when no probed target is reachable.
135
+
136
+
JSON notes (`--json`):
137
+
138
+
- Top level:
139
+
-`ok`: at least one target is reachable.
140
+
-`degraded`: at least one target had scope-limited detail RPC.
141
+
- Per target (`targets[].connect`):
142
+
-`ok`: reachability after connect + degraded classification.
143
+
-`rpcOk`: full detail RPC success.
144
+
-`scopeLimited`: detail RPC failed due to missing operator scope.
145
+
129
146
#### Remote over SSH (Mac app parity)
130
147
131
148
The macOS app “Remote over SSH” mode uses a local port-forward so the remote gateway (which may be bound to loopback only) becomes reachable at `ws://127.0.0.1:<port>`.
@@ -236,12 +240,21 @@ export async function gatewayStatusCommand(
236
240
});
237
241
}
238
242
}
243
+
for(constresultofdegradedScopeLimited){
244
+
warnings.push({
245
+
code: "probe_scope_limited",
246
+
message:
247
+
"Probe diagnostics are limited by gateway scopes (missing operator.read). Connection succeeded, but status details may be incomplete. Hint: pair device identity or use credentials with operator.read.",
248
+
targetIds: [result.target.id],
249
+
});
250
+
}
239
251
240
252
if(opts.json){
241
253
runtime.log(
242
254
JSON.stringify(
243
255
{
244
256
ok,
257
+
degraded,
245
258
ts: Date.now(),
246
259
durationMs: Date.now()-startedAt,
247
260
timeoutMs: overallTimeoutMs,
@@ -274,7 +287,9 @@ export async function gatewayStatusCommand(
0 commit comments