Skip to content

Suite green on Chrome 152, Windows and Go 1.23 #43

Closed

Description

@Fly-Playgroud

Parent

Spec: #33 (Baseline release). Section numbers refer to its Implementation Decisions.

What to build

The three failures the Snapshot shows on current toolchains are fixed rather than skipped, so the suite can run on the Target Chrome, on Windows and on Go 1.23 and later. This lands before the default browser becomes the Target Chrome, because the promise-leak test goes red the moment it does. Spec section 9; ticket #14, #15, #20.

Acceptance criteria

  • errors.Is(err, cdp.ErrCtxDestroyed) is true for both Execution context was destroyed. and Inspected target navigated or closed; ErrCtxNotFound is not merged in; upstream's promise-leak test passes unchanged against Chrome 152 or later and against Chromium 128.
  • The CDP client returns io.EOF for an in-flight call when the browser drops the connection on Linux, macOS and Windows (Windows' connection-reset error normalized); upstream's crash test passes on Windows with its intent unchanged; later calls report the closed connection.
  • The launcher's open-in-background test no longer constructs a zero-value os.Process and passes on Go 1.22, 1.23 and stable.
  • Verified locally on Windows and Linux; the Gate is green.

Blocked by

Activity

  1. Fly-Playgroud commented on Sep 6, 2026

    @Fly-Playgroud
    ContributorAuthor

    Input from #36 (minimal Gate). One of this ticket's acceptance criteria landed early, in #71: TestTestOpen no longer constructs a zero-value os.Process (Go 1.23 and later panic with handlePersistentRelease called in invalid mode when releasing one); the fake openExec now starts the test binary itself with -test.run=^$, a process that exists and exits at once. It passes on Go 1.23.7 locally and on Go 1.27.1 in the Gate. The Gate had to run on Go stable, so it could not wait for this ticket.

    Two observations from the same work, left for this ticket to judge:

    • launcher.Open calls p.Process.Release() without checking the error of p.Start(); when the browser binary cannot start, Process is nil and Release dereferences it. Upstream's test hid this behind the zero-value process.
    • On the Ubuntu 24.04 runner the promise-leak test passes against the downloaded Chromium 128 (the Gate's browser today); the ErrCtxDestroyed message change still needs Chrome 152 or later to reproduce, as this ticket says.
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

    ready-for-agentFully specified, ready for an AFK agent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions