Skip to content

feat: Windows virtual display confinement — isolate agent to Parsec VDD monitor [#29]#46

Open
richard-devbot wants to merge 4 commits intoCursorTouch:mainfrom
richard-devbot:richardson/phase2-windows-vdd
Open

feat: Windows virtual display confinement — isolate agent to Parsec VDD monitor [#29]#46
richard-devbot wants to merge 4 commits intoCursorTouch:mainfrom
richard-devbot:richardson/phase2-windows-vdd

Conversation

@richard-devbot
Copy link
Copy Markdown

Summary

Sub-component 5 of #29 (agent workspace isolation).

Adds VirtualDisplayManager (Windows-only) that creates a dedicated virtual monitor for the agent using the Parsec Virtual Display Driver, providing spatial isolation at the display level — agent windows live on a separate monitor the user never sees.

  • Detects VDD installation via registry/driver check
  • Creates/removes virtual display via VDD API
  • Moves agent windows to virtual monitor via SetWindowPos + EnumDisplayMonitors
  • Fails gracefully when VDD not installed (returns False, no crash)
  • All ctypes calls mocked-safe on non-Windows

Requires: Parsec Virtual Display Driver (optional Windows-only dependency)

Related: #29

Richardson Gunde and others added 2 commits April 19, 2026 21:38
…ursorTouch#29]

Adds VirtualDisplayManager (Windows-only) that creates a dedicated virtual
monitor for the agent using the Parsec Virtual Display Driver, providing
spatial isolation at the display level. All ctypes/Win32 calls are guarded
so the module imports cleanly on macOS and Linux. 28 tests, all passing.
- test_control_center.py: update import from operator_use.agent.tools.builtin
  (deleted in main) to operator_use.tools.control_center; add side-effect import
  of operator_use.agent.tools to resolve circular import; update all patch paths.
- test_computer_plugin.py: remove BEFORE_LLM_CALL assertions — 9f5d002 removed
  _state_hook registration from BEFORE_LLM_CALL by design (state captured inside
  computer_task loop, not on every main-agent LLM call).
- test_browser_plugin.py: same BEFORE_LLM_CALL removal; register_hooks now only
  stores the hooks reference without registering any handler.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@richard-devbot richard-devbot force-pushed the richardson/phase2-windows-vdd branch from 23537e8 to f2891e4 Compare April 19, 2026 16:18
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