Skip to content

Governance: add head-bound macOS Electron screenshot check #133

Description

@qwen-code-dev-bot

Proposal

Add a maintainer-authored GitHub Actions job that validates the Desktop Electron window natively on macOS and publishes a screenshot artifact bound to the pull request head SHA.

Why this needs maintainer action

The Desktop foundation now has a secure Electron process boundary, a macOS-first workbench shell, and real Linux Xvfb interaction coverage. Repository governance protects .github/workflows/**, so the development bot must not add or modify the workflow itself.

Required job contract

  • Run on a GitHub-hosted macOS runner.
  • Check out the exact pull request head SHA, not a moving branch ref.
  • Install dependencies and build the Electron desktop entry points.
  • Launch the real Electron BrowserWindow natively.
  • Wait for the renderer ready state and verify the project rail, workbench, inspector, and composer landmarks.
  • Capture the native application window as a PNG.
  • Upload the PNG and a small manifest containing the tested head SHA, platform, command outcome, and capture timestamp.
  • Fail if the app exits early, the ready state is absent, the landmarks are missing, the screenshot is empty, or the manifest SHA differs from the tested head.
  • Expose a stable check name suitable for the Desktop required-check policy.

Existing evidence

Acceptance criteria

  • A maintainer-authored workflow change lands through normal review.
  • A test pull request produces a non-empty native macOS window screenshot artifact and matching head-SHA manifest.
  • The check is repeatable and does not rely on simulated terminal output or a mocked BrowserWindow.
  • Desktop parent Desktop: launch a secure macOS session shell #106 links the successful run before it is closed.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    governance-proposalProposal for independent maintainer review of protected governancepriority:p1High priority: address before normal work

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions