Skip to content

Establish native-Windows CI and compatibility harness #250

Description

@KenTaniguchi-R

Why

AgentCall has Linux and macOS coverage, but no Windows compatibility evidence. The published CLI explicitly declares "os": ["darwin"], the main CI job runs on Ubuntu, the packed-consumer job runs on macOS, and README still names non-macOS platforms as a v1 non-goal.

Before changing supervision or packaging, establish a native-Windows feedback loop and turn the current failures into an explicit implementation inventory. A Linux Docker container on a Mac is not Windows evidence: it cannot exercise NT paths, ACLs, PowerShell quoting, Windows process trees, Task Scheduler, or Windows agent binaries.

This is the Windows successor to #14, which was closed by #195 after delivering Linux/systemd/container support.

Scope

  • Add a windows-2025 GitHub Actions job that runs on a real GitHub-hosted Windows VM.
  • Exercise Node 20, 22, and 24 where the published engines contract matters; avoid multiplying the entire slow suite unless the results justify it.
  • Run build, typecheck, and platform-neutral tests under PowerShell.
  • Pack the shared and CLI workspaces and install the tarballs into a clean prefix on Windows.
  • Run agentcall --version and agentcall --help; record the expected setup/doctor/listener failures until the implementation issue lands.
  • Audit and classify Windows blockers in at least these areas:
    • npm os metadata
    • absolute/managed-policy paths
    • Unix-only fixture shebangs and executable bits
    • chmod(0600/0700) versus Windows ACLs
    • launchd/systemd listener supervision
    • detached process groups, negative PIDs, and SIGTERM/SIGKILL teardown
    • binary discovery and .cmd/.exe resolution
    • shell/PowerShell quoting and paths containing spaces

Acceptance criteria

  • A manually dispatchable native-Windows CI job exists and produces useful results even while full Windows support is incomplete.
  • Platform-neutral tests pass on Windows; genuinely Unix-specific tests are named and gated explicitly rather than failing accidentally.
  • The packed CLI smoke test runs from a clean Windows install location.
  • Every remaining failure is linked to the functional Windows-support issue, with no undocumented red tests.
  • A short manual probe is documented for a real Windows VM (Daytona is acceptable) covering setup, foreground listen, one inbound call, cancellation/timeout, status, and uninstall.

Testing environment decision

Use GitHub-hosted Windows VMs as the required regression gate. Use a Daytona Windows VM for interactive debugging and the end-to-end probe. Docker on macOS may remain a Linux portability check, but is not part of the Windows support claim.

Activity

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

Metadata

Metadata

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions