Repository navigation
ci: run the browser layout smokes in test-capsules - #135
Conversation
test-capsules installs Node 26, just, the pinned Playwright and its Chromium and WebKit, then runs `just product-ui-browser`, so every browser layout smoke reports through an existing check name. Co-authored-by: Cursor <cursoragent@cursor.com>
The layout smokes only launch Chromium, so WebKit is no longer installed. The browser is cached between runs and saved straight after install, and the install step stops after 10 minutes instead of running into the 45-minute job limit. Co-authored-by: Cursor <cursoragent@cursor.com>
Playwright 1.59.1's installer downloads Chromium and then hangs while extracting it under Node 26, which timed out the install step on GitHub and reproduces locally. Node 24 installs it in seconds. The smokes still run on Node 26. Co-authored-by: Cursor <cursoragent@cursor.com>
The smokes launch Brave from its macOS path unless BRAVE_BIN is set, so on Linux they failed before opening a page. Point BRAVE_BIN at the Chromium that Playwright installed. Co-authored-by: Cursor <cursoragent@cursor.com>
…ser-in-test-capsules-0.7.1-models
People sets the first-run explanation from people.js since 0147f5b; the discovery smoke was updated then but this layout smoke still expected the old static text. Co-authored-by: Cursor <cursoragent@cursor.com>
Archive imports /apps/home/home-navigation-client.js from its opaque frame. The fixture did not serve it, so the import was blocked and Archive never announced ready. Serve it with the same access-control-allow-origin: null the gateway sends to opaque apps. Co-authored-by: Cursor <cursoragent@cursor.com>
Library imports /apps/home/home-navigation-client.js; the fixture returned 404, so Library stayed on Loading. Serve it like the clipboard client. Co-authored-by: Cursor <cursoragent@cursor.com>
develop's cache policy lets only develop and main pushes save caches and pins the guarded cache steps in ci-release-policy-test.py. The cache was a workaround for the stalled install, whose cause was the Node 26 extraction hang that the Node 24 install step now avoids. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Independent adversarial review (Codex, 2 October 2026), exact head VERDICT: PASS Blocking findings: none. The four-file change preserves CI trust boundaries: fork jobs use GitHub-hosted runners with read permission; cache saves and release publication retain their gates. Locked dependencies install Chromium under Node 24 within ten minutes, then Node 26 runs the smokes. Checks: exact-candidate diff whitespace, three changed-script syntax checks and five cache/release policy tests pass. Read-only integration with current Non-blocking notes: none. Not checked: browser execution, dependency installation, heavy builds, installed Home journeys or mutation-based failure tests. This verdict binds the reviewed source head; Sasha retains current checks, integration and merge ownership. |
…ser-in-test-capsules-0.7.1-models
This branch and develop (#135) both added the home-navigation-client.js route to library-product-layout-smoke. The merge kept both, so the smoke failed to load on a duplicate declaration. develop's copy stays. Co-authored-by: Cursor <cursoragent@cursor.com>
test-capsulesnow runsjust product-ui-browseras one step, as agreed, so every browser layout smoke reports through an existing check. Basedevelop, withdevelopmerged in.CI change
After the capsule tests,
test-capsules:just, runsnpm ciand installs Playwright's Chromium with--with-deps, within a 10-minute limit. The seven smokes use Chromium only. The install takes about 30 seconds.source-gateuses, and runsjust product-ui-browserwithBRAVE_BINset to Playwright's Chromium. The smokes otherwise look for a macOS Brave install.The step downloads the browser each run, because
develop's cache policy reserves cache saves fordevelopandmain, and the download is quick.The phone smoke (
home-phone-layout-smoke.mjs) is part ofproduct-ui-browseron #116, so it joins this step when #116 merges.Smoke fixes
Three smokes carried outdated expectations; the product behavior was correct:
people-product-layout-smokenow expects the current first-run text, "Confirm the name people will see in People and Chat. Discovery stays off until you enable it.", whichpeople.jssets since0147f5bbf.archive-product-layout-smoke: Archive imports/apps/home/home-navigation-client.jsfrom its opaque frame. The fixture now serves that file withaccess-control-allow-origin: null, like the gateway, so Archive reaches its ready state.library-product-layout-smoke: the fixture now serves the same file, so Library leaves its loading state.Result
All 8 checks pass. In
test-capsules, all seven smokes pass on Linux: People, Inbox, Archive, Marketplace, Documents, Library and configured Chat. They also pass locally on a Mac with Playwright's Chromium.This PR changes CI, so Irzhy reviews it.
Made with Cursor