agent-orchestrator/packages/plugins/workspace-worktree/CHANGELOG.md

3.4 KiB

@aoagents/ao-plugin-workspace-worktree

0.7.0

Minor Changes

  • 0f5ae0b: 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-<sessionId>,
    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.

    ao open is now cross-platform: it sources sessions from sm.list()
    instead of tmux list-sessions (so runtime-process sessions on Windows
    appear), and the open action branches per OS — open-iterm-tab stays the
    macOS path, native handling on Windows and Linux.

    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.

Patch Changes

  • a33b2ba: Restoring a session whose worktree directory was cleaned up but whose branch still existed locally would 422 with fatal: a branch named <X> already exists. The recovery path in workspace.restore() unconditionally fell through to git worktree add -b, even when the local branch was present (which destroy() deliberately preserves). The catch now checks for the local branch and re-attaches it without -b/-B, preserving the session's commits. (#1741)
  • Updated dependencies [0f5ae0b]
  • Updated dependencies [fe33bb7]
  • Updated dependencies [7c46dc9]
    • @aoagents/ao-core@0.7.0

0.6.0

Patch Changes

  • Updated dependencies
  • Updated dependencies [40aeb78]
  • Updated dependencies
  • Updated dependencies
    • @aoagents/ao-core@0.6.0

0.5.0

Patch Changes

  • Updated dependencies [dd07b6b]
    • @aoagents/ao-core@0.5.0

0.4.0

Patch Changes

0.2.0

Patch Changes

  • Updated dependencies [3a650b0]
    • @composio/ao-core@0.2.0