From 13cdbf224667b2805e24933276379828ea4e6419 Mon Sep 17 00:00:00 2001 From: Priyanshu Choudhary <57816400+Priyanchew@users.noreply.github.com> Date: Tue, 5 May 2026 02:21:47 +0530 Subject: [PATCH] chore: add changeset for native Windows support Minor bump across the linked package group. The next release PR will consume this and bump from 0.4.0 to 0.5.0. Co-Authored-By: Claude Sonnet 4.6 --- .changeset/native-windows-support.md | 49 ++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .changeset/native-windows-support.md diff --git a/.changeset/native-windows-support.md b/.changeset/native-windows-support.md new file mode 100644 index 000000000..620ba4414 --- /dev/null +++ b/.changeset/native-windows-support.md @@ -0,0 +1,49 @@ +--- +"@aoagents/ao-core": minor +"@aoagents/ao-cli": minor +"@aoagents/ao": minor +"@aoagents/ao-plugin-runtime-process": minor +"@aoagents/ao-plugin-runtime-tmux": minor +"@aoagents/ao-plugin-agent-claude-code": minor +"@aoagents/ao-plugin-agent-codex": minor +"@aoagents/ao-plugin-agent-aider": minor +"@aoagents/ao-plugin-agent-opencode": minor +"@aoagents/ao-plugin-workspace-worktree": minor +"@aoagents/ao-plugin-workspace-clone": minor +"@aoagents/ao-plugin-tracker-github": minor +"@aoagents/ao-plugin-tracker-linear": minor +"@aoagents/ao-plugin-scm-github": minor +"@aoagents/ao-plugin-notifier-desktop": minor +"@aoagents/ao-plugin-notifier-slack": minor +"@aoagents/ao-plugin-notifier-webhook": minor +"@aoagents/ao-plugin-notifier-composio": minor +"@aoagents/ao-plugin-terminal-iterm2": minor +"@aoagents/ao-plugin-terminal-web": minor +"@aoagents/ao-web": minor +--- + +feat: native Windows support + +AO now runs natively on Windows. The default runtime on Windows is `process` +(ConPTY via `node-pty` + named pipes — no tmux, no WSL); the dashboard, +agents (claude-code, codex, kimicode, aider, opencode, cursor), `ao doctor`, +and `ao update` all work out of the box. Each session gets a small detached +pty-host helper that wraps a ConPTY behind `\\.\pipe\ao-pty-`, +registered so `ao stop` can reach it. + +A new cross-platform abstraction layer (`packages/core/src/platform.ts`) +centralises every platform branch behind helpers like `isWindows()`, +`getDefaultRuntime()`, `getShell()`, `killProcessTree()`, `findPidByPort()`, +and `getEnvDefaults()`. Path comparison uses `pathsEqual` / +`canonicalCompareKey` to handle NTFS case-insensitivity. PATH wrappers for +agent plugins (`gh`, `git`) ship as `.cjs` + `.cmd` shims on Windows; +`script-runner` runs `.ps1` siblings of `.sh` scripts via PowerShell. New +`ao-doctor.ps1` / `ao-update.ps1` shipped. + +Behaviour on macOS and Linux is unchanged. Every Windows path is gated +behind `isWindows()`; `runtime-tmux` and the bash hook flows are untouched. + +See `docs/CROSS_PLATFORM.md` for the developer reference (helper inventory, +EPERM-vs-ESRCH gotcha, PowerShell-vs-bash differences, pre-merge checklist). +The Windows runtime architecture (pty-host, pipe protocol, registry, sweep, +mux WS Windows branch) is documented in `docs/ARCHITECTURE.md`.