openclaw - ✅(Solved) Fix Expand Windows node default allowlist for safe declared companion commands [1 pull requests, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#71876Fetched 2026-04-26 05:07:11
View on GitHub
Comments
0
Participants
1
Timeline
2
Reactions
0
Participants
Timeline (top)
cross-referenced ×1labeled ×1

Root Cause

Related documentation gap: gateway.nodes.allowCommands and gateway.nodes.denyCommands should be documented in the gateway configuration reference, including the requirement to re-pair after command-list changes because approved pairing records snapshot declared commands.

Fix Action

Fixed

PR fix notes

PR #71884: fix: allow safe Windows companion node commands

Description (problem / solution / changelog)

Summary

  • expand Windows node defaults to allow safe declared companion commands by default
  • keep dangerous media commands (camera.snap, camera.clip, screen.record) gated behind gateway.nodes.allowCommands
  • document node command policy gates, allow/deny shaping, and re-pairing after declared command changes

Fixes #71876

Validation

  • node scripts/run-vitest.mjs run src/gateway/gateway-misc.test.ts
  • pnpm exec oxfmt --check src/gateway/node-command-policy.ts src/gateway/gateway-misc.test.ts docs/nodes/index.md docs/gateway/configuration-reference.md

Changed files

  • docs/gateway/configuration-reference.md (modified, +1/-1)
  • docs/nodes/index.md (modified, +17/-0)
  • src/gateway/gateway-misc.test.ts (modified, +25/-0)
  • src/gateway/node-command-policy.ts (modified, +8/-1)

Code Example

windows: [...SYSTEM_COMMANDS]
RAW_BUFFERClick to expand / collapse

Windows nodes are currently treated like Linux/headless exec hosts in src/gateway/node-command-policy.ts:

windows: [...SYSTEM_COMMANDS]

That means the gateway filters out safe companion-app commands that a Windows node explicitly declares, including canvas.*, camera.list, location.get, and screen.snapshot. The Windows tray app is now a full companion node, not just an exec host, so this causes confusing behavior: the node can implement and advertise a command, but the gateway drops/rejects it unless users manually configure gateway.nodes.allowCommands.

Proposal:

  • Add safe declared companion commands to Windows defaults, similar to macOS:
    • canvas.present
    • canvas.hide
    • canvas.navigate
    • canvas.eval
    • canvas.snapshot
    • canvas.a2ui.push
    • canvas.a2ui.pushJSONL
    • canvas.a2ui.reset
    • camera.list
    • location.get
    • screen.snapshot
    • optionally device.info / device.status
  • Keep dangerous/privacy-heavy commands explicit opt-in via gateway.nodes.allowCommands:
    • camera.snap
    • camera.clip
    • screen.record
    • write commands such as contacts.add, calendar.add, etc.

This does not grant capabilities to headless Windows hosts by itself. A command still has to pass both gates: the node must declare it in commands, and the gateway policy must allow it. Headless Windows node hosts that only declare system.run / system.which remain exec-only.

Related documentation gap: gateway.nodes.allowCommands and gateway.nodes.denyCommands should be documented in the gateway configuration reference, including the requirement to re-pair after command-list changes because approved pairing records snapshot declared commands.

extent analysis

TL;DR

Update the windows configuration in src/gateway/node-command-policy.ts to include safe companion-app commands.

Guidance

  • Identify the list of safe companion commands that should be added to the Windows defaults, such as canvas.present, camera.list, and location.get.
  • Update the windows configuration to include these safe commands, while keeping dangerous commands explicit opt-in via gateway.nodes.allowCommands.
  • Verify that the updated configuration allows the Windows node to implement and advertise the added commands without being dropped or rejected by the gateway.
  • Consider documenting the gateway.nodes.allowCommands and gateway.nodes.denyCommands configuration options, including the requirement to re-pair after command-list changes.

Example

windows: [
  ...SYSTEM_COMMANDS,
  'canvas.present',
  'canvas.hide',
  'canvas.navigate',
  'canvas.eval',
  'canvas.snapshot',
  'canvas.a2ui.push',
  'canvas.a2ui.pushJSONL',
  'canvas.a2ui.reset',
  'camera.list',
  'location.get',
  'screen.snapshot',
]

Notes

This update only affects Windows nodes and does not grant capabilities to headless Windows hosts. The node must still declare the command in commands and the gateway policy must allow it.

Recommendation

Apply the proposed workaround by updating the windows configuration to include safe companion-app commands, as this will resolve the confusing behavior and allow the Windows node to function as intended.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING