Skip to content

fix(runner): pass Claude sandbox settings safely on Windows #230

Open

Description

@AmeinEskinder

Current scope (maintainer, 2026-10-20)

Blocked on Claude Code. Its sandbox runs on macOS, Linux and WSL2, and on native Windows Claude Code runs commands unsandboxed (code.claude.com/docs/en/sandboxing). The runner launches Claude writer lanes with failIfUnavailable: true, so on native Windows a writer lane cannot start, with or without a fix to argument transport.

PR #231 holds the design to port when Claude Code supports the sandbox on native Windows: pass the sandbox settings as a file instead of inline JSON. Its Windows regression test can then run in the existing windows-latest job (.github/workflows/windows-hooks.yml). Until then, Claude writer lanes on Windows run under WSL2.

Original request

Windows isolated Claude writers fail before the child starts when the launcher passes inline JSON to --settings through claude.cmd. Bun rejects the JSON's quotes as command file special characters. Authentication succeeds, but the receipt records child-failed with a launcher error for argument args[9].

Use a file path for the existing settings or route to an official executable without shell quoting. Preserve the enabled Bash sandbox, automatic approval only within that sandbox, refusal of unsandboxed commands, failure when the sandbox is unavailable, and the linked worktree's shared Git directory write denial.

Add a Windows regression that starts a real command file, verifies the child receives the complete settings, and preserves the existing output reservation and error reporting behavior. Report the actual Windows sandbox boundary separately from argument transport.

Activity

  1. ericlitman commented on Oct 21, 2026

    @ericlitman
    Owner

    Blocked on Claude Code: its sandbox runs on macOS, Linux and WSL2, and on native Windows it runs commands unsandboxed (code.claude.com/docs/en/sandboxing). Claude writer lanes require the sandbox. PR #231 holds the design we'd port when that changes. Use WSL2 for Claude writer lanes until then.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions