Skip to content

T-B2VW-agent-pants-e2e-gates-pull-requests

State: planning/draft · Impact: medium · Complexity: small

Agent-pants has two real Playwright suites — twelve tests asserting against bytes on disk, including the publish refusal guard — and they run only when someone dispatches them by hand. A break in the desktop experience, app-frame, or the shell can merge on a green PR and only surface at release-candidate time. The survey’s new console-watch fixture (every spec now fails on a stray console error, pageerror, or failed request) makes a green run mean something again, which is what makes gating worth deciding now.

LocationRole today
.github/workflows/agent-pants-ci.yml:41-43on: workflow_dispatch: / pull_request: — but its paths: filter (lines 44-49) covers only solutions/agent-pants/** and packages/rust/agent-adapt/**; it never runs the determined product’s Playwright suites
.github/workflows/release-candidate.yml:21-22on: workflow_dispatch: only — no push or pull_request trigger at all
.github/workflows/release-candidate.yml:42-154The agent-pants-desktop-e2e job: builds the SPA, runs both Playwright projects (install, authoring), 12 tests total
solutions/agent-pants/docs/vault/tasks/ci-covers-determined-agent-pants.mdThe existing tracked task for this gap; still status: open
solutions/determined/products/agent-pants/tests/e2e/consoleWatch.tsNew: every spec fails on a console error, pageerror, requestfailed, or an HTTP ≥ 400, unless named benign

A pull request that touches the agent-pants product, its experience, app-frame, or the shell it depends on runs both Playwright projects and fails the PR on a red or console-watch-flagged spec — the same job release-candidate.yml already runs, moved onto a trigger that gates merges instead of running only on demand.

Trade-off, left to the reader: this job costs roughly 45 minutes per run against the rest of the suite’s 20, so gating it on every PR buys real coverage at a real CI-time and cost increase — whether that trade is worth it, or whether a narrower trigger (e.g. only PRs touching the listed paths, as already scoped in the acceptance criteria below) is the right compromise, is the decision this task exists to make, not to assume.

  1. Decide the trigger scope: full pull_request gating vs. path-filtered (solutions/determined/products/agent-pants/**, solutions/determined/experiences/agent-pants/**, packages/ts/app-frame/**, solutions/determined/packages/shell/**).
  2. Move (or duplicate with the decided trigger) the agent-pants-desktop-e2e job from release-candidate.yml onto a workflow that runs on pull_request, keeping the SPA-build-then-test ordering so a spec never runs against a stale .output/public.
  3. Confirm consoleWatch.ts’s per-spec failure behavior is in effect for the CI run, not just local runs.
  4. Update ci-covers-determined-agent-pants.md’s acceptance criteria against what actually shipped, and close it if this task satisfies all of them.
AreaNote
.github/workflows/release-candidate.ymlRemove or narrow agent-pants-desktop-e2e once it moves
.github/workflows/agent-pants-ci.ymlOr: add the e2e job here instead, per the decided trigger scope
solutions/agent-pants/docs/vault/tasks/ci-covers-determined-agent-pants.mdUpdate acceptance criteria against what shipped; close if satisfied
  • AC-1: A pull request touching the decided trigger paths runs both Playwright projects (install, authoring) and fails the PR on a red or console-watch-flagged spec.
  • AC-2: The job builds the product’s SPA in the same run that tests it, never reusing a stale .output/public.
  • AC-3: release-candidate.yml no longer duplicates a job that a PR-gating workflow already runs.
  • Writing new end-to-end coverage; this task runs what already exists.
  • The CLI/wasm gate in agent-pants-ci.yml’s existing job, which is unaffected.
  • none

Found by the agent-pants bug survey, N-5LD4-bug-sweep-2026-09-12-agent-pants (row AP-39), which found the tracked vault task ci-covers-determined-agent-pants.md partially done: Playwright runs, but only on manual dispatch.


← Back to Tasks