Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
acbcc29
feat(cua): CUA Gateway passes #7-#14 — guards, rulesets, research, ec…
bb-connor Feb 18, 2026
c207c94
fix(cua): address PR #88 review — camelCase field acceptance + input_…
bb-connor Feb 18, 2026
c186b29
chore(vendor): re-vendor pyo3 0.28.1 → 0.28.2
bb-connor Feb 18, 2026
4e710c7
feat(cua): close runtime enforcement gaps and add fixture-backed brid…
bb-connor Feb 18, 2026
01e3b14
fix(cua): enforce connect egress and plain computer_use bridge mapping
bb-connor Feb 18, 2026
54869d2
feat(cua): harden runtime parity, reason codes, and drift checks
bb-connor Feb 18, 2026
94ece01
docs(cua): reconcile roadmap status and TODO consistency
bb-connor Feb 18, 2026
2bed212
fix(cua): resolve side-channel review gaps and dedupe reason taxonomy
bb-connor Feb 18, 2026
de34d0a
fix(agent): align OpenClaw gateway device auth handshake
bb-connor Feb 18, 2026
1f4f11c
test(hush-cli): harden abuse harness stability in CI
bb-connor Feb 19, 2026
7ae45fb
chore(cua): add pass18 notarization and soak execution playbook
bb-connor Feb 19, 2026
24bc0a9
docs(cua): add notarization credential discovery checklist
bb-connor Feb 19, 2026
33ccd60
fix(cua): harden soak and rdp matrix harness stability
bb-connor Feb 19, 2026
6f147f3
docs(cua): align roadmap status with pass18 release gates
bb-connor Feb 19, 2026
c5e2fd8
fix(cua): add hush-cli CUA parity and sync remote desktop rulesets
bb-connor Feb 19, 2026
3394c7a
docs(cua): refresh pass18 roadmap and readiness status
bb-connor Feb 19, 2026
23edf4f
fix(cua): close remaining policy parity review gaps
bb-connor Feb 19, 2026
44b3b17
docs(cua): track post-pass policy_event dedupe follow-up
bb-connor Feb 19, 2026
06a47a2
fix(cua): align computer_use default allowlist with 10-action surface
bb-connor Feb 19, 2026
39d3d46
style(rust): format cua_rulesets test for ci
bb-connor Feb 19, 2026
56b21ec
fix(cua): resolve identity fallback and guardrail warn semantics
bb-connor Feb 20, 2026
dea0b8d
docs(readme): refresh computer-use gateway positioning
bb-connor Feb 20, 2026
11bcd83
fix(taxonomy): preserve deny/warn reason-code precedence
bb-connor Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -880,6 +880,28 @@ jobs:
run: |
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
python -m pip install "jsonschema>=4,<5"

- name: Run CUA roadmap fixture harnesses
working-directory: ${{ github.workspace }}
run: |
python docs/roadmaps/cua/research/verify_cua_migration_fixtures.py
python docs/roadmaps/cua/research/verify_remote_desktop_policy_matrix.py
python docs/roadmaps/cua/research/verify_injection_capabilities.py
python docs/roadmaps/cua/research/verify_policy_event_mapping.py
python docs/roadmaps/cua/research/verify_postcondition_probes.py
python docs/roadmaps/cua/research/verify_remote_session_continuity.py
python docs/roadmaps/cua/research/verify_envelope_semantic_equivalence.py
python docs/roadmaps/cua/research/verify_repeatable_latency_harness.py
python docs/roadmaps/cua/research/verify_verification_bundle.py
python docs/roadmaps/cua/research/verify_browser_action_policy.py
python docs/roadmaps/cua/research/verify_session_recording_evidence.py
python docs/roadmaps/cua/research/verify_orchestration_isolation.py
python docs/roadmaps/cua/research/verify_cua_policy_evaluation.py
python docs/roadmaps/cua/research/verify_canonical_adapter_contract.py
python docs/roadmaps/cua/research/verify_provider_conformance.py
python docs/roadmaps/cua/research/verify_openclaw_cua_bridge.py
python docs/roadmaps/cua/research/verify_trycua_connector.py

- name: Run tests
run: python -m pytest
28 changes: 28 additions & 0 deletions crates/libs/clawdstrike/rulesets/remote-desktop-permissive.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Remote Desktop Permissive Ruleset
# Development-friendly CUA policy: allows all channels, observe-only enforcement
version: "1.2.0"
name: Remote Desktop Permissive
description: Permissive CUA security rules for development and testing
extends: remote-desktop

guards:
computer_use:
enabled: true
mode: observe

remote_desktop_side_channel:
clipboard_enabled: true
file_transfer_enabled: true
session_share_enabled: true

input_injection_capability:
allowed_input_types:
- "keyboard"
- "mouse"
- "touch"
require_postcondition_probe: false

settings:
fail_fast: false
verbose_logging: true
session_timeout_secs: 7200 # 2 hours
30 changes: 30 additions & 0 deletions crates/libs/clawdstrike/rulesets/remote-desktop-strict.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Remote Desktop Strict Ruleset
# Maximum CUA security for high-security environments
version: "1.2.0"
name: Remote Desktop Strict
description: Strict CUA security rules for high-security remote desktop environments
extends: remote-desktop

guards:
computer_use:
enabled: true
mode: fail_closed
allowed_actions:
- "remote.session.connect"
- "remote.session.disconnect"
- "input.inject"

remote_desktop_side_channel:
clipboard_enabled: false
file_transfer_enabled: false
session_share_enabled: false

input_injection_capability:
allowed_input_types:
- "keyboard"
require_postcondition_probe: true

settings:
fail_fast: true
verbose_logging: false
session_timeout_secs: 1800 # 30 minutes
36 changes: 36 additions & 0 deletions crates/libs/clawdstrike/rulesets/remote-desktop.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Remote Desktop Agent Ruleset
# Moderate CUA security policy for remote desktop AI agents
version: "1.2.0"
name: Remote Desktop Agent
description: Security rules for AI agents operating via remote desktop (CUA)
extends: ai-agent

guards:
computer_use:
enabled: true
mode: guardrail
allowed_actions:
- "remote.session.connect"
- "remote.session.disconnect"
- "remote.session.reconnect"
- "input.inject"
- "remote.clipboard"
- "remote.file_transfer"
- "remote.session_share"

remote_desktop_side_channel:
clipboard_enabled: true
file_transfer_enabled: true
session_share_enabled: false
max_transfer_size_bytes: 104857600 # 100MB
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Policy contradiction in remote-desktop ruleset configuration

High Severity

The remote-desktop ruleset has contradictory policy configuration: computer_use.allowed_actions includes remote.clipboard and remote.file_transfer (lines 17-18), but remote_desktop_side_channel sets clipboard_enabled: false and file_transfer_enabled: false (lines 26-27). This creates a policy bypass where the computer_use guard in guardrail mode will allow these actions, but the remote_desktop_side_channel guard will deny them, causing inconsistent enforcement depending on guard evaluation order. Additionally, max_transfer_size_bytes is configured (line 32) even though file_transfer_enabled is false, making the size limit dead configuration.

Fix in Cursor Fix in Web


input_injection_capability:
allowed_input_types:
- "keyboard"
- "mouse"
require_postcondition_probe: false

settings:
fail_fast: false
verbose_logging: false
session_timeout_secs: 7200 # 2 hours
Loading
Loading