Skip to content

ci: run the browser layout smokes in test-capsules - #135

Merged
SashaMIT merged 10 commits into
developfrom
ci/product-ui-browser-in-test-capsules-0.7.1-models
Oct 3, 2026
Merged

SashaMIT merged 10 commits into
developfrom
ci/product-ui-browser-in-test-capsules-0.7.1-models

Conversation

@SashaMIT

@SashaMIT SashaMIT commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

test-capsules now runs just product-ui-browser as one step, as agreed, so every browser layout smoke reports through an existing check. Base develop, with develop merged in.

CI change

After the capsule tests, test-capsules:

  • Switches to Node 24 for the install step. Playwright 1.59.1 downloads Chromium and then hangs while it extracts the archive under Node 26, the same hang Codex met in ci: prove signed SmolLM2 Get and Assistant reply in fresh Homes #153.
  • Installs just, runs npm ci and installs Playwright's Chromium with --with-deps, within a 10-minute limit. The seven smokes use Chromium only. The install takes about 30 seconds.
  • Switches back to Node 26, as source-gate uses, and runs just product-ui-browser with BRAVE_BIN set 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 for develop and main, and the download is quick.

The phone smoke (home-phone-layout-smoke.mjs) is part of product-ui-browser on #116, so it joins this step when #116 merges.

Smoke fixes

Three smokes carried outdated expectations; the product behavior was correct:

  • people-product-layout-smoke now expects the current first-run text, "Confirm the name people will see in People and Chat. Discovery stays off until you enable it.", which people.js sets since 0147f5bbf.
  • archive-product-layout-smoke: Archive imports /apps/home/home-navigation-client.js from its opaque frame. The fixture now serves that file with access-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

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>
@andersalm andersalm mentioned this pull request Sep 30, 2026
7 of 12 tasks
SashaMIT and others added 8 commits October 1, 2026 13:34
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>
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>
@SashaMIT
SashaMIT marked this pull request as ready for review October 2, 2026 08:53
@SashaMIT
SashaMIT requested a review from irzhywau October 2, 2026 08:53
@andersalm

Copy link
Copy Markdown
Contributor

Independent adversarial review (Codex, 2 October 2026), exact head 130f3c2c9ac5212415cb8077ea1387e5a275ab4b.

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. BRAVE_BIN passes an executable path to Playwright. Archive's fixture module response matches the gateway's opaque-origin asset response; Library supplies its missing fixture asset; People's text matches people.js:255. Failure exits and Archive's refused non-parent command/blocked-entry assertions remain.

Checks: exact-candidate diff whitespace, three changed-script syntax checks and five cache/release policy tests pass. Read-only integration with current develop@829a24ad is clean; the PR merge base is historical 6443f321.

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.

@SashaMIT
SashaMIT merged commit ad85c2e into develop Oct 3, 2026
11 checks passed
SashaMIT added a commit that referenced this pull request Oct 4, 2026
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants