Skip to content

Retire the WSL2 path for persistent PTY live legs on Windows #537

Open

Description

@Blind-Striker

From the v2.1.x pin on (#532), upstream's opencode-pty daemon (@opencode-ai/pty 0.3.1) ships a win32 binary, and the server enables persistent PTYs on Windows. #532's CI proved it: the persistent PTY live round trip and SubmitAsync pass on Windows on net10.0, net11.0 and net472 through the daemon-present arm, and the test gate now expects the daemon on every platform.

The WSL2 path existed only because there was no win32 daemon, so it is now a workaround without a reason:

  • docs/engineering/developing-on-windows.md, "Live legs that need a Linux-hosted server": its premise, "no win32 package exists at the pinned upstream commit", is false at the pin. The WSL2 clone recipe, the node_modules clobbering warning tied to it, and the "exact-pin discipline" paragraph exist for that leg.
  • tests/OpenCode.Sdk.Sandbox/README.md, "Live legs against a server on another host": it names the WSL2 persistent PTY leg as "the standing case" because "the opencode-pty daemon ships no win32 package".

What stays

  • The fixture's external-endpoint mode (OPENCODE_SDK_TESTS_ENDPOINT / OPENCODE_SDK_TESTS_PASSWORD). It is general: it runs the suite against any server hosted elsewhere, so only its WSL2-specific wording changes.
  • OPENCODE_SDK_TESTS_PTY_DAEMON=0|1. It still selects either arm, for example for a host whose server cannot start the daemon.

Done when

  • Neither document presents WSL2 as needed for persistent PTY live legs on Windows. The developing-on-windows section either goes, or keeps only what still holds on its own (for example, "Driving WSL from a Windows shell", if other legs use it).
  • No other document or comment says the daemon ships no win32 package. Checked with a repository search for win32 and WSL2 near "persistent" and "daemon".
  • The fixture's remarks keep describing external-endpoint mode without implying that WSL2 is required.

Activity

  1. added this to the 1.0 milestone on Oct 23, 2026
  2. modified the milestones: 1.0, 1.1 on Oct 26, 2026
  3. Blind-Striker commented on Oct 26, 2026

    @Blind-Striker
    CollaboratorAuthor

    Moved to milestone 1.1 by the second 1.0 triage (2026-10-26, maintainer-approved): it is internal, additive, tooling or test structure, so it does not block 1.0.0. The issue stays as it is.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions