LearnNewsExamplesServices
Frontmatter
id19657
titleRun the Brain-gated e2e tier on every Engine PR, blocking
stateClosed
labels
enhancementaitestingbuild
assigneesneo-opus-grace
createdAtOct 12, 2026, 3:16 PM
updatedAtOct 13, 2026, 3:18 PM
githubUrlhttps://github.com/neomjs/neo/issues/19657
authorneo-opus-ada
commentsCount8
parentIssue19655
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[x] 19675 Brain-gated burn-in declares its hosted gaps and runs on ten shards, [x] 19656 Run the Brain-gated e2e tier on dev pushes and record its hosted time
blocking[]
closedAtOct 13, 2026, 3:18 PM

Run the Brain-gated e2e tier on every Engine PR, blocking

Closed Backlog/active-chunk-8 enhancementaitestingbuild
neo-opus-ada
neo-opus-ada commented on Oct 12, 2026, 3:16 PM

Context

Phase 2 of epic #19655, graduated from D#19599. This leaf is blocked by #19656, the dev-push burn-in. It starts only once that burn-in's receipts show hosted time per shard within the ceiling, together with a green streak on dev in which every red is dispositioned.

The Problem

The Brain-gated tier exists to catch dock and multi-window regressions before merge. After #19559, a regression sat on dev for about 14 hours. The tier helps only if it runs on PRs and blocks when it fails. A non-required check is not an alternative, because current consumers (validateMergeReady and the review audit) already treat any red as blocking.

The Architectural Reality

  • The impact boundary: classify-test-scope.yml already holds the E2E impact boundary: src/, navigated apps and examples, themes and build scripts, Playwright support, harness apps, dependencies, and the workflow and classifier themselves. externalBrainSelection.mjs classifies fixture dependence, not transitive impact.
  • Merge readiness: Brain's validateMergeReady reports nonRequiredFailures as blocking, and compareRequiredAndEmittedContexts reports absent required contexts.
  • The job: the burn-in job from #19656 supplies provisioning, the Brain-tip resolution and the receipt fields.

The Fix

  • Add pull_request to the job from #19656. The job always reports, and chooses full or smoke inside itself.
  • Full tier when the E2E impact boundary matches, or when grid, AI-client or NL fixture/spec/config files change. Smoke subset otherwise.
  • The summary records the selected population, so a green smoke is never read as full-tier evidence.
  • A red blocks exactly as any red does. No continue-on-error.
  • WhiteboxE2E.md states that the tier gates Engine PRs.

Contract Ledger

Target surface Source of authority Proposed behavior Fallback / edge case Docs Evidence
The Brain-gated e2e job on pull_request D#19599 graduation (#19655) Always runs and reports; full or smoke chosen inside; population and SHAs recorded A Brain dev break shows as an attributable red (Brain SHA recorded) and blocks, as the graduation accepted WhiteboxE2E.md A deliberately failing run carried through the real reporting path
WhiteboxE2E.md This leaf States that the tier gates Engine PRs — itself Diff

Acceptance Criteria

  • The job runs on every pull_request to dev, always reports, and selects full or smoke inside itself.
  • The full tier runs when the E2E impact boundary matches or grid, AI-client or NL fixture/spec/config files change; otherwise a smoke subset runs. The summary records the selected population.
  • A deliberately failing run, carried through the real reporting path, stays red and is refused by validateMergeReady. No continue-on-error exists on the path.
  • The PR links #19656's burn-in receipt on #19655: hosted time per shard within the ceiling, and a green streak on dev with every red dispositioned (#17844's set included).
  • WhiteboxE2E.md states that the tier gates Engine PRs.

Out of Scope

Provisioning and receipts (#19656), option B (D#18775), and headed-only specs (local, at the cut).

Avoided Traps

  • Masking reds with continue-on-error or an advisory contract the consumers haven't adopted.
  • A path-filtered required check: it strands PRs, as neomjs/neo-agent-brain#972 did.

Related

#19655 (epic) · #19656 (blocked by) · D#19599 · #17844

unowned-rationale: blocked by #19656. Ada stewards the epic.

Origin Session ID: daac81df-5205-405e-a3af-aec56e5cca45 Retrieval Hint: "Brain-gated e2e tier every PR blocking full smoke selection classify-test-scope"

tobiu referenced in commit fe6ab42 - "feat(ci): run the Brain-gated e2e tier on every Engine PR, full or smoke by the shared classifier (#19657) (#19705) on Oct 13, 2026, 3:18 PM
tobiu closed this issue on Oct 13, 2026, 3:18 PM