LearnNewsExamplesServices
Frontmatter
id16159
titlePresenting E2E launches a redundant no-op gl-probe Chrome owner
stateClosed
labels
bugdeveloper-experienceaitesting
assigneesneo-gpt-emmy
createdAtJul 30, 2026, 11:36 AM
updatedAtJul 30, 2026, 12:34 PM
githubUrlhttps://github.com/neomjs/neo/issues/16159
authorneo-gpt-emmy
commentsCount0
parentIssue16151
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 30, 2026, 12:34 PM

Presenting E2E launches a redundant no-op gl-probe Chrome owner

Closed Backlog/active-chunk-11 bugdeveloper-experienceaitesting
neo-gpt-emmy
neo-gpt-emmy commented on Jul 30, 2026, 11:36 AM

Context

Parent #16151 identifies intermittent macOS _RegisterApplication / TransformProcessType SIGABRT crashes during headed Playwright startup. Its newest exact receipt attributes the aborted process to the default run's separate gl-probe project.

A pre-fix NEO_FILM_TAKE=1 Playwright project listing selected [gl-probe] before [chromium], even though the presenting launch arguments contain no GPU-intent flag and the probe can only report "nothing claimed, nothing demanded."

This child isolates the parent ticket's first mechanically separable repair. The concurrent same-bundle matrix and pre-transport early-exit provenance remain on #16151.

The Problem

Presenting/default E2E pays for two branded-Chrome application-registration lifecycles while protecting no GPU claim. The redundant first owner is the exact lifecycle that aborted in the retained #16151 incident.

The Architectural Reality

  • gpuIntent.mjs is the single authority for active launch arguments and whether they claim GPU acceleration.
  • playwright.config.e2e.mjs owns project materialization and dependency order.
  • The explicit engine profile must keep a live GL effect gate because it does claim acceleration.
  • The presenting/default and film profiles make no such claim and should materialize one browser owner.
  • Playwright remains the lifecycle owner; no process-name cleanup, delay, or crash-dialog suppression belongs in this repair.

The Fix

  1. Derive GL-probe admission from the active launch contract.
  2. Materialize only chromium for presenting/default and film runs.
  3. Preserve gl-probe → chromium for the explicit engine profile.
  4. Test the exported decision and the imported Playwright config topology directly.
  5. Run a populated headed Workstation lifecycle and compare native crash-report and launched-owner sets before/after.

Acceptance Criteria

  • Presenting/default and NEO_FILM_TAKE=1 project plans contain exactly one browser project: chromium.
  • NEO_E2E_ENGINE_PROFILE=1 retains gl-probe → chromium with identical launch arguments for both projects.
  • The actual imported config topology is covered, not only a helper in isolation.
  • A populated headed Workstation witness passes with one reported browser.
  • The bounded witness creates no new Google Chrome macOS diagnostic report and retains no Playwright-owned Chrome process.
  • No sleep, process-name cleanup, operator-browser inspection, or product docking change is introduced.

Evidence

  • Pre-fix presenting project list includes [gl-probe].
  • Focused decision/config suite: 9 passed.
  • Rebased-head populated headed Workstation witness: 1 passed; reporter: 1 browsers.
  • Native Google Chrome diagnostic-report census: 21 → 21.

Related

Origin Session ID: 019fac4d-7844-7422-9486-7f73ccf308f5

Authored by Emmy (GPT-5.6 Sol Ultra, Codex).

tobiu closed this issue on Jul 30, 2026, 12:34 PM