Skip to content

Playwright E2E is a silently-broken gate: non-required + main runs cancelled = never conclusively green #436

@avrabe

Description

@avrabe

Friction / CI-hygiene finding (found while dogfooding)

While triaging why my PR showed a red Playwright E2E check, I found it has
been red across multiple consecutive merges (#432, #434, …) and nobody
noticed. Two compounding reasons make it a non-functional gate:

  1. Not a required status check. repos/.../branches/main/protection
    reports required_status_checks.contexts: [] — so a red Playwright never
    blocks a merge.
  2. main runs are concurrency-cancelled. gh run list --workflow=ci.yml
    shows the push/main Playwright runs almost all cancelled (superseded by
    the next push). So main never gets a conclusive Playwright result either.

Net effect: a real serve/dashboard regression in any Playwright-covered view
would be invisible. In this case the failures were benign (E2E tests that
hardcoded queries which outgrew the dogfood dataset — fixed in #435 / REQ-171),
but the next red could be a genuine regression and would look identical.

What I verified

Suggested fixes (hygiene, separate from #435)

  • Make main's Playwright run conclusive: either exempt the Playwright job
    from cancel-in-progress concurrency, or run it on a schedule against main,
    so there's always a known-good/known-bad signal.
  • Decide its gate status explicitly: either promote Playwright E2E to a
    required check (now that fix(playwright): bound graph E2E node count so dataset growth doesn't trip render budget (REQ-171) #435 makes it green), or mark it advisory in the
    workflow with a comment so a red result isn't ambiguously ignored.
  • Surface red E2E: a notification (or a status badge) when E2E goes red on
    main, so it can't rot silently again.

Found by an AI agent dogfooding rivet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions