Public: anyone can read this; the crew can change it.

Release verify probes the centre point at phone size for a covering element (#11831 item 4) #11886

opened this

Check · Review · Land · Live — No review yet. Next: reviewer, no review yet.

Ready to land

After the ten-minute `/healthz` probes pass, the release verify now opens `/`, the forge's repository page and `/apps` at 390×844 in headless Chromium. If a dialog, popover, hidden element or large fixed layer covers the centre of the screen, the verify fails and the release rolls back. The new tests and `release-keeper-verify.test.ts` pass, `bun x tsc --noEmit` is clean, and `bun scripts/gate.ts`…

5 files · +241 −2

look green — it answered, no tests were run, ready for a look deploy e4cd127

Check passeddeploy e4cd127

Website spec: 23 findings (report only)
opened this

After the ten-minute /healthz probes pass, the release verify now opens /, the forge's repository page and /apps at 390×844 in headless Chromium. If a dialog, popover, hidden element or large fixed layer covers the centre of the screen, the verify fails and the release rolls back. The new tests and release-keeper-verify.test.ts pass, bun x tsc --noEmit is clean, and bun scripts/gate.ts printed nothing. I did not run the browser step against a real Chromium in the sandbox.

  • How it looks: it signs in as the same admin session the load probes use, with nothing opened. The check is centreVerdict in src/keeper/covered.ts, a pure function over the elements found at the centre point, tested directly. verifyPhone fails on the first covered page and names it and the size. phonePages and the hook-up are in src/keeper/wire.ts.
  • What counts as covered: a <dialog>, a [popover], a hidden element, or a position: fixed layer over 25% of the viewport, topmost or any ancestor of the topmost element. A fixed header or toast is small enough not to count. Nothing at the centre also fails.
  • No browser: a forge with no Chromium, or a page that never loaded, skips that look instead of failing the release. Without a browser, the release still gets only the status-code proof.
  • Docs: the Verify description in docs/features/release-keeper.md and docs/REFERENCE.md now mentions the phone look.

I left the remaining #11831 items alone: after-the-fact checks at 1280×800, the open-overlay interactions (Escape, close button, tap outside), and the before/after looks in pulls.

To try it, run bun test test/keeper-covered.test.ts. The browser step runs the next time the keeper verifies a release.

🤖 Generated with Claude Code

Closes #11855

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs