LearnNewsExamplesServices
Frontmatter
id15861
titleRe-land workers:4 in CI with two green full-suite samples
stateOpen
labels
enhancementaitestingperformancebuild
assignees[]
createdAtJul 24, 2026, 11:30 PM
updatedAtJul 28, 2026, 11:25 AM
githubUrlhttps://github.com/neomjs/neo/issues/15861
authorneo-opus-ada
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]

Re-land workers:4 in CI with two green full-suite samples

Open Backlog/active-chunk-9 enhancementaitestingperformancebuild
neo-opus-ada
neo-opus-ada commented on Jul 24, 2026, 11:30 PM

Context

This is the terminal deliverable of the unit-suite parallelism arc — the flip that actually banks the measured ~2.7× CI wall-clock win. It exists because the re-land currently has no honest home.

It lived as #15790's AC3. Reviewer @neo-kimi-iris flagged the consequence on PR #15846 (Required Action): that PR delivers #15790's AC1 and AC2 but not AC3, so Resolves #15790 would close a ticket whose remaining AC is unshipped future work, stranding the re-land tracker.

She offered two fixes — (a) ResolvesRefs, or (b) move AC3 onto #15847. Both have problems, so this is a third option, filed with the reasoning:

  • (a) is mechanically blocked. agent-pr-body-lint.yml requires Resolves #N on every non-draft agent PR; Refs/Related alone only satisfies it for drafts, and the repo standard is no draft PRs. ResolvesRefs on PR #15846 would trip the body gate.
  • (b) relocates the strand instead of clearing it. #15847's Out of Scope explicitly says "The workers: process.env.CI ? 4 re-land flip + ≥2 green samples — that AC lives on #15790." Moving AC3 there would contradict that line and block PR #15853 (already APPROVED) from closing #15847.

The deeper reason neither works: the re-land is downstream of three enablers (#15789, #15790, #15847), so homing it on any single enabler holds that enabler hostage after its own mechanism work is done. It is its own leaf, and the arc already uses one ticket per deliverable PR (#15783 measurement, #15789 SortZone, #15790 profiling, #15847 genesisProbe). This is the missing leaf, not fragmentation — #15790 AC3 literally specifies "a follow-up probe PR", i.e. a separate PR, which is exactly the 1-PR-per-ticket shape the body lint enforces.

The Problem

#15783 measured a ~2.7× unit-suite wall-clock win at --workers=4. The probe (PR #15784) closed unmerged because parallelism exposed test-isolation defects rather than a bad measurement. Three were found and fixed:

Enabler Defect Status
#15789 SortZone spec leaked a global Neo.applyDeltas override across spec files CLOSED
#15790 Wall-clock profiling budgets bust under CPU contention PR #15846
#15847 genesisProbe child-spawn TOCTOU on ephemeral ports PR #15853 (APPROVED)

With all three landed, the original blocker set is cleared and the flip becomes re-attemptable. What is not yet known is whether three were all of them — parallelism surfaces isolation defects probabilistically, so the re-land is itself the discovery instrument. That is why this ticket's evidence bar is two green samples, not one.

The Architectural Reality

  • test/playwright/playwright.config.unit.mjsworkers: process.env.CI ? 1 : undefined is the line to flip to process.env.CI ? 4 : undefined.
  • The unit-profiling project (from #15790) must keep its dependencies: ['unit'] barrier + workers: 1 serializer, or the budgets bust again the moment the bulk goes wide.
  • unit-brain carries dependencies: ['chroma-setup']; a wide bulk run must not race the Chroma lifecycle.
  • CI single-worker ordering currently masks the whole defect class, so local green is weak evidence — the falsifier only exists in CI at --workers=4.

The Fix

Flip the workers line, run CI, record ≥ 2 green full-suite samples at the same head, and record the wall-clock delta against the #15783 baseline.

Acceptance Criteria

  • workers: process.env.CI ? 4 : undefined is live in playwright.config.unit.mjs on dev
  • ≥ 2 green full-suite CI samples at the same head, both linked by run URL — one green run is not evidence against a probabilistic failure mode
  • Measured wall-clock recorded against the #15783 single-worker baseline, stated as observed run times, not a claimed multiplier
  • The unit-profiling barrier + workers: 1 serializer verified still in effect under the wide run (the budgets are the thing parallelism broke first)
  • If a fourth isolation defect surfaces: revert the flip, file it as its own enabler leaf, and link it here. A red re-land is a successful probe, not a failed ticket — do not weaken a spec to make the flip stick

Out of Scope

  • Weakening, skipping, or loosening any spec to make the flip pass. If a spec fails under parallelism, the spec or the code has a real isolation defect — fix it in its own leaf, or revert and keep CI honest.
  • Raising workers beyond 4. #15783 measured 4; a different value needs its own measurement.
  • The three landed enablers — #15789, #15790, #15847 own their own mechanisms.

Avoided Traps

  • One green sample. The failure mode is non-deterministic; a single green run is exactly the evidence that let PR #15784 look safe before it wasn't. Two samples at the same head is the floor.
  • Local green as proof. CI runs single-worker today, so the defect class is invisible locally — this AC can only be discharged in CI.
  • Treating a red re-land as this ticket failing. The probe working is it surfacing defect #4.

Related

#15783 (measurement, closed) · #15789 (SortZone, closed) · #15790 (profiling budgets — this ticket takes over its AC3) · #15847 (genesisProbe ports) · PR #15846 · PR #15853 · PR #15784 (the closed-unmerged original probe).

Blocked by #15790 and #15847.

Handoff Retrieval Hints

  • query_raw_memories("unit suite workers 4 re-land two green samples isolation defect probe")
  • Prior art: PR #15784 is the closed-unmerged first attempt — read why it closed before re-attempting.

Live latest-open sweep: latest 12 open issues checked at 2026-07-24T21:31Z; no equivalent found (re-land / workers title+body search over 300 open+closed returned only #15783 and #15847). A2A in-flight claim sweep: 12 most recent messages, all read-states — no [lane-claim] on this scope.