Skip to content

v2.2.0

Choose a tag to compare

@cursor cursor released this 03 Sep 06:42
b65ce1c

The project runtime is Bun 1.4.0. CLI, worker, tests, CI, and Cloud Agent
install run on Bun. The published library still loads under Node 22.

Changed

  • The project runtime is Bun 1.4.0. CLI, worker, tests, CI, and Cloud Agent
    install run on Bun. betterwright doctor reports Bun when that is the host.
    The published library still loads under Node 22 if a consumer imports it
    from Node; worker processes inherit the host's process.execPath.
    MCP registration uses bunx betterwright mcp. Install hints from doctor
    and missing optional peers suggest bun add when the host is Bun.
  • --version and --help load a thin CLI router and skip cli-main.
    bun test runs the unit files in parallel.
  • Cross-platform CI still reports the branch-protected
    Cross-platform unit tests (<os>, 22|24) names. Those jobs run Bun 1.4.

Fixed

  • The SOCKS guard maps RFC 6761 localhost / *.localhost names to
    127.0.0.1 then ::1 without OS DNS, then still policy-checks every
    loopback literal. Chromium site-isolation hosts such as
    signup.acme.localhost work on glibc that does not resolve .localhost.
  • Worker --import flags copied from NODE_OPTIONS under Bun now pass a
    filesystem path. Node's pathToFileURL percent-encodes ~, and Bun then
    looks for a file that does not exist — Windows runners use the 8.3 home
    RUNNER~1.
  • The session daemon is spawned through the thin CLI router
    (dist/bin/betterwright.js), not cli-main. After the router split,
    cli-main only exported runCli, so a fresh daemon child exited without
    creating its socket.
  • Guard-proxy unit tests wait on a wall-clock deadline instead of a
    bounded setImmediate loop, so parallel bun test on a loaded macOS
    runner cannot miss the backoff delay hook.