OpenClaw
OpenClaw lets limited browsers request elevated access
OpenClaw proposes an explicit elevation request for limited browser sessions, alongside realtime transcription over WebSockets and one-paste device pairing links. The cluster moves browser, voice and pairing surfaces toward visible capability negotiation instead of ambient privilege.
openclaw/openclaw PR #121459 is the inspected primary source: “feat: let limited browsers request admin access.” The related records below were inspected as supporting context rather than independent confirmation.
The facts
- openclaw/openclaw PR #121459 was created 2026-08-10T06:17:45Z and was open at inspection; its title is “feat: let limited browsers request admin access.” - openclaw/openclaw PR #118977 was created 2026-08-03T21:30:16Z and was open at inspection; its title is “feat(sdk): support realtime transcription WebSocket protocols.” - openclaw/openclaw PR #120768 was created 2026-08-08T23:27:28Z and was open at inspection; its title is “feat(pairing): one-paste device pairing via oc-pair setup links.” - The repository reported 385963 stars, 5628 open issues, default branch main, and last push 2026-08-12T01:06:05Z. - The latest tagged-release baseline checked was v2026.7.1-2 published 2026-08-04T00:41:26Z.
What changed
openclaw/openclaw PR #121459 reports: Part of #121381 What Problem This Solves A browser that was paired with limited operator scopes had no recoverable path to administrator access. Ordinary reconnects correctly preserve the stored narrow scope set, while a broader device-token reconnect is rejected before pairing authorization. The New Session folder picker then surfaced an admin-only dead end without telling the operator how to repair it. Why This Change Was Made This adds two additive, read-scoped Gateway methods that let the calling live device file and wait on the existing device-pairing scope-upgrade request. Approval still uses the existing device.pair.approve / device.pair.reject surface. The Gateway persists the approval and rotated operator token first, then an identity-bound waiter rereads the durable pairing state and returns the fresh token only to the same signed device. The browser stores that credential before reconnecting. The Control UI now shows an explicit limited-access banner, pending approval guidance, Retry and Cancel actions, and an accessible repair tooltip on disabled folder browsing. Ordinary reconnect behavior remains unchanged. This implementation is AI-assisted and was manually inspected, tested, source-blind behavior-validated,
openclaw/openclaw PR #118977 reports: Closes #118952 What Problem This Solves Realtime transcription plugin authors cannot use the shared WebSocket session helper with upstream servers that require subprotocol negotiation. The official FunASR server, for example, rejects the upgrade with HTTP 400 because the helper has no way to request its required binary protocol. Why This Change Was Made The shared session owns WebSocket construction, so the narrow transport fix is a generic optional protocols field at that boundary. It forwards string | string[] to the standard ws protocol argument and preserves the existing constructor path when omitted. No provider ID, configuration, default, dependency, or bundled plugin is added. The PR remains intentionally limited to the transport option, its regression test, and provider-author documentation. Whether plugin-sdk/realtime-transcription should graduate from private-local to a supported typed third-party SDK subpath remains an explicit maintainer product/API decision; this PR does not silently widen that package contract. User Impact Realtime transcription integrations can negotiate required WebSocket subprotocols while retaining OpenClaw reconnect, bounded queue, proxy capture, graceful close, and diagnostic behavior. Existing protocol-free providers retain the prior
openclaw/openclaw PR #120768 reports: What Problem This Solves Pairing a new device today means running openclaw node run with host/port/TLS flags, exporting a token, then approving a request in another surface. docs/plan/runners.md milestone 3 specifies a one-paste flow reusing the shipped setup-code machinery — with the explicit security non-goal that pairing links never pre-approve exec. Why This Change Was Made Closes the four gaps the plan names, changing no approval semantics: **oc-pair:// ** — thin wrapper over the existing base64url PairingSetupPayload; every redeemer (TS, iOS DeepLinks, Android GatewayConfigResolver) accepts bare and wrapped forms. **TLS pin in the payload** — additive tlsFingerprint? (plus expiresAtMs? so countdowns are honest); pins apply only to known direct/remote leaves, never proxy or Tailscale Serve certificates; old blobs parse unchanged. **openclaw node run --pair ** — decode → connect; precedence: explicit flags > pair payload > saved config (stated in help). Bootstrap token stays 10-min single-use with the node profile; first system.run still requires pending approval or SSH-verify. node install --pair deliberately omitted: persisting a short-lived bearer URL into service config is unsafe. **Control UI**
Why it matters
Convenience surfaces become authority surfaces the moment they can request admin access, open realtime channels or bootstrap a device. The control plane needs to bind every request to a session, user and expiring intent. The operator test is whether visible output, retained state and authority still describe the same event after retries, background work or restart.
Current
The primary record was open when captured on 2026-08-12. The tagged-release baseline was v2026.7.1-2 published 2026-08-04T00:41:26Z. Repository metadata, full source bodies, current pull requests and issues, releases, Google News, Hacker News, Lobsters, Metamesh and the rendered ClawCharts row were inspected. ClawCharts selected the subject; it did not prove the claim.
Evidence
The primary URL is https://github.com/openclaw/openclaw/pull/121459. Supporting records are https://github.com/openclaw/openclaw/pull/118977 and https://github.com/openclaw/openclaw/pull/120768. Source bodies, timestamps and states are preserved in the daily evidence bundle. Test counts and reproductions remain attributed to their authors unless identified as independently rerun.
Source boundary
Open work is described as open, closed work as closed, and operator reports as reports. A pull request is evidence of proposed or reviewed direction, not proof of a shipped release. Search residue, package mirrors and historically published source spines were excluded.
Operator take
Treat elevation and pairing links as short-lived capability grants, show the effective scope before approval, and keep realtime transports under the same revocation model. Preserve a before-state receipt, make the smallest reversible change, and verify the original failure independently.
Caveat
Public project records are mutable. Status, scope and evidence can change after publication. This brief records the inspected state and does not authorize changes to a reader’s deployment.
Source inspected; source state, environment and release boundary remain explicit.