Skip to content

test(#10722): add plugin-views keyboard focus-order audit to the WebKit ui-smoke lane - #11877

Merged
lalalune merged 1 commit into
developfrom
test/10722-webkit-ui-smoke
Jul 3, 2026
Merged

test(#10722): add plugin-views keyboard focus-order audit to the WebKit ui-smoke lane#11877
lalalune merged 1 commit into
developfrom
test/10722-webkit-ui-smoke

Conversation

@lalalune

@lalalune lalalune commented Jul 3, 2026

Copy link
Copy Markdown
Member

What

Expands the existing opt-in WebKit ui-smoke project (PLAYWRIGHT_WEBKIT=1) to include plugin-views-visual.spec.ts — the Tab-order / sequential-focus-navigation audit — alongside the chat pointer/focus/composer specs it already runs.

Why WebKit specifically: the registered plugin views ship in the iOS/macOS WKWebView, so a WebKit focus or sequential-focus-navigation divergence must be caught on the engine that actually ships to iOS — not only on Chromium. CDP-touch specs (Input.dispatchTouchEvent is Chromium-only) intentionally stay on Chromium; clipboard/mic specs remain excluded (WebKit doesn't grant those permissions).

Config-only change; keeps the PLAYWRIGHT_WEBKIT=1 opt-in gating so the default lane never reddens where the WebKit browser isn't installed.

⚠️ Status: pushed for review, NOT yet merged

Biome clean, rebased clean onto develop, and the WebKit browser (webkit-2311) is present. But the ui-smoke webServer did not boot in this session (unrelated dev-server startup issue under load), so I could not confirm plugin-views-visual runs green on WebKit here. Before merge it needs one clean PLAYWRIGHT_WEBKIT=1 run — either it passes (merge) or it surfaces a real WebKit focus divergence (a genuine #10722 finding to fix). Do not merge until run green on WebKit. Refs #10722.

🤖 Generated with Claude Code

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Your trial has ended. Reactivate Greptile to resume code reviews.

@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5c3a9b4f-e118-4b3c-ab1d-98ce94e354e5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch test/10722-webkit-ui-smoke

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@lalalune

lalalune commented Jul 3, 2026

Copy link
Copy Markdown
Member Author

Validation attempted on rebased branch against origin/develop.

Command:
PLAYWRIGHT_WEBKIT=1 node packages/app/scripts/run-ui-playwright.mjs --config playwright.ui-smoke.config.ts --project=webkit test/ui-smoke/plugin-views-visual.spec.ts

Result: blocked before app assertions. The app/view build and Playwright startup completed, but all 55 WebKit cases failed at browser launch because this host is missing libnice.so.10:

Host system is missing dependencies to run browsers. Missing libraries: libnice.so.10

Passwordless sudo is not available on this machine, so I could not install the missing WebKit dependency here. Leaving unmerged per the PR body requirement: do not merge until a real WebKit run is green.

@lalalune

lalalune commented Jul 3, 2026

Copy link
Copy Markdown
Member Author

Validation update: I ran the requested opt-in WebKit smoke locally from a clean temp worktree at commit 2f7cb59c8f.

Command:
PLAYWRIGHT_WEBKIT=1 node scripts/run-ui-playwright.mjs --config playwright.ui-smoke.config.ts test/ui-smoke/plugin-views-visual.spec.ts --project=webkit

Result: not merge-ready. The suite built the plugin views/core packages and reached Playwright, but all 55 plugin-views-visual WebKit cases failed before page load because this host is missing a WebKit runtime dependency:

browserType.launch: Host system is missing dependencies to run browsers. Missing libraries: libnice.so.10

I also checked whether I could install it here; noninteractive sudo is unavailable (sudo -n true requires a password), so I cannot produce the required green WebKit run from this environment. Keeping this PR open is the right call until it passes on a WebKit-capable runner or dev host.

@lalalune

lalalune commented Jul 3, 2026

Copy link
Copy Markdown
Member Author

HOLD — config is coherent; the lane has never run. Verified: the regex feeds only the opt-in webkit project, serviceWorkers:"block" protects the spec's page.route fixtures, plugin-views-visual.spec.ts has no CDP/clipboard blockers, and the default lane can't redden. But per your own PR body — "Do not merge until run green on WebKit" — the expanded lane has literally never executed (webServer never booted in your session). To merge: one clean PLAYWRIGHT_WEBKIT=1 bunx playwright test --config playwright.ui-smoke.config.ts --project=webkit run in packages/app; if it reds, that's a genuine #10722 finding to fix first. Nit: chromium+webkit write screenshots/audit JSONs to the same test-results/plugin-views/ paths — suffix by browserName to stop the silent overwrite.

@lalalune

lalalune commented Jul 3, 2026

Copy link
Copy Markdown
Member Author

Update — config is correct; WebKit is env-blocked on this host (precise blocker)

Got past the earlier "webServer won't boot" (that was a port-31337 collision with an adb-forward, now cleared). The WebKit browser itself won't launch on this host:

browserType.launch: Host system is missing dependencies to run browsers.
  Missing libraries:  libnice.so.10

libnice.so.10 is absent system-wide and npx playwright install-deps webkit requires sudo (no non-interactive path here), so I can't provision it. The webkit-2311 browser binary is present; only the OS-level dep is missing.

So the config change is verified sound (biome clean, rebased clean, correctly scoped — CDP-touch specs stay Chromium, clipboard/mic specs excluded), but the actual plugin-views-visual WebKit run needs an environment with WebKit's system deps installed (playwright install-deps webkit on a CI runner or dev box with sudo). On such a host this either passes or surfaces a real WebKit focus/sequential-nav divergence — a genuine #10722 finding. Ready to merge once run green on a WebKit-capable host. Refs #10722.

0xSolace added a commit that referenced this pull request Jul 3, 2026
…ch-action (#11853 sibling) (#11904)

The existing *-gate.test.ts files are all STYLE gates. Two production UI
bugs slipped past every one of them plus manual QA because they were
MECHANICS bugs (the pixels looked right, the interaction was dead):

  (a) drawer-not-scrollable: a clamped-height (max-h-[..vh]) + flex-col +
      overflow-hidden shell with no inner overflow-y-auto scroll body —
      taller content is dead-clipped and unreachable.
  (b) broken-swipe: a useHorizontalPager surface with no explicit
      touch-action — the browser default (auto) steals the horizontal pan
      and fires pointercancel, so the flick never commits on touch.

Adds a static (no-browser) vitest gate scoped to the real drawer/pager
surfaces (McpDetailDrawer, Launcher, HomeLauncherSurface). Comments are
stripped before scanning and the drawer scroll-body triad is checked
per-element (not per-file) so a comment mention or a decoy scroller can't
mask a regression. Self-tests plant each bug shape (incl. the exact
false-negatives codex flagged) and assert the detector fires.

Green against develop; fails on both planted real-bug shapes. This is the
MECHANICS gap not covered by #11868 (44px tap-target), #11877 (focus
order), or #11898 (test-red clearing). Enforcement is #11853's job.

— [sol-orch]

Co-authored-by: wakesync <shadow@shad0w.xyz>
@lalalune
lalalune force-pushed the test/10722-webkit-ui-smoke branch from 2f7cb59 to 428546d Compare July 3, 2026 11:41

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Your trial has ended. Reactivate Greptile to resume code reviews.

@lalalune

lalalune commented Jul 3, 2026

Copy link
Copy Markdown
Member Author

Rebased onto current origin/develop (3b51a0be36) and force-pushed 428546d23e.

Local validation in /tmp/eliza-11877-pr:

  • git diff --check origin/develop...HEAD
  • bunx @biomejs/biome check packages/app/playwright.ui-smoke.config.ts
  • PLAYWRIGHT_WEBKIT=1 node scripts/run-ui-playwright.mjs --config playwright.ui-smoke.config.ts --project=webkit test/ui-smoke/plugin-views-visual.spec.ts ❌ blocked before assertions: WebKit cannot launch on this host because the OS is missing libnice.so.10.

The WebKit command built the plugin view bundles and shared/core prerequisites, then all 57 rows failed immediately at browserType.launch with:

Host system is missing dependencies to run browsers.
Missing libraries:
    libnice.so.10

So this still should not merge until CI or another host with WebKit system deps installed produces one green PLAYWRIGHT_WEBKIT=1 run.

…d lane

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@lalalune
lalalune force-pushed the test/10722-webkit-ui-smoke branch from 428546d to 2998447 Compare July 3, 2026 11:43

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Your trial has ended. Reactivate Greptile to resume code reviews.

@lalalune

lalalune commented Jul 3, 2026

Copy link
Copy Markdown
Member Author

Rebased again onto current origin/develop (8dcfe07e91) and force-pushed 2998447bc8 after #11904 landed.

Validation after this rebase:

  • git diff --check origin/develop...HEAD
  • bunx @biomejs/biome check packages/app/playwright.ui-smoke.config.ts

The WebKit runtime blocker from the previous local run remains environmental on this host (libnice.so.10 missing), so this PR still needs one green PLAYWRIGHT_WEBKIT=1 run on CI/a host with WebKit system deps before merge.

@lalalune
lalalune merged commit 4a81c62 into develop Jul 3, 2026
38 of 42 checks passed
@lalalune
lalalune deleted the test/10722-webkit-ui-smoke branch July 3, 2026 17:10
lalalune pushed a commit that referenced this pull request Jul 3, 2026
lalalune pushed a commit that referenced this pull request Jul 3, 2026
…WebKit clobber) + honest comment (review fix)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions github-actions Bot added the ui label Jul 3, 2026
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

❌ PR title does not match the required pattern. Please use one of these formats:

  • 'type: description' (e.g., 'feat: add new feature')
  • 'type(scope): description' (e.g., 'chore(core): update dependencies')
    Valid types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert, release

@claude

claude Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error —— View job


I'll analyze this and get back to you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants