Skip to content

Install browser system packages from the cache when the Ubuntu mirror is down - #1631

Merged
BigSimmo merged 8 commits into
mainfrom
claude/project-thread-gbgrbg
Nov 11, 2026
Merged

BigSimmo merged 8 commits into
mainfrom
claude/project-thread-gbgrbg

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Nov 11, 2026 •

Copy link
Copy Markdown
Owner

Requested by josh · project thread

Why

Since about 14:30Z on 11 Nov every browser job on #1606, #1608, #1622, #1623, #1626 and #1630 fails in browser setup. The runner cannot resolve azure.archive.ubuntu.com, and Playwright's install-deps always runs apt-get update first, so it times out. Nothing else on those PRs is red.

What changes

  • scripts/ward-ci-public/install-chromium.mjs: when the seed step has put cached .deb files in /var/cache/apt/archives (the main-saved cache for this exact runner image hits on every job), install them as local files with apt-get install --no-download, install the browsers, then launch each one. Pass only if they all launch. Any failure falls back to the existing online path unchanged.
  • ward-flow.yml shared-mode job: also restore and seed WebKit's cached packages, and install both engines through the same script (it called playwright install --with-deps webkit directly before).
  • Two new unit tests for the offline path and its fallback.

Evidence

  • Local: the 3 setup test files (43 tests) and every test file that reads ward-flow.yml (22 files, 309 tests) pass.
  • Not yet proven: that the offline install works on a hosted runner. This PR's own CI run is that proof.

Generated by Claude Code

View guided diff

… is down

Since about 14:30Z on 11 Nov every browser job fails because the runner
cannot resolve azure.archive.ubuntu.com, and Playwright's install-deps
always runs apt-get update first. The seed step already copies the
main-saved packages for this exact runner image into apt's archive folder,
so the setup now installs those as local files with downloads switched
off, installs the browsers, and passes only if each one launches. If any
part fails it falls back to the online path as before. The shared-mode
job also restores WebKit's cached packages and uses the same script for
both engines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxmrqgwa3hCAtaMf9JT
@BigSimmo
BigSimmo enabled auto-merge November 11, 2026 17:28
@BigSimmo BigSimmo self-assigned this Nov 11, 2026
@coderabbitai

coderabbitai Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

Next included review available in 42 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 102 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Team
  • Run ID: a9f71192-dcfa-418d-8794-aa8f6f6ffd9d
Commits

Reviewing files that changed from the base of the PR and between 51a4745 and 81ff35c.

Files selected for processing: 12

  • .github/workflows/ward-flow.yml
  • knip.json
  • scripts/ward-ci-public/install-chromium.mjs
  • src/components/ward-management/coordinator/coordinator-screen.tsx
  • src/components/ward-management/coordinator/home-cards-settled.ts
  • src/components/ward-management/coordinator/home-list-lazy.tsx
  • src/components/ward-management/coordinator/home-since-banner-lazy.tsx
  • src/components/ward-management/coordinator/home.module.css
  • src/components/ward-management/load-early.tsx
  • tests/release-gate-journeys.spec.ts
  • tests/ward-browser-install.test.ts
  • tests/ward-no-invented-screen-figures.test.ts
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-11T17:30:47.276587Z c9bc9f0 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@gitar-bot

gitar-bot Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Gitar is working

Verification

Rules No rules evaluated

Functional validation Not enabled

Set up

Auto-approval Not enabled

Set up

Gitar

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c9bc9f0958

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/ward-flow.yml Resolved
The cache path is part of the cache version, so a different restore path
never finds the release gate's WebKit cache. Seed Chromium's packages,
then restore WebKit's into the same folder and seed again. (Codex review)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxmrqgwa3hCAtaMf9JT
BigSimmo pushed a commit that referenced this pull request Nov 11, 2026
GitHub's runners cannot reach the Ubuntu mirror. #1631 installs the cached
system packages offline before trying apt, and it is proven on the runners.
This is the same change, so #1608's browser jobs can run before #1631 merges.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxmfmBRcfvStcCSeCwK
BigSimmo pushed a commit that referenced this pull request Nov 11, 2026
A copy of #1631 (a5dd0ff) in the same three files from the same base:
browser setup installs the cached system packages offline before
trying apt, so jobs pass while azure.archive.ubuntu.com is unreachable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxjdesrEjVU1zKyiFhd
BigSimmo pushed a commit that referenced this pull request Nov 11, 2026
…tu mirror outage

Brings in the workflow, install-chromium script and test from #1631
(a5dd0ff) unchanged, so browser system packages install from the cache
instead of the Ubuntu mirror.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxn8xZAWHw5dJPGdUjY
BigSimmo pushed a commit that referenced this pull request Nov 11, 2026
Brings PR #1631's browser system-package change (a5dd0ff) into this
branch: Chromium and WebKit system packages install from the cached
archive, so the browser jobs no longer need the Ubuntu mirror, which is
down. The workflow hunk is applied by hand on top of this branch's
ward-setup action change; the script and its test match #1631 exactly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxn8xZAWHw5dJPGdUjY
BigSimmo pushed a commit that referenced this pull request Nov 11, 2026
Copied from claude/project-thread-gbgrbg at a5dd0ff; the three files matched origin/main here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxn8xZAWHw5dJPGdUjY
Both cards were fetched when the browser went idle, so they arrived about a
second after Home drew and pushed My list and Later today down: 0.134 layout
shift on a desktop, over the 0.1 line, in all three release gate runs. They
are now fetched as soon as Home's code runs and drawn straight away once
loaded (home-early-card.tsx), so they normally land in Home's first frame.
They stay off the first load: Home measures 584.3 KB of its 586 KB limit.

Local production build: desktop 0.000 in 10 of 10 loads (was up to 0.134),
phone about 0.014.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxmfmBRcfvStcCSeCwK
(cherry picked from commit 8cb4851)
Replaces home-early-card.tsx with the reviewed load-early.tsx and
useHomeCardsSettled (patch from the Home layout shift review):
- Home's columns stay hidden, keeping their space, until the since line
  and Beds that fit have loaded, or 1.5 s, so a late card on a slow
  device no longer lands on rows already shown.
- A failed fetch is tried again the next time the card mounts.
- A phone, which never shows Beds that fit, still fetches it only when
  idle, so Data Saver and 2G keep PERF-06.

Local production build: desktop 0.000 in 10 of 10 loads, phone at most
0.018; Home 584.8 of 586 KB.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxmfmBRcfvStcCSeCwK
(cherry picked from commit 9e7516f)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxmfmBRcfvStcCSeCwK
(cherry picked from commit e6ad3e7)
…heck

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxmfmBRcfvStcCSeCwK
(cherry picked from commit 66426eb)

Copy link
Copy Markdown
Owner Author

Browser setup on a5dd0ff is fixed: all four browser jobs installed from the cached packages offline and launched. The two release gates still failed, both on a re-run too, and neither failure comes from this diff. They hit every PR based on main 51a4745:


Generated by Claude Code

…t would downgrade

The phone "Transfer with transport" journey crosses three desks with ten
accessibility checks. On hosted WebKit it went from 1.3 min at 10:31Z on
11 Nov to 2.1 min by 18:00Z with no single step hanging, so it ran out of
the shared two-minute budget on every PR. It alone now gets three minutes.

Also takes #1630's withoutDowngrades filter (e3ed4c5) for the offline
browser setup, so the two branches carry the same script.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxmrqgwa3hCAtaMf9JT
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxmrqgwa3hCAtaMf9JT
BigSimmo pushed a commit that referenced this pull request Nov 11, 2026
Same line as #1631, so the two branches stay identical here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxnKy5cgHmGa8NdCd2U
@BigSimmo
BigSimmo merged commit 024f903 into main Nov 11, 2026
22 checks passed
@BigSimmo
BigSimmo deleted the claude/project-thread-gbgrbg branch November 11, 2026 19:11
BigSimmo pushed a commit that referenced this pull request Nov 11, 2026
…veal wait

Main now holds Home's columns until its early cards arrive (useHomeCardsSettled),
which fixes the same layout shift on every load. Keeping the held-reveal wait as
well would make a held first load wait twice, so it is dropped and this PR is
back to the D-153 record.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxnKy5cgHmGa8NdCd2U
BigSimmo pushed a commit that referenced this pull request Nov 11, 2026
…t fixes)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxn8xZAWHw5dJPGdUjY
BigSimmo pushed a commit that referenced this pull request Nov 11, 2026
…t fixes)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxn8xZAWHw5dJPGdUjY
BigSimmo pushed a commit that referenced this pull request Nov 11, 2026
…t fixes)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GxPPxn8xZAWHw5dJPGdUjY
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