Skip to content

test(e2e): add POM anti-pattern review rules (MMQA-2248) - #45439

Draft
racitores wants to merge 6 commits into
mainfrom
test/mmqa-2248-bugbot-pom-antipattern-probe
Draft

test(e2e): add POM anti-pattern review rules (MMQA-2248)#45439
racitores wants to merge 6 commits into
mainfrom
test/mmqa-2248-bugbot-pom-antipattern-probe

Conversation

@racitores

@racitores racitores commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Description

Adds Page Object Model review rules for E2E code (MMQA-2248) to .cursor/BUGBOT.md, .cursor/commands/CODEBOT.md, and test/e2e/AGENTS.md, plus sample E2E files used to exercise the rules end to end.

Changelog

CHANGELOG entry: null

Related issues

Fixes: MMQA-2248

Manual testing steps

  1. Open this PR and wait for the automated review.
  2. Check the review comments on the E2E files under test/e2e/.
  3. Confirm the rule docs are part of the same diff.

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Note

Medium Risk
Changes automated review rules that can block E2E PRs on POM violations, and adds sample tests that deliberately violate those patterns—confirm they are only for rule validation and will not remain as runnable suite noise.

Overview
Adds automated Page Object Model enforcement for E2E reviews (MMQA-2248). New Bugbot detectors 3.3–3.9 flag locators in flows, single-page-object flows, UI helpers and raw driver calls in specs, hardcoded delays, page objects calling other page objects, and try/catch in page objects/flows—several as blocking merge defects.

CODEBOT checklists and test/e2e/AGENTS.md now point at these rules, and a scoped test/e2e/.cursor/BUGBOT.md mirrors them for E2E-only reviews.

Also adds intentionally non-compliant sample flow, page object, and spec files under account-overview so the new detectors can be validated end to end on this PR.

Reviewed by Cursor Bugbot for commit d4e23bb. Bugbot is set up for automated code reviews on this repo. Configure here.

Expand BUGBOT/CODEBOT/AGENTS coverage for POM anti-patterns and add
intentional probe files so we can verify Bugbot flags them on the PR.

Co-authored-by: Cursor <cursoragent@cursor.com>
@racitores
racitores deployed to pr-comment August 12, 2026 07:05 — with GitHub Actions Active
@github-actions

Copy link
Copy Markdown
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamask-ci metamask-ci Bot added the team-qa QA team label Aug 12, 2026
@metamask-ci

metamask-ci Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

🧪 @MetaMask/qa (2 files, +82 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 page-objects/
        • 📁 flows/
          • 📄 account-overview.flow.ts +36 -0
        • 📁 pages/
          • 📁 account-overview/
            • 📄 account-overview-page.ts +46 -0

@racitores
racitores deployed to pr-comment August 12, 2026 07:06 — with GitHub Actions Active
@metamask-ci

metamask-ci Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor
Builds ready [ab9f53b] [reused from 4b2c00b]
⚡ Performance Benchmarks (Total: 🟢 6 pass · 🟡 10 warn · 🔴 4 fail)

Baseline (latest main): 171ed20 | Date: 7/28/2026 | Pipeline: 31572546803 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🔴 srpButtonToSrpForm(p95) [CI log]🔴 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🔴 longTaskTotalDuration(p95) [CI log]🔴 [CI log]

Regressions (🔴 4 failures)

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
🟡 load_new_account
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/lcp: +10%
  • confirmTx/longTaskCount: -33%
  • confirmTx/longTaskTotalDuration: -43%
  • confirmTx/longTaskMaxDuration: +11%
  • confirmTx/tbt: -52%
  • confirmTx/lcp: -12%
  • bridgeUserActions/bridge_load_asset_picker: +41%
  • bridgeUserActions/longTaskCount: -44%
  • bridgeUserActions/longTaskTotalDuration: -59%
  • bridgeUserActions/longTaskMaxDuration: -37%
  • bridgeUserActions/tbt: -89%
  • loadNewAccount/load_new_account: +21%
  • loadNewAccount/total: +21%
  • loadNewAccount/inp: +59%
  • loadNewAccount/fcp: -45%
  • loadNewAccount/lcp: +1094%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/fcp: -46%
  • confirmTx/lcp: +1409%
  • bridgeUserActions/bridge_load_page: +278%
  • bridgeUserActions/bridge_load_asset_picker: +222%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +47%
  • bridgeUserActions/inp: -23%
  • bridgeUserActions/lcp: +1210%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 1.8s
  • 🟡 confirmTx/LCP: p75 2.6s
  • 🟡 bridgeUserActions/FCP: p75 1.8s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/firstReactRender: -99%
  • startupStandardHome/numNetworkReqs: -14%
  • startupStandardHome/domInteractive: -17%
  • startupStandardHome/firstReactRender: -98%
  • startupStandardHome/numNetworkReqs: -13%
  • startupStandardHome/fcp: -14%
  • startupPowerUserHome/uiStartup: +20%
  • startupPowerUserHome/load: +32%
  • startupPowerUserHome/domContentLoaded: +32%
  • startupPowerUserHome/domInteractive: +30%
  • startupPowerUserHome/backgroundConnect: +49%
  • startupPowerUserHome/firstReactRender: -99%
  • startupPowerUserHome/initialActions: +11%
  • startupPowerUserHome/loadScripts: +27%
  • startupPowerUserHome/setupStore: +288%
  • startupPowerUserHome/inp: -11%
  • startupPowerUserHome/fcp: +31%
  • startupPowerUserHome/lcp: +33%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/LCP: p75 3.8s
User Journey Benchmarks · Samples: 5 · mock API 🔴 4

⚠️ Missing data: chrome/webpack/userJourneyTransactions, firefox/webpack/userJourneyTransactions

Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🔴 [CI log]
🔴 doneButtonToHomeScreen
🔴 total
🔴 [CI log]
🔴 total
onboardingNewWallet
[Sentry log · main/release]
🔴 [CI log]
🔴 total
🔴 [CI log]
🔴 total
assetDetails
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
🟡 assetClickToPriceChart
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: +21%
  • onboardingImportWallet/confirmSrpToPwForm: +23%
  • onboardingImportWallet/doneButtonToHomeScreen: +26%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +102%
  • onboardingImportWallet/longTaskTotalDuration: -62%
  • onboardingImportWallet/longTaskMaxDuration: -79%
  • onboardingImportWallet/tbt: -82%
  • onboardingImportWallet/total: +33%
  • onboardingNewWallet/longTaskTotalDuration: +21%
  • onboardingNewWallet/tbt: +76%
  • solanaAssetDetails/assetClickToPriceChart: +301%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: +301%
  • solanaAssetDetails/inp: +11%
  • solanaAssetDetails/fcp: +20%
  • importSrpHome/homeAfterImportWithNewWallet: +28%
  • importSrpHome/longTaskCount: +48%
  • importSrpHome/longTaskTotalDuration: +24%
  • importSrpHome/longTaskMaxDuration: -18%
  • importSrpHome/total: +26%
  • importSrpHome/fcp: +12%
  • importSrpHome/cls: -13%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/INP: p75 304ms
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 assetDetails/FCP: p75 2.2s
  • 🟡 assetDetails/LCP: p75 2.9s
  • 🟡 solanaAssetDetails/FCP: p75 2.1s
  • 🟡 solanaAssetDetails/LCP: p75 2.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: -58%
  • dappPageLoad/firstPaint: -46%
  • dappPageLoad/firstContentfulPaint: -46%
Bundle size diffs
  • background: 0 Bytes (0%)
  • ui: 0 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: 0 Bytes (0%)

@racitores

Copy link
Copy Markdown
Contributor Author

bugbot run

@cursor cursor 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit ab9f53b. Configure here.

Co-authored-by: Cursor <cursoragent@cursor.com>
@racitores
racitores deployed to pr-comment August 12, 2026 07:10 — with GitHub Actions Active
@racitores

Copy link
Copy Markdown
Contributor Author

bugbot run verbose=true

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Bugbot request id: serverGenReqId_2b6be6e9-2940-463b-854a-800485c079dc

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Bugbot rules debug

Bugbot rules included in this run
Rule Type Size Status
Idempotency (team-201963f9-64f8-4355-85f8-7da935c00fed) team 149 chars included
Pre-flight Check (team-6d9ec571-9a65-4639-86d9-a7247f4863b9) team 347 chars included
Rate Limiting (team-16848eb5-8a2d-420e-80bb-7419d0054e18) team 250 chars included
Never Reopen Resolved Comments (team-aab8e81c-3fa2-43ad-b621-bd6123c2e665) team 265 chars included
Duplicate Prevention (team-0c27ceb2-6b45-442f-a6f6-b4c70594b2a8) team 364 chars included
BUGBOT Rules (project-723150575b43) project (BUGBOT.md) 19,097 chars included
Flag new TypeScript enum declarations — prefer const objects with as const (learned-8c28b9fc-35b3-41c9-953a-5cd08bd1c23b) learned 857 chars included
Do not flag exception concerns in driver.wait polling callbacks with try/catch return false (learned-0d4dcc08-5ab8-4d9f-bda0-b97b5fccd8e5) learned 993 chars included
bignumber.js v4 method aliases (.mul, .div, etc.) are valid in this repo (learned-6ee68445-24bd-443f-a32d-af99952e3039) learned 826 chars included
Do not flag removal of redundant driver.wait wrappers around driver.waitForSelector in E2E tests (learned-ee5aa1e2-0838-4d12-ac88-fb493ae687ef) learned 811 chars included
Do not flag defensive mocks or fixture configuration choices in E2E tests (learned-528af613-0729-4c3c-ba93-e8b24800f34c) learned 707 chars included

https://cursor.com/docs/bugbot#team-rules

Bugbot request id: serverGenReqId_2b6be6e9-2940-463b-854a-800485c079dc

@cursor cursor 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 1982444. Configure here.

Rewrite BUGBOT.md 3.3-3.9 as short flag/do-not-flag rules and make the
sample files read like ordinary E2E code so the rules are exercised
realistically.

Co-authored-by: Cursor <cursoragent@cursor.com>
@racitores
racitores deployed to pr-comment August 12, 2026 07:20 — with GitHub Actions Active
@racitores racitores changed the title test(e2e): add Bugbot POM anti-pattern rules and CI probe (MMQA-2248) test(e2e): add POM anti-pattern review rules (MMQA-2248) Aug 12, 2026
@racitores

Copy link
Copy Markdown
Contributor Author

bugbot run verbose=true

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Bugbot request id: serverGenReqId_9902f0b2-dbb4-4729-95df-b869fc80adb8

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Bugbot rules debug

Bugbot rules included in this run
Rule Type Size Status
Idempotency (team-201963f9-64f8-4355-85f8-7da935c00fed) team 149 chars included
Pre-flight Check (team-6d9ec571-9a65-4639-86d9-a7247f4863b9) team 347 chars included
Rate Limiting (team-16848eb5-8a2d-420e-80bb-7419d0054e18) team 250 chars included
Never Reopen Resolved Comments (team-aab8e81c-3fa2-43ad-b621-bd6123c2e665) team 265 chars included
Duplicate Prevention (team-0c27ceb2-6b45-442f-a6f6-b4c70594b2a8) team 364 chars included
BUGBOT Rules (project-4a82b9449b72) project (BUGBOT.md) 12,816 chars included
Passkey setup only appears in non-social-login chromium onboarding — do not flag other E2E flows (learned-f36f2bd2-7072-461a-a07c-08b8869dbd2d) learned 982 chars included
Do not flag sequential waitForSelector try/catch fallback as a timeout issue in E2E page objects (learned-f6e6ca7b-cae0-41a8-9256-3309762cbd95) learned 943 chars included
Flag new TypeScript enum declarations — prefer const objects with as const (learned-8c28b9fc-35b3-41c9-953a-5cd08bd1c23b) learned 857 chars included
Do not flag exception concerns in driver.wait polling callbacks with try/catch return false (learned-0d4dcc08-5ab8-4d9f-bda0-b97b5fccd8e5) learned 993 chars included
bignumber.js v4 method aliases (.mul, .div, etc.) are valid in this repo (learned-6ee68445-24bd-443f-a32d-af99952e3039) learned 826 chars included
Do not flag removal of redundant driver.wait wrappers around driver.waitForSelector in E2E tests (learned-ee5aa1e2-0838-4d12-ac88-fb493ae687ef) learned 811 chars included
Do not flag defensive mocks or fixture configuration choices in E2E tests (learned-528af613-0729-4c3c-ba93-e8b24800f34c) learned 707 chars included

https://cursor.com/docs/bugbot#team-rules

Bugbot request id: serverGenReqId_9902f0b2-dbb4-4729-95df-b869fc80adb8

@cursor cursor 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit e20a3ec. Configure here.

@racitores

Copy link
Copy Markdown
Contributor Author

bugbot run verbose=true

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Bugbot request id: serverGenReqId_1fbdb9e0-6435-446a-a3a2-0634d0eeed05

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Bugbot rules debug

Bugbot rules included in this run
Rule Type Size Status
Idempotency (team-201963f9-64f8-4355-85f8-7da935c00fed) team 149 chars included
Pre-flight Check (team-6d9ec571-9a65-4639-86d9-a7247f4863b9) team 347 chars included
Rate Limiting (team-16848eb5-8a2d-420e-80bb-7419d0054e18) team 250 chars included
Never Reopen Resolved Comments (team-aab8e81c-3fa2-43ad-b621-bd6123c2e665) team 265 chars included
Duplicate Prevention (team-0c27ceb2-6b45-442f-a6f6-b4c70594b2a8) team 364 chars included
BUGBOT Rules (project-4a82b9449b72) project (BUGBOT.md) 12,816 chars included
Passkey setup only appears in non-social-login chromium onboarding — do not flag other E2E flows (learned-f36f2bd2-7072-461a-a07c-08b8869dbd2d) learned 982 chars included
Do not flag sequential waitForSelector try/catch fallback as a timeout issue in E2E page objects (learned-f6e6ca7b-cae0-41a8-9256-3309762cbd95) learned 943 chars included
Flag new TypeScript enum declarations — prefer const objects with as const (learned-8c28b9fc-35b3-41c9-953a-5cd08bd1c23b) learned 857 chars included
Do not flag exception concerns in driver.wait polling callbacks with try/catch return false (learned-0d4dcc08-5ab8-4d9f-bda0-b97b5fccd8e5) learned 993 chars included
bignumber.js v4 method aliases (.mul, .div, etc.) are valid in this repo (learned-6ee68445-24bd-443f-a32d-af99952e3039) learned 826 chars included
Do not flag removal of redundant driver.wait wrappers around driver.waitForSelector in E2E tests (learned-ee5aa1e2-0838-4d12-ac88-fb493ae687ef) learned 811 chars included
Do not flag defensive mocks or fixture configuration choices in E2E tests (learned-528af613-0729-4c3c-ba93-e8b24800f34c) learned 707 chars included

https://cursor.com/docs/bugbot#team-rules

Bugbot request id: serverGenReqId_1fbdb9e0-6435-446a-a3a2-0634d0eeed05

@cursor cursor 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit e20a3ec. Configure here.

Scope the imperative Page Object Model rules under test/e2e so Bugbot
loads them when reviewing E2E changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
@racitores
racitores deployed to pr-comment August 12, 2026 07:27 — with GitHub Actions Active
@racitores

Copy link
Copy Markdown
Contributor Author

bugbot run verbose=true

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Bugbot request id: serverGenReqId_6fd7571a-a46f-4d6e-aec9-43da72cde88a

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Bugbot rules debug

Bugbot rules included in this run
Rule Type Size Status
Idempotency (team-201963f9-64f8-4355-85f8-7da935c00fed) team 149 chars included
Pre-flight Check (team-6d9ec571-9a65-4639-86d9-a7247f4863b9) team 347 chars included
Rate Limiting (team-16848eb5-8a2d-420e-80bb-7419d0054e18) team 250 chars included
Never Reopen Resolved Comments (team-aab8e81c-3fa2-43ad-b621-bd6123c2e665) team 265 chars included
Duplicate Prevention (team-0c27ceb2-6b45-442f-a6f6-b4c70594b2a8) team 364 chars included
BUGBOT Rules (project-4a82b9449b72) project (BUGBOT.md) 12,816 chars included
E2E Page Object Model rules (project-5bdeea8bba8a) project (BUGBOT.md) 3,771 chars included
Flag new TypeScript enum declarations — prefer const objects with as const (learned-8c28b9fc-35b3-41c9-953a-5cd08bd1c23b) learned 857 chars included
Do not flag exception concerns in driver.wait polling callbacks with try/catch return false (learned-0d4dcc08-5ab8-4d9f-bda0-b97b5fccd8e5) learned 993 chars included
bignumber.js v4 method aliases (.mul, .div, etc.) are valid in this repo (learned-6ee68445-24bd-443f-a32d-af99952e3039) learned 826 chars included
Do not flag removal of redundant driver.wait wrappers around driver.waitForSelector in E2E tests (learned-ee5aa1e2-0838-4d12-ac88-fb493ae687ef) learned 811 chars included
Do not flag defensive mocks or fixture configuration choices in E2E tests (learned-528af613-0729-4c3c-ba93-e8b24800f34c) learned 707 chars included

https://cursor.com/docs/bugbot#team-rules

Bugbot request id: serverGenReqId_6fd7571a-a46f-4d6e-aec9-43da72cde88a

@cursor cursor 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit bb19286. Configure here.

Add an activity tab flow, a settings helper on the page object, and a
token list test.

Co-authored-by: Cursor <cursoragent@cursor.com>
@racitores
racitores deployed to pr-comment August 12, 2026 07:33 — with GitHub Actions Active
@racitores

Copy link
Copy Markdown
Contributor Author

bugbot run verbose=true

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Bugbot request id: serverGenReqId_0ae1d730-abeb-49e8-84b1-fb5d324c4c5b

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Bugbot rules debug

Bugbot rules included in this run
Rule Type Size Status
Idempotency (team-201963f9-64f8-4355-85f8-7da935c00fed) team 149 chars included
Pre-flight Check (team-6d9ec571-9a65-4639-86d9-a7247f4863b9) team 347 chars included
Rate Limiting (team-16848eb5-8a2d-420e-80bb-7419d0054e18) team 250 chars included
Never Reopen Resolved Comments (team-aab8e81c-3fa2-43ad-b621-bd6123c2e665) team 265 chars included
Duplicate Prevention (team-0c27ceb2-6b45-442f-a6f6-b4c70594b2a8) team 364 chars included
BUGBOT Rules (project-4a82b9449b72) project (BUGBOT.md) 12,816 chars included
E2E Page Object Model rules (project-5bdeea8bba8a) project (BUGBOT.md) 3,771 chars included
Passkey setup only appears in non-social-login chromium onboarding — do not flag other E2E flows (learned-f36f2bd2-7072-461a-a07c-08b8869dbd2d) learned 982 chars included
Do not flag sequential waitForSelector try/catch fallback as a timeout issue in E2E page objects (learned-f6e6ca7b-cae0-41a8-9256-3309762cbd95) learned 943 chars included
Flag new TypeScript enum declarations — prefer const objects with as const (learned-8c28b9fc-35b3-41c9-953a-5cd08bd1c23b) learned 857 chars included
Do not flag exception concerns in driver.wait polling callbacks with try/catch return false (learned-0d4dcc08-5ab8-4d9f-bda0-b97b5fccd8e5) learned 993 chars included
bignumber.js v4 method aliases (.mul, .div, etc.) are valid in this repo (learned-6ee68445-24bd-443f-a32d-af99952e3039) learned 826 chars included
Do not flag removal of redundant driver.wait wrappers around driver.waitForSelector in E2E tests (learned-ee5aa1e2-0838-4d12-ac88-fb493ae687ef) learned 811 chars included
Do not flag defensive mocks or fixture configuration choices in E2E tests (learned-528af613-0729-4c3c-ba93-e8b24800f34c) learned 707 chars included

https://cursor.com/docs/bugbot#team-rules

Bugbot request id: serverGenReqId_0ae1d730-abeb-49e8-84b1-fb5d324c4c5b

@cursor cursor 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 9e6459d. Configure here.

Cursor docs show Bugbot acts on rules written as an explicit regex trigger
followed by an imperative "Add a [blocking|non-blocking] Bug" instruction.
The previous descriptive "Flag/Do not flag" prose was loaded but never
produced findings. Restate sections 3.3-3.9 and the nested E2E rules in
that format, and extend the sample files with further POM violations.

Co-authored-by: Cursor <cursoragent@cursor.com>
@racitores

Copy link
Copy Markdown
Contributor Author

bugbot run verbose=true

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Bugbot request id: serverGenReqId_b0a72bd6-a26e-4ef5-b4b4-ab6a3fbb7306

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Bugbot rules debug

Bugbot rules included in this run
Rule Type Size Status
Idempotency (team-201963f9-64f8-4355-85f8-7da935c00fed) team 149 chars included
Pre-flight Check (team-6d9ec571-9a65-4639-86d9-a7247f4863b9) team 347 chars included
Rate Limiting (team-16848eb5-8a2d-420e-80bb-7419d0054e18) team 250 chars included
Never Reopen Resolved Comments (team-aab8e81c-3fa2-43ad-b621-bd6123c2e665) team 265 chars included
Duplicate Prevention (team-0c27ceb2-6b45-442f-a6f6-b4c70594b2a8) team 364 chars included
BUGBOT Rules (project-df1b5c10454d) project (BUGBOT.md) 12,917 chars included
E2E Page Object Model rules (project-f1b96f9fd25c) project (BUGBOT.md) 4,453 chars included
Passkey setup only appears in non-social-login chromium onboarding — do not flag other E2E flows (learned-f36f2bd2-7072-461a-a07c-08b8869dbd2d) learned 982 chars included
Do not flag sequential waitForSelector try/catch fallback as a timeout issue in E2E page objects (learned-f6e6ca7b-cae0-41a8-9256-3309762cbd95) learned 943 chars included
Flag new TypeScript enum declarations — prefer const objects with as const (learned-8c28b9fc-35b3-41c9-953a-5cd08bd1c23b) learned 857 chars included
Do not flag exception concerns in driver.wait polling callbacks with try/catch return false (learned-0d4dcc08-5ab8-4d9f-bda0-b97b5fccd8e5) learned 993 chars included
bignumber.js v4 method aliases (.mul, .div, etc.) are valid in this repo (learned-6ee68445-24bd-443f-a32d-af99952e3039) learned 826 chars included
Do not flag removal of redundant driver.wait wrappers around driver.waitForSelector in E2E tests (learned-ee5aa1e2-0838-4d12-ac88-fb493ae687ef) learned 811 chars included
Do not flag defensive mocks or fixture configuration choices in E2E tests (learned-528af613-0729-4c3c-ba93-e8b24800f34c) learned 707 chars included

https://cursor.com/docs/bugbot#team-rules

Bugbot request id: serverGenReqId_b0a72bd6-a26e-4ef5-b4b4-ab6a3fbb7306

@cursor cursor 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit d4e23bb. Configure here.

@racitores

Copy link
Copy Markdown
Contributor Author

bugbot run verbose=true

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Bugbot request id: serverGenReqId_887cfa2a-472a-4288-b108-8b0136287f30

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Bugbot rules debug

Bugbot rules included in this run
Rule Type Size Status
Idempotency (team-201963f9-64f8-4355-85f8-7da935c00fed) team 149 chars included
Pre-flight Check (team-6d9ec571-9a65-4639-86d9-a7247f4863b9) team 347 chars included
Rate Limiting (team-16848eb5-8a2d-420e-80bb-7419d0054e18) team 250 chars included
Never Reopen Resolved Comments (team-aab8e81c-3fa2-43ad-b621-bd6123c2e665) team 265 chars included
Duplicate Prevention (team-0c27ceb2-6b45-442f-a6f6-b4c70594b2a8) team 364 chars included
BUGBOT Rules (project-df1b5c10454d) project (BUGBOT.md) 12,917 chars included
E2E Page Object Model rules (project-f1b96f9fd25c) project (BUGBOT.md) 4,453 chars included
Passkey setup only appears in non-social-login chromium onboarding — do not flag other E2E flows (learned-f36f2bd2-7072-461a-a07c-08b8869dbd2d) learned 982 chars included
Do not flag sequential waitForSelector try/catch fallback as a timeout issue in E2E page objects (learned-f6e6ca7b-cae0-41a8-9256-3309762cbd95) learned 943 chars included
Flag new TypeScript enum declarations — prefer const objects with as const (learned-8c28b9fc-35b3-41c9-953a-5cd08bd1c23b) learned 857 chars included
Do not flag exception concerns in driver.wait polling callbacks with try/catch return false (learned-0d4dcc08-5ab8-4d9f-bda0-b97b5fccd8e5) learned 993 chars included
bignumber.js v4 method aliases (.mul, .div, etc.) are valid in this repo (learned-6ee68445-24bd-443f-a32d-af99952e3039) learned 826 chars included
Do not flag removal of redundant driver.wait wrappers around driver.waitForSelector in E2E tests (learned-ee5aa1e2-0838-4d12-ac88-fb493ae687ef) learned 811 chars included
Do not flag defensive mocks or fixture configuration choices in E2E tests (learned-528af613-0729-4c3c-ba93-e8b24800f34c) learned 707 chars included

https://cursor.com/docs/bugbot#team-rules

Bugbot request id: serverGenReqId_887cfa2a-472a-4288-b108-8b0136287f30

@cursor cursor 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit d4e23bb. Configure here.

@racitores racitores added the skip-e2e Skip E2E test jobs label Aug 12, 2026
@sonarqubecloud

Copy link
Copy Markdown

@racitores
racitores deployed to pr-comment August 12, 2026 08:12 — with GitHub Actions Active
@metamask-ci

metamask-ci Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor
Builds ready [d4e23bb] [reused from e20a3ec]
⚡ Performance Benchmarks (Total: 🟢 1 pass · 🟡 0 warn · 🔴 0 fail)

Baseline (latest main): 171ed20 | Date: 7/28/2026 | Pipeline: 31575584131 | Baseline logs

Interaction Benchmarks · Samples: 5

⚠️ Missing data: chrome/webpack/interactionUserActions, firefox/webpack/interactionUserActions

✅ No regressions detected

Startup Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/startupStandardHome, chrome/webpack/startupPowerUserHome, firefox/webpack/startupStandardHome, firefox/webpack/startupPowerUserHome

✅ No regressions detected

User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: chrome/webpack/userJourneyOnboardingImport, chrome/webpack/userJourneyAssets, chrome/webpack/userJourneyAccountManagement, chrome/webpack/userJourneyTransactions, firefox/webpack/userJourneyOnboardingImport, firefox/webpack/userJourneyOnboardingNew, firefox/webpack/userJourneyAssets, firefox/webpack/userJourneyAccountManagement, firefox/webpack/userJourneyTransactions

Benchmarkchrome-webpack
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]
🔴 total

📈 Results compared to the previous 5 runs on main

  • onboardingNewWallet/longTaskCount: -38%
  • onboardingNewWallet/longTaskTotalDuration: -57%
  • onboardingNewWallet/longTaskMaxDuration: -47%
  • onboardingNewWallet/tbt: -94%
Dapp Page Load Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/pageLoadBenchmark

✅ No regressions detected

Bundle size diffs
  • background: -112 Bytes (0%)
  • ui: 40 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: -3.9 KiB (-0.02%)

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

Labels

size-M skip-e2e Skip E2E test jobs team-qa QA team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant