Skip to content

ci: fix main — stale RunCause call sites and Playwright on ubuntu-26.04 - #9418

Merged
TheSentinel454 merged 5 commits into
mainfrom
elrond/fix-main-runcause-tests
Nov 12, 2026
Merged

TheSentinel454 merged 5 commits into
mainfrom
elrond/fix-main-runcause-tests

Conversation

@TheSentinel454

@TheSentinel454 TheSentinel454 commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Two separate CI breaks are hitting every PR right now. Each one blocks a required check, and neither fix can go green on its own, so this PR fixes both.

1. Rust test targets stopped compiling on main at fc8c802. #9227 added a required RunCause argument to create_workflow_run and a may_direct_agents flag to ActionSink::send_message. Two tests that merged around the same time still used the old signatures:

Each PR passed CI on its own base. Together they break Rust Lint, Unit Tests, Windows Rust and the Desktop E2E Relay artifact build (main CI run 43291564834). The fix passes RunCause::Schedule and true, matching the neighbouring tests. Neither test is about run cause or agent mentions, so neither assertion changes.

2. Desktop E2E Integration fails on GitHub's new Ubuntu 26.04 runners. ubuntu-latest is rolling to 26.04, and Playwright 1.60 (our lockfile) fails with Playwright does not support chromium on ubuntu26.04-x64. Playwright 1.61 is the first release that knows ubuntu26.04. This PR bumps @playwright/test to ^1.65.0 in desktop/, web/ and admin-web/ and regenerates pnpm-lock.yaml. It also pins every ubuntu-latest job in ci.yml and _ci-*.yml to ubuntu-26.04, so the next runner image change arrives in a reviewed diff. macOS and Windows jobs are unchanged.

The newer Chromium bundled with Playwright 1.65 changed two smoke specs. It reports Tailwind's items-end as align-items: flow-end (doctor-states now accepts flex-end or flow-end), and it draws the textarea resize grip differently, so the workflow-template-variable-autocomplete baseline is refreshed from the ubuntu-26.04 CI output.

It also exposed a timing race in profile.spec.ts "owned agent profile stays in parity": when the Message click lands while the profile panel is still settling, Playwright's scroll-into-view retry scrolls the profile body, which hides the owned-agent action row (aria-hidden + inert) for good. The test now pins the body to the top and waits for the row before clicking (12/12 repeats plus the full profile spec pass on Linux).

Verification

  • cargo clippy -p buzz-db -p buzz-relay --tests -- -D warnings is clean on fc8c802 with commit 1 applied.
  • pnpm install --frozen-lockfile succeeds with the new lockfile, and playwright --version reports 1.65.0.
  • tsc --noEmit passes for desktop, web and admin-web.
  • This PR's CI is the E2E check on 26.04.

Notes

  • Workflows that don't run on PRs (release, helm charts, sprig, image builds, codex-security-review) still use ubuntu-latest. This PR can't exercise them, so they're left for a follow-up.
  • The hermit-pinned actionlint (1.7.12) doesn't know the ubuntu-26.04 label yet. CI only actionlints codex-security-review.yml, which this PR doesn't touch.

Simpler

No production code changes. The runner pin swaps an implicit moving target for an explicit one.

🤖 Generated with Claude Code

…sites

#9227 added a required `RunCause` to `create_workflow_run` and a
`may_direct_agents` flag to `ActionSink::send_message`. Two tests that
merged around it still used the old signatures, so main stopped
compiling its test targets at fc8c802: `attach_rejects_run_from_another_workflow`
(#8317) and the agent-DM refusal test in `workflow_sink.rs` (#9371).

Pass `RunCause::Schedule` and `true`, matching the neighbouring tests.

Co-authored-by: Elrond <28d6302a099e5225b02c4155ac4236e4912603df2ab08dbfc2f4fef08ce598c8@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Signed-off-by: Luke Tornquist <[email protected]>
@TheSentinel454
TheSentinel454 marked this pull request as ready for review November 12, 2026 20:33
@TheSentinel454
TheSentinel454 requested a review from a team as a code owner November 12, 2026 20:33
@github-actions github-actions Bot added the codex-security-review-current The posted Codex security review matches its recorded range. label Nov 12, 2026
@github-actions

github-actions Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

🔐 Codex Security Review

Note: This is an automated, security-focused review generated by Codex.
Use it as a supplement to human review; false positives are possible.

Scope

  • Exact PR diff: 4a101752fbed03420252888bfecc40eff0a78b84...0bf29c3683a10bfeafc45970e8252313cae4f19c
  • Model: gpt-6.1-sol

💡 Click "edited" above to see earlier reviews for this PR.


Review Summary

Overall Risk: NONE

No concrete security, correctness, or reliability findings were identified in the authorized PR range.

Findings

No concrete security, correctness, or reliability findings were identified.

Notes

  • Review used read-only inspection. Builds and tests were not run, and external runner availability and dependency provenance were not independently verified.

Generated by Codex Security Review |
Requested by: @TheSentinel454 |
Workflow run

@brow
brow enabled auto-merge (squash) November 12, 2026 20:53
GitHub is rolling `ubuntu-latest` to Ubuntu 26.04. Playwright 1.60
(our lockfile) does not recognize that host, so `playwright install
chromium` fails with "Playwright does not support chromium on
ubuntu26.04-x64" and the required Desktop E2E Integration check goes
red on every PR that lands on a new runner. Playwright 1.61 added
ubuntu26.04; bump to the current 1.65 in desktop, web and admin-web.

Pin every `ubuntu-latest` job in the CI workflows to `ubuntu-26.04` so
the next image change happens in a reviewed diff instead of mid-week.
Workflows that do not run on PRs (release, helm, sprig, image builds)
are left alone because this PR cannot exercise them.

Co-authored-by: Elrond <28d6302a099e5225b02c4155ac4236e4912603df2ab08dbfc2f4fef08ce598c8@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Signed-off-by: Luke Tornquist <[email protected]>
@TheSentinel454 TheSentinel454 changed the title test: fix stale workflow call sites breaking main after #9227 ci: fix main — stale RunCause call sites and Playwright on ubuntu-26.04 Nov 12, 2026
@github-actions github-actions Bot removed the codex-security-review-current The posted Codex security review matches its recorded range. label Nov 12, 2026
@brow
brow disabled auto-merge November 12, 2026 20:56
@brow
brow enabled auto-merge (squash) November 12, 2026 21:03
The newer Chromium reports Tailwind's items-end as align-items: flow-end
and draws the textarea resize grip differently. Accept both alignment
spellings and refresh the template-variable autocomplete baseline from
the ubuntu-26.04 CI run.

Co-authored-by: Elrond <28d6302a099e5225b02c4155ac4236e4912603df2ab08dbfc2f4fef08ce598c8@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Signed-off-by: Luke Tornquist <[email protected]>
@github-actions github-actions Bot added the codex-security-review-current The posted Codex security review matches its recorded range. label Nov 12, 2026
… action

Under the Playwright 1.65 Chromium the first Message click can land while
the profile panel is still settling. Playwright's scroll-into-view retry
then scrolls the profile body, which conceals the owned-agent action row
(aria-hidden + inert), and the click never recovers. Reset the scroll,
wait for the row to be revealed and settled, then click.

Co-authored-by: Elrond <28d6302a099e5225b02c4155ac4236e4912603df2ab08dbfc2f4fef08ce598c8@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Signed-off-by: Luke Tornquist <[email protected]>
@github-actions github-actions Bot removed the codex-security-review-current The posted Codex security review matches its recorded range. label Nov 12, 2026
@github-actions github-actions Bot added the codex-security-review-current The posted Codex security review matches its recorded range. label Nov 12, 2026

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Carl, an automated reviewer, commenting via Wes's GitHub account.

Changes requested. One small lockfile fix, everything else looks right.

What checks out:

  • The Rust call-site fixes are correct. may_direct_agents = true only controls which tags get attached, so the agent-DM refusal assertion still tests the ownership rule.
  • c96f0f92 reads as a fix for a timing race in the test, not a hidden product regression. It uses a normal click and doesn't bypass the concealment. The existing fade, conceal-at-96px and reveal-at-zero assertions are still there.
  • After the pin, no ubuntu-latest is left in ci.yml or _ci-*.yml. The Playwright 1.65 floor of Node 20 or later is below the Node 24 pin. Browser cache keys include the Playwright version.

Before merge:

  1. Revert the unrelated wrappy integrity downgrade (inline).
  2. Get CI green on c96f0f92. It was still running when this was posted, and the previous head failed profile.spec.ts:354 on all three retries.

Optional: the repo-wide runner pin could be its own PR, separate from the urgent compatibility fix. Not blocking.

Comment thread pnpm-lock.yaml Resolved
The Playwright lockfile regeneration resolved wrappy through a mirror that
only served a sha1 integrity. Restore main's sha512 value.

Co-authored-by: Elrond <28d6302a099e5225b02c4155ac4236e4912603df2ab08dbfc2f4fef08ce598c8@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Signed-off-by: Luke Tornquist <[email protected]>
@github-actions github-actions Bot removed the codex-security-review-current The posted Codex security review matches its recorded range. label Nov 12, 2026
@brow
brow enabled auto-merge (squash) November 12, 2026 22:00
@github-actions github-actions Bot added the codex-security-review-current The posted Codex security review matches its recorded range. label Nov 12, 2026
@TheSentinel454
TheSentinel454 enabled auto-merge (squash) November 12, 2026 22:09
@TheSentinel454
TheSentinel454 merged commit ce42853 into main Nov 12, 2026
110 checks passed
@TheSentinel454
TheSentinel454 deleted the elrond/fix-main-runcause-tests branch November 12, 2026 22:25
wesbillman added a commit that referenced this pull request Nov 12, 2026
Integrate main through #9418 to repair workflow test compilation and runner compatibility.

Co-authored-by: Brain <1a02c72794dcd0f07058a353bc3a81f4028b8c77c92c87fce6d5c8b85970a20b@buzz.block.builderlab.xyz>
Signed-off-by: Wes <[email protected]>
ravarora2 added a commit that referenced this pull request Nov 12, 2026
…small

* origin/main:
  perf(acp): reduce observer CPU and lock overhead (#9381)
  ci: fix main — stale RunCause call sites and Playwright on ubuntu-26.04 (#9418)
  fix(mobile): keep shortcut taps and the member picker from wedging (#9388)
  fix(mobile/ios): close notification code blocks only at line-ending fences (#9349)
  fix(media): run thumbnail regeneration tests in CI and cap rebuild pixels (#9198)
  fix(mobile): never show emoji shortcodes in reaction pills (#9411)
  fix(mobile): isolate channel header scroll rebuilds (#9400)

Signed-off-by: Ravneet Arora <[email protected]>
wesbillman added a commit that referenced this pull request Nov 13, 2026
Existing mobile identities entering the Builderlab hosted flow now
require confirmation before the app reserves the account’s identity
slot, binds the identity, or uploads its secret key. Cancelling leaves
saved community keys usable and allows another identity to be selected,
including after restart. Imported keys remain tentative until approval;
paired keys remain safely retained outside the account slot.

The confirmation shows the receiving account’s verified email and public
key, explains that Builderlab can decrypt the backup and signed-in
account users can recover it, and discloses that the app cannot change
the linked identity later. **Cancel setup** stops future work without
claiming to undo earlier binding or an upload whose acknowledgement was
lost. The user can sign out; missing account identification blocks
confirmation. Browser-initiated binding uses **Link and continue**, with
explicit bind-only wording and no upload.

Fresh keys generated in the current hosted attempt use ordinary
onboarding without an extra backup prompt. Interrupted attempts without
a confirmed backup ask again; approval is deliberately not persisted or
carried across retries, cancellation, restart, account changes, or a
replaced flow. Confirmed matching backup receipts skip the backup
prompt. Cloud recovery and organization-managed backup are separate
flows and are not changed here; this PR does not resolve server-side
consent or recovery-authorization policy.

Updated against main through `ce42853982` (#9418). Integration commit
`dfb29fe5e7` includes the landed Hickory security fix and the shared
workflow-test/runner repair. The consent implementation is unchanged
from Carl’s reviewed `e11025ebed`; the CI merge preserves its configured
public consent journeys.

Validation at `e11025ebed`: 96 focused tests across eight files passed
with public hosted domains configured; Flutter analysis passed. In an
isolated source/Git/build copy, removing pre-adoption consent, bypassing
the upload gate, and removing stale-confirmation checks each failed the
consent journeys; restoring the code passed. Carl’s independent source
review found no blockers. Mandatory hooks and hosted mobile CI passed,
including both consent journeys in the configured public lane.

Integration validation at `dfb29fe5e7`: 99 focused tests passed; one
additional fullscreen-onboarding test failed its background
community-admission assertion. An isolated clean-main control at
`ce42853982` reproduces the same failure with the same expected/actual
values. All consent journeys passed. Required commit and push hooks
passed, including mobile analysis and the broader default mobile suite.
Hosted CI is green at `dfb29fe5e7` ([run
43320753801](https://github.com/block/buzz/actions/runs/43320753801)).
Security and the previously failing Rust/workflow gates now pass. The
Mobile Checks log confirms both consent journeys executed successfully;
that run has no pending checks.

Review follow-up `ac9ac9be35`, integrated with main `279a31daac` at
current head `1acfd2dff6`, is test-only: the browser journey now
restores a saved account key without a receipt, cancels without binding,
restarts and requires explicit approval before `/verify`. Both consent
journeys passed again after integration using the updated CI settings.
Disabling only the production bind gate in an isolated source/Git/build
copy now fails the added step; restoring it passes. Mandatory
commit/push hooks passed. Hosted CI is green at `1acfd2dff6` ([run
43343333843](https://github.com/block/buzz/actions/runs/43343333843));
no failing or pending checks remain. The Mobile Checks log confirms both
consent journeys executed successfully, including the extended
browser-binding journey. Carl’s latest review on `dfb29fe5e7` found no
production blockers; its recommended test gap is addressed by this
follow-up.

Native-device and human acceptance have not been recorded here; the
author’s ready-for-review setting is preserved.

Try it: with two saved self-hosted keys, connect to Builderlab, select
A, cancel, restart, then select B. Check the receiving account and key
before approval. Repeat with an imported/paired key and a browser bind
link; cancel must not reserve or bind the new selection. After an
interrupted upload, cancellation must describe that earlier effects may
remain. Confirm that ordinary brand-new onboarding has no extra backup
step.

---------

Signed-off-by: Wes <[email protected]>
Co-authored-by: Brain <1a02c72794dcd0f07058a353bc3a81f4028b8c77c92c87fce6d5c8b85970a20b@buzz.block.builderlab.xyz>

This branch was successfully deployed

1 active deployment
codex-review — 0bf29c36 Deployed Nov 12, 2026 by TheSentinel454 via Run Codex Security Review #14701
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

codex-security-review-current The posted Codex security review matches its recorded range.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants