Skip to content

dev -> main: remote desktop, operations layer, USB passthrough, executor coverage#189

Merged
JE-Chen merged 1 commit into
mainfrom
dev
May 21, 2026
Merged

dev -> main: remote desktop, operations layer, USB passthrough, executor coverage#189
JE-Chen merged 1 commit into
mainfrom
dev

Conversation

@JE-Chen
Copy link
Copy Markdown
Member

@JE-Chen JE-Chen commented May 21, 2026

Summary

Roll-up of the dev branch into main. Major themes:

  • Remote Desktop: full host/viewer over TCP, WebSocket, and WebRTC; TLS, persistent host ID, audio streaming, bidirectional clipboard + file transfer; GUI tab redesigned around connection cards and split into a gui/remote_desktop/ subpackage with a pop-out window. WebRTC tab degrades gracefully when the optional webrtc extra is missing.
  • Executor command coverage (this commit): 17 new AC_* commands expose WebSocket and WebRTC host/viewer flows to action files, the socket server, the scheduler, and the visual script builder — closing the CLAUDE.md feature-delivery gap where only the TCP transport had headless executor coverage.
  • Operations layer + USB passthrough: new operations layer and USB Phase 2 chain landed across rounds 22-47.
  • Triggers + secrets: webhook (HTTP push) trigger, IMAP email-poll trigger, encrypted secret manager with ${secrets.NAME} placeholders.
  • Profiler + run history: per-action profiler with hot-spot view; timeline and failure thumbnails in run history tab.
  • Driver-level input backends: Interception, uinput, ViGEm.
  • MCP server: remote desktop now exposed over MCP.
  • Static analysis sweep: multiple rounds clearing Sonar / Codacy / Bandit findings (PRs Add OCR ext, runtime vars, LLM planner, remote desktop, plus matching GUI #181-Profiler, run-history timeline, secrets, webhook + email triggers, embedder fixes #184).
  • CI: Python 3.13 + 3.14 added to the matrix; WS handshake flakes addressed.

Test plan

  • CI green on all matrix entries (Win/macOS/Linux × 3.10-3.14).
  • python -m pytest test/unit_test/ passes locally.
  • Remote desktop suite green: pytest test/unit_test/headless/test_remote_desktop_*.py test/unit_test/headless/test_webrtc_inspector.py test/unit_test/headless/test_turn_config.py — verified locally 126 passed, 2 skipped (skips require aiortc + av).
  • Top-level package still Qt-free: python -c "import sys, je_auto_control; assert not any('PySide6' in m for m in sys.modules)" exits 0.
  • GUI smoke test: launch start_autocontrol_gui(), open the Remote Desktop tab, confirm WebRTC sub-tab degrades cleanly when the extra is absent.

Only the TCP transport had JSON-action coverage; WebSocket and WebRTC
host/viewer flows were reachable from Python but not from action files,
the socket server, or the scheduler. Extend the registry singleton with
per-transport slots and wire 17 AC_* commands so every backend honours
the CLAUDE.md feature delivery rule that all features ship a headless
executor surface.
@sonarqubecloud
Copy link
Copy Markdown

@JE-Chen JE-Chen merged commit f9784fb into main May 21, 2026
20 of 27 checks passed
@codacy-production
Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 68 complexity · 10 duplication

Metric Results
Complexity 68
Duplication 10

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant