Skip to content

Computer pool: manage per-bot desktops across Mac and Windows hosts #508

Description

@lightcloud00

Problem

Per-bot Local VM mode can run two desktops on one OpenMausBot host, and the Existing VM connector can attach one user-managed Linux guest. Neither path lets one OpenMausBot control plane assign bot A to a Mac-hosted desktop and bot B to a Windows-hosted Podman desktop.

This leaves multi-machine users choosing between two separate OpenMausBot apps or concentrating both desktops on one physical host.

Proposed contract

  • Pair a bounded OpenMaus computer worker running on each trusted host.
  • Give each worker an immutable ID plus advertised capabilities such as platform, runtime, capacity, and desktop readiness.
  • Store a per-bot worker target; never store raw SSH keys, bearer values, or host credentials in bot config or runtime events.
  • Route lifecycle, screenshot, and control calls through an authenticated worker protocol with hostname and origin pinning, short leases, timeouts, and fail-closed reconnect behavior.
  • Prefer Podman on Windows and the supported local runtime on macOS.
  • Keep one interactive human control lease per desktop and make the two-up workspace switch ownership explicitly.
  • Treat an unreachable worker as unavailable without stopping healthy desktops on another worker.

Acceptance

  1. Pair one macOS worker and one Windows 11 / Podman worker with one OpenMausBot control plane.
  2. Assign two bots to different workers and start or reuse one isolated desktop on each.
  3. Show both desktops in the two-up workspace while both bot turns can continue.
  4. Switch human control without overlapping input ownership.
  5. Restart the control plane and recover worker identities, per-bot assignments, and safe lease state.
  6. Disconnect either worker and prove the other remains usable.
  7. Prove credentials and viewer URLs never enter config snapshots, task events, logs, or exported packages.
  8. Cover macOS, Linux, and Windows CI with a fake-worker protocol plus one exact Windows Podman acceptance receipt.

Related

This issue is intentionally separate from BYO VPS: the current VPS contract is an x86_64 Linux Docker target, not a Windows worker pool.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions