Skip to content

feat(perps): add configurable slippage controls#43357

Merged
aganglada merged 39 commits into
mainfrom
TAT-1043-feat-add-perps-slippage-config
Jun 15, 2026
Merged

feat(perps): add configurable slippage controls#43357
aganglada merged 39 commits into
mainfrom
TAT-1043-feat-add-perps-slippage-config

Conversation

@abretonc7s

@abretonc7s abretonc7s commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Description

Adds configurable max slippage controls for Extension perps market orders behind the perpsSlippageConfig2 remote flag.

This PR:

  • shows estimated slippage and the active max-slippage cap in the perps order summary once an order size is available;
  • adds a max-slippage configuration modal with preset/custom values from 0.1% to 10%;
  • persists the user's selected cap through perpsGetMaxSlippage / perpsSetMaxSlippage;
  • passes maxSlippageBps when placing flag-enabled market orders;
  • blocks market-order submission while the cap/estimate is loading or when estimated slippage exceeds the configured cap;
  • adds tests for slippage calculation, persistence fallback, order-summary display, and submit blocking.

Changelog

CHANGELOG entry: Added configurable max slippage controls for perps market orders

Related issues

Fixes: https://consensyssoftware.atlassian.net/browse/TAT-1043

Manual testing steps

  1. Enable the perpsSlippageConfig2 remote flag.
  2. Open the Extension perps order entry screen.
  3. Enter an order size and verify the order summary shows estimated slippage and the max slippage cap.
  4. Open the max-slippage control, select a preset/custom value, save it, and verify the summary updates.
  5. Reload/reopen order entry and verify the configured max-slippage value persists.
  6. Verify market-order submit is disabled or blocked with a clear error when the estimate exceeds the configured max.

Screenshots/Recordings

Recipe screenshots prove slippage row visibility, max-slippage configuration, persistence, and default 3% cap on the perps order entry screen.

AC1/AC4 — slippage row shows Est/Max after order size (default max 3%)
AC1/AC4 — slippage row shows Est/Max after order size (default max 3%)
AC2/AC3 — slippage config modal saved; summary shows Max 2%
AC2/AC3 — slippage config modal saved; summary shows Max 2%
AC5 — funded order with custom 0.1% max slippage cap applied
AC5 — funded order with custom 0.1% max slippage cap applied

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 market-order submit preconditions and order params (maxSlippageBps); mistakes could block trading or pass wrong slippage, though behavior is gated by remote flag and covered by tests.

Overview
Behind the perpsSlippageConfig2 remote flag, Extension perps market orders get user-configurable max slippage with live estimated slippage from the order book.

The order summary gains an editable Est / Max slippage row and a Set slippage modal (presets + custom, 0.1%–10%). Caps are loaded and saved via perpsGetMaxSlippage / perpsSetMaxSlippage; maxSlippageBps is sent on place-order when the flag is on. Submit stays disabled while the cap or estimate is loading, and is blocked with messaging when estimate exceeds max (with related analytics).

Supporting work: L2 order-book stream options (levels, nSigFigs, mantissa) through the stream bridge; usePerpsLiveOrderBook now activates/deactivates the background stream (with manageStream for shared lifecycle); calculateEstimatedSlippageBps + usePerpsEstimatedSlippage (throttled book reads). New orders can prefill default size from controller trading defaults. Generic Perps E2E keeps the flag off so mocks without book estimates do not lock submit.

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

abretonc7s and others added 6 commits June 8, 2026 23:25
… config

Gate the order-entry slippage UI behind opt-in remote flag perps-slippage-config2, show Est/Max on market orders, persist user max (default 3%), and block submit when estimate exceeds the cap.

Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve TypeScript and test failures from the slippage feature pass, surface persistence errors, and align the slippage modal with existing perps modal patterns.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use i18n-backed slippage exceed message in the submit-block unit test instead of a brittle regex.

Co-authored-by: Cursor <cursoragent@cursor.com>
- usePerpsEstimatedSlippage: propagate `enabled` to usePerpsLiveOrderBook so
  disabled (e.g. limit orders) no longer activates the background order-book
  stream.
- usePerpsLiveOrderBook: gate stream activation on `enabled`; thread
  `levels`/`nSigFigs`/`mantissa` through to the bridge; drop the `onError`
  option that could not cross the background RPC.
- perps-stream-bridge: forward `levels`/`nSigFigs`/`mantissa` from
  perpsActivateOrderBookStream to controller.subscribeToOrderBook.
- slippage config modal: validate the full input as a single numeric token
  before enabling/saving Set, rejecting partial strings like `1abc`/`1.2.3`.
- tests: bridge option forwarding + modal validation coverage.
…age config (TAT-1043)

RemoteFeatureFlagController camelCases LaunchDarkly keys, so the stored key is
`perpsSlippageConfig2` (not kebab). Switch the selector to read the camelCase
key and accept the `{ enabled, minimumVersion }` rollout shape via
isPerpsRemoteConfigSatisfied (boolean still supported). Update the order-entry
test fixture to the new flag shape.
Import BASIS_POINTS_DIVISOR from perps-controller, derive max-slippage
source from PERPS_EVENT_VALUE, add usePerpsMaxSlippage unit tests, and
label the slippage exceed row for screen readers.

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

github-actions Bot commented Jun 9, 2026

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.

@mm-token-exchange-service mm-token-exchange-service Bot added the team-perps Perps team label Jun 9, 2026
@mm-token-exchange-service

mm-token-exchange-service Bot commented Jun 9, 2026

Copy link
Copy Markdown

✨ Files requiring CODEOWNER review ✨

👨‍🔧 @MetaMask/perps (31 files, +2009 -55)
  • 📁 app/
    • 📁 scripts/
      • 📁 controllers/
        • 📁 perps/
          • 📄 perps-stream-bridge.test.ts +30 -0
          • 📄 perps-stream-bridge.ts +20 -4
  • 📁 test/
    • 📁 e2e/
      • 📁 tests/
        • 📁 perps/
          • 📄 perps-fixture-config.ts +14 -0
  • 📁 ui/
    • 📁 components/
      • 📁 app/
        • 📁 perps/
          • 📁 close-position/
            • 📄 close-position-modal.test.tsx +1 -0
          • 📁 constants/
            • 📄 slippageConfig.test.ts +26 -0
            • 📄 slippageConfig.ts +30 -0
          • 📁 order-entry/
            • 📁 components/
              • 📁 order-summary/
                • 📄 order-summary.test.tsx +18 -0
                • 📄 order-summary.tsx +66 -0
              • 📄 order-entry.test.tsx +7 -0
              • 📄 order-entry.types.ts +10 -0
          • 📁 reverse-position/
            • 📄 reverse-position-modal.test.tsx +1 -0
          • 📁 slippage-config/
            • 📄 index.ts +2 -0
            • 📄 perps-slippage-config-modal.test.tsx +94 -0
            • 📄 perps-slippage-config-modal.tsx +335 -0
          • 📁 utils/
            • 📄 slippageCalculation.test.ts +69 -0
            • 📄 slippageCalculation.ts +79 -0
    • 📁 hooks/
      • 📁 perps/
        • 📁 stream/
          • 📄 usePerpsLiveOrderBook.test.ts +76 -0
          • 📄 usePerpsLiveOrderBook.ts +45 -32
          • 📄 index.ts +7 -0
          • 📄 usePerpsEstimatedSlippage.test.ts +84 -0
          • 📄 usePerpsEstimatedSlippage.ts +114 -0
          • 📄 usePerpsMaxSlippage.test.ts +98 -0
          • 📄 usePerpsMaxSlippage.ts +66 -0
          • 📄 usePerpsOrderForm.test.ts +124 -0
          • 📄 usePerpsOrderForm.ts +115 -1
    • 📁 pages/
      • 📁 perps/
        • 📄 perps-layout.test.tsx +1 -9
        • 📄 perps-market-detail-page.test.tsx +1 -0
        • 📄 perps-order-entry-page.test.tsx +237 -6
        • 📄 perps-order-entry-page.tsx +224 -3
        • 📄 perps-withdraw-page.test.tsx +1 -0
    • 📁 selectors/
      • 📁 perps/
        • 📄 feature-flags.ts +14 -0

@abretonc7s

Copy link
Copy Markdown
Contributor Author
Run Duration Model Nudges Grade Cost
3a778bd5 (dev, TAT-1043) ? composer-2 via cursor 0 ungraded (-) $unknown
Worker report

TAT-1043 Implementation Report

Summary

Extension perps order entry now shows estimated slippage, lets users configure a persisted max slippage (default 3%), and blocks market-order submit when the live estimate exceeds the cap. Feature is opt-in via remote flag perps-slippage-config2.

Self-Review Fixes

  • ui/components/app/perps/order-entry/components/order-summary/order-summary.tsx:68 — Replaced invalid Box as="button" with a native <button> so lint:tsc passes.
  • ui/components/app/perps/slippage-config/perps-slippage-config-modal.tsx:181 — Moved layout props from Modal to ModalContent (Display.Flex, ModalContentSize.Sm) matching perps-candle-period-modal.
  • ui/pages/perps/perps-order-entry-page.tsx:988 — Removed redundant orderMode !== 'close' guard; exceedsMaxSlippage already implies market new/modify with amount.
  • ui/pages/perps/perps-order-entry-page.tsx:1761setMaxSlippage failures now surface somethingWentWrong via setSubmitError; analytics fire only after successful persist.
  • ui/hooks/perps/usePerpsMaxSlippage.ts:32 — Documented intentional fallback to default when the initial controller read fails.
  • ui/pages/perps/perps-order-entry-page.test.tsx:464 — Updated for default $10 testnet amount prefill from TRADING_DEFAULTS.
  • ui/pages/perps/perps-order-entry-page.test.tsx:871 — Widened mock with as const for user_configured slippage source.
  • artifacts/recipe.json — AC4 now runs after order size + slippage row wait so default Max: 3% is assertable.
  • artifacts/recipe-coverage.md — Added visual/mixed AC coverage matrix.
  • ui/pages/perps/perps-order-entry-page.tsx:682,993-994 — Kept .toFixed(2) for estimated/max slippage display to match mobile PerpsOrderView parity.

Self-Review Fixes (round 2)

  • ui/pages/perps/perps-order-entry-page.test.tsx:895 — Assert slippage submit error via tEn('perpsSlippageExceedsMax', …) with bpsToPercent args instead of a brittle regex.
  • artifacts/evidence-manifest.json — Added manifest linking recipe-run/*.png screenshots to AC1–AC5 visual/mixed proof.

Self-Review Fixes (round 3)

  • ui/components/app/perps/utils/slippageCalculation.ts:4 — Import BASIS_POINTS_DIVISOR from @metamask/perps-controller instead of a local duplicate.
  • ui/hooks/perps/usePerpsMaxSlippage.ts:5 — Derive MaxSlippageSource from PERPS_EVENT_VALUE.MAX_SLIPPAGE_SOURCE to stay coupled to controller analytics literals.
  • ui/hooks/perps/usePerpsMaxSlippage.test.ts — Add unit tests for default fallback, user-configured resolution, controller-read error fallback, and setMaxSlippage persistence.
  • ui/components/app/perps/order-entry/components/order-summary/order-summary.tsx:93 — Add sr-only + aria-live="polite" exceed label using perpsSlippageExceeded for screen-reader users.
  • ui/components/app/perps/order-entry/components/order-summary/order-summary.test.tsx — Assert exceed indicator exposes the screen-reader message.

@abretonc7s

Copy link
Copy Markdown
Contributor Author
Run Duration Model Nudges Grade Cost
3a778bd5 (dev, TAT-1043) ? composer-2 via cursor 0 ungraded $unknown
Worker report

TAT-1043 Implementation Report

Summary

Extension perps order entry now shows estimated slippage, lets users configure a persisted max slippage (default 3%), and blocks market-order submit when the live estimate exceeds the cap. Feature is opt-in via remote flag perps-slippage-config2.

Self-Review Fixes

  • ui/components/app/perps/order-entry/components/order-summary/order-summary.tsx:68 — Replaced invalid Box as="button" with a native <button> so lint:tsc passes.
  • ui/components/app/perps/slippage-config/perps-slippage-config-modal.tsx:181 — Moved layout props from Modal to ModalContent (Display.Flex, ModalContentSize.Sm) matching perps-candle-period-modal.
  • ui/pages/perps/perps-order-entry-page.tsx:988 — Removed redundant orderMode !== 'close' guard; exceedsMaxSlippage already implies market new/modify with amount.
  • ui/pages/perps/perps-order-entry-page.tsx:1761setMaxSlippage failures now surface somethingWentWrong via setSubmitError; analytics fire only after successful persist.
  • ui/hooks/perps/usePerpsMaxSlippage.ts:32 — Documented intentional fallback to default when the initial controller read fails.
  • ui/pages/perps/perps-order-entry-page.test.tsx:464 — Updated for default $10 testnet amount prefill from TRADING_DEFAULTS.
  • ui/pages/perps/perps-order-entry-page.test.tsx:871 — Widened mock with as const for user_configured slippage source.
  • artifacts/recipe.json — AC4 now runs after order size + slippage row wait so default Max: 3% is assertable.
  • artifacts/recipe-coverage.md — Added visual/mixed AC coverage matrix.
  • ui/pages/perps/perps-order-entry-page.tsx:682,993-994 — Kept .toFixed(2) for estimated/max slippage display to match mobile PerpsOrderView parity.

Self-Review Fixes (round 2)

  • ui/pages/perps/perps-order-entry-page.test.tsx:895 — Assert slippage submit error via tEn('perpsSlippageExceedsMax', …) with bpsToPercent args instead of a brittle regex.
  • artifacts/evidence-manifest.json — Added manifest linking recipe-run/*.png screenshots to AC1–AC5 visual/mixed proof.

Self-Review Fixes (round 3)

  • ui/components/app/perps/utils/slippageCalculation.ts:4 — Import BASIS_POINTS_DIVISOR from @metamask/perps-controller instead of a local duplicate.
  • ui/hooks/perps/usePerpsMaxSlippage.ts:5 — Derive MaxSlippageSource from PERPS_EVENT_VALUE.MAX_SLIPPAGE_SOURCE to stay coupled to controller analytics literals.
  • ui/hooks/perps/usePerpsMaxSlippage.test.ts — Add unit tests for default fallback, user-configured resolution, controller-read error fallback, and setMaxSlippage persistence.
  • ui/components/app/perps/order-entry/components/order-summary/order-summary.tsx:93 — Add sr-only + aria-live="polite" exceed label using perpsSlippageExceeded for screen-reader users.
  • ui/components/app/perps/order-entry/components/order-summary/order-summary.test.tsx — Assert exceed indicator exposes the screen-reader message.

@abretonc7s abretonc7s changed the title chore: prepare farmslot publication pkg-3a778bd5-mq6a6rs6 feat(perps): [Extension & mobile] As a user, I can visualize and configure slippage Jun 9, 2026
@abretonc7s abretonc7s marked this pull request as ready for review June 9, 2026 08:08
@abretonc7s abretonc7s requested a review from a team as a code owner June 9, 2026 08:08
Comment thread ui/hooks/perps/usePerpsOrderForm.ts Outdated
Comment thread ui/components/app/perps/slippage-config/perps-slippage-config-modal.tsx Outdated
@metamaskbotv2

metamaskbotv2 Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor
Builds ready [8261ab0]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 14 pass · 🟡 11 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 27192535342 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
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/load_new_account: -58%
  • loadNewAccount/total: -58%
  • bridgeUserActions/bridge_load_page: -72%
  • bridgeUserActions/bridge_load_asset_picker: -58%
  • bridgeUserActions/bridge_search_token: -28%
  • bridgeUserActions/total: -42%
  • loadNewAccount/load_new_account: -34%
  • loadNewAccount/total: -34%
  • bridgeUserActions/bridge_load_asset_picker: -34%
  • bridgeUserActions/bridge_search_token: -35%
  • bridgeUserActions/total: -31%

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

  • 🟡 loadNewAccount/FCP: p75 2.0s
  • 🟡 confirmTx/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]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -28%
  • startupStandardHome/load: -30%
  • startupStandardHome/domContentLoaded: -29%
  • startupStandardHome/domInteractive: -42%
  • startupStandardHome/firstPaint: -18%
  • startupStandardHome/backgroundConnect: -26%
  • startupStandardHome/loadScripts: -29%
  • startupStandardHome/setupStore: -21%
  • startupStandardHome/numNetworkReqs: -67%
  • startupPowerUserHome/uiStartup: -35%
  • startupPowerUserHome/load: -18%
  • startupPowerUserHome/domContentLoaded: -18%
  • startupPowerUserHome/domInteractive: -42%
  • startupPowerUserHome/firstPaint: -34%
  • startupPowerUserHome/backgroundConnect: -63%
  • startupPowerUserHome/firstReactRender: +29%
  • startupPowerUserHome/loadScripts: -18%
  • startupPowerUserHome/setupStore: +39%
  • startupPowerUserHome/numNetworkReqs: -72%
  • startupStandardHome/domInteractive: -47%
  • startupStandardHome/backgroundConnect: +21%
  • startupStandardHome/firstReactRender: +39%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/setupStore: -47%
  • startupStandardHome/numNetworkReqs: -39%
  • startupPowerUserHome/uiStartup: -36%
  • startupPowerUserHome/domInteractive: -69%
  • startupPowerUserHome/backgroundConnect: -74%
  • startupPowerUserHome/firstReactRender: +24%
  • startupPowerUserHome/setupStore: -58%
  • startupPowerUserHome/numNetworkReqs: -70%

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

  • 🔴 startupPowerUserHome/INP: p75 528ms
  • 🟡 startupPowerUserHome/LCP: p75 2.6s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -64%
  • onboardingImportWallet/pwFormToMetricsScreen: +546%
  • onboardingImportWallet/metricsToWalletReadyScreen: -26%
  • onboardingImportWallet/doneButtonToHomeScreen: -63%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -21%
  • onboardingImportWallet/total: -46%
  • onboardingNewWallet/srpButtonToPwForm: -76%
  • onboardingNewWallet/createPwToRecoveryScreen: +1128%
  • onboardingNewWallet/skipBackupToMetricsScreen: -65%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -16%
  • assetDetails/assetClickToPriceChart: -57%
  • assetDetails/total: -57%
  • solanaAssetDetails/assetClickToPriceChart: -68%
  • solanaAssetDetails/total: -68%
  • importSrpHome/loginToHomeScreen: -34%
  • importSrpHome/openAccountMenuAfterLogin: -80%
  • importSrpHome/homeAfterImportWithNewWallet: -79%
  • importSrpHome/total: -74%

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

  • 🟡 importSrpHome/INP: p75 224ms
  • 🟡 sendTransactions/FCP: p75 2.0s
  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 1.8s
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: +16%
Bundle size diffs [🚀 Bundle size reduced!]
  • background: -336.22 KiB (-5.82%)
  • ui: 19.39 KiB (0.17%)
  • common: -30.93 KiB (-0.25%)

Recap default order amount when price resolves after mount, and keep the
slippage config modal open until async persist succeeds.

Co-authored-by: Cursor <cursoragent@cursor.com>
@abretonc7s abretonc7s requested a review from a team as a code owner June 9, 2026 09:18
@abretonc7s

Copy link
Copy Markdown
Contributor Author
Run Duration Model Nudges Grade Cost
e87682a6 (pr-complete) ? composer-2 via cursor 0 ungraded $unknown
Worker report

PR #43357 Comment Triage Report

# Author File Triage Action
1 github-actions[bot] (conversation) OUT OF SCOPE CLA signature bot — no code change needed
2 mm-token-exchange-service[bot] (conversation) OUT OF SCOPE CODEOWNERS notification — informational
3 abretonc7s (conversation) OUT OF SCOPE Worker implementation report — not a review request
4 github-actions[bot] (conversation) OUT OF SCOPE Feature flag registry check — pre-existing CI notice
5 abretonc7s (conversation) OUT OF SCOPE Duplicate worker report — not a review request
6 cursor[bot] ui/hooks/perps/usePerpsOrderForm.ts:411 REAL Recap default amount when price resolves after mount
7 cursor[bot] ui/components/app/perps/slippage-config/perps-slippage-config-modal.tsx:148 REAL Await async persist before closing slippage modal

Summary

  • Total comments: 7 (2 REAL, 0 FALSE POSITIVE, 5 OUT OF SCOPE)
  • Fix commit: 033330b505
  • Files changed:
    • ui/hooks/perps/usePerpsOrderForm.ts
    • ui/hooks/perps/usePerpsOrderForm.test.ts
    • ui/components/app/perps/slippage-config/perps-slippage-config-modal.tsx
    • ui/components/app/perps/slippage-config/perps-slippage-config-modal.test.tsx
    • ui/pages/perps/perps-order-entry-page.tsx
    • jest.integration.config.js (main merge artifact in PR diff)
  • Recipe re-validation: SKIPPED — CDP unavailable after refresh-build.sh failed (webpack trezor html bundler error) and browser reopen could not attach extension home target; prior family recipe run artifacts remain under artifacts/recipe-runs/.
  • Merge-main status: clean (merge commit fcba0ebf79)

Comment thread ui/hooks/perps/stream/usePerpsLiveOrderBook.ts
@metamaskbotv2

metamaskbotv2 Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor
Builds ready [033330b]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 13 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 27196363720 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
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/load_new_account: -75%
  • loadNewAccount/total: -75%
  • bridgeUserActions/bridge_load_page: -71%
  • bridgeUserActions/bridge_load_asset_picker: -53%
  • bridgeUserActions/bridge_search_token: -31%
  • bridgeUserActions/total: -41%
  • loadNewAccount/load_new_account: -54%
  • loadNewAccount/total: -54%
  • bridgeUserActions/bridge_load_page: -14%
  • bridgeUserActions/bridge_load_asset_picker: -34%
  • bridgeUserActions/bridge_search_token: -31%
  • bridgeUserActions/total: -16%

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

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

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -23%
  • startupStandardHome/load: -26%
  • startupStandardHome/domContentLoaded: -26%
  • startupStandardHome/domInteractive: -37%
  • startupStandardHome/firstPaint: -23%
  • startupStandardHome/backgroundConnect: -17%
  • startupStandardHome/loadScripts: -26%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -67%
  • startupPowerUserHome/uiStartup: -36%
  • startupPowerUserHome/load: -16%
  • startupPowerUserHome/domContentLoaded: -16%
  • startupPowerUserHome/domInteractive: -39%
  • startupPowerUserHome/firstPaint: -28%
  • startupPowerUserHome/backgroundConnect: -66%
  • startupPowerUserHome/firstReactRender: +25%
  • startupPowerUserHome/loadScripts: -16%
  • startupPowerUserHome/setupStore: +24%
  • startupPowerUserHome/numNetworkReqs: -57%
  • startupStandardHome/uiStartup: +12%
  • startupStandardHome/load: +11%
  • startupStandardHome/domContentLoaded: +11%
  • startupStandardHome/domInteractive: -56%
  • startupStandardHome/backgroundConnect: +25%
  • startupStandardHome/firstReactRender: +50%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/loadScripts: +10%
  • startupStandardHome/setupStore: -47%
  • startupStandardHome/numNetworkReqs: -39%
  • startupPowerUserHome/uiStartup: -35%
  • startupPowerUserHome/domInteractive: -71%
  • startupPowerUserHome/backgroundConnect: -83%
  • startupPowerUserHome/firstReactRender: +29%
  • startupPowerUserHome/setupStore: -21%
  • startupPowerUserHome/numNetworkReqs: -75%

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

  • 🟡 startupPowerUserHome/INP: p75 440ms
  • 🟡 startupPowerUserHome/LCP: p75 2.6s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
assetDetails
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/importWalletToSocialScreen: +12%
  • onboardingImportWallet/srpButtonToSrpForm: -63%
  • onboardingImportWallet/pwFormToMetricsScreen: +557%
  • onboardingImportWallet/metricsToWalletReadyScreen: -25%
  • onboardingImportWallet/doneButtonToHomeScreen: -56%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -21%
  • onboardingImportWallet/total: -48%
  • onboardingNewWallet/srpButtonToPwForm: -82%
  • onboardingNewWallet/createPwToRecoveryScreen: +790%
  • onboardingNewWallet/skipBackupToMetricsScreen: -76%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -22%
  • onboardingNewWallet/doneButtonToAssetList: -29%
  • onboardingNewWallet/total: -24%
  • assetDetails/assetClickToPriceChart: -60%
  • assetDetails/total: -60%
  • solanaAssetDetails/assetClickToPriceChart: -66%
  • solanaAssetDetails/total: -66%
  • importSrpHome/loginToHomeScreen: -30%
  • importSrpHome/openAccountMenuAfterLogin: -77%
  • importSrpHome/homeAfterImportWithNewWallet: -79%
  • importSrpHome/total: -73%

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

  • 🟡 assetDetails/INP: p75 232ms
  • 🟡 importSrpHome/INP: p75 208ms
  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.8s
  • 🟡 sendTransactions/FCP: p75 1.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/domContentLoaded: -22%
  • dappPageLoad/firstPaint: -17%
  • dappPageLoad/firstContentfulPaint: -17%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 233 Bytes (0%)
  • ui: 19.56 KiB (0.18%)
  • common: 1.31 KiB (0.01%)

@metamaskbotv2

metamaskbotv2 Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor
Builds ready [2e7bd1c] [reused from 50af04c]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 19 pass · 🟡 6 warn · 🔴 0 fail)

Baseline (latest main): bfe479c | Date: 6/9/2026 | Pipeline: 27244542247 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
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/load_new_account: -62%
  • loadNewAccount/total: -62%
  • loadNewAccount/inp: -10%
  • confirmTx/longTaskMaxDuration: +12%
  • confirmTx/tbt: +13%
  • confirmTx/inp: +11%
  • confirmTx/lcp: +12%
  • bridgeUserActions/bridge_load_page: -57%
  • bridgeUserActions/bridge_load_asset_picker: -48%
  • bridgeUserActions/bridge_search_token: -22%
  • bridgeUserActions/longTaskCount: +100%
  • bridgeUserActions/longTaskTotalDuration: +79%
  • bridgeUserActions/tbt: +33%
  • bridgeUserActions/total: -34%
  • bridgeUserActions/inp: +22%
  • loadNewAccount/load_new_account: -40%
  • loadNewAccount/total: -40%
  • loadNewAccount/fcp: -56%
  • loadNewAccount/lcp: +1166%
  • confirmTx/confirm_tx: +10%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +10%
  • confirmTx/inp: +11%
  • confirmTx/fcp: -55%
  • confirmTx/lcp: +1283%
  • bridgeUserActions/bridge_load_page: +26%
  • bridgeUserActions/bridge_load_asset_picker: -18%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/inp: +133%
  • bridgeUserActions/lcp: +1145%

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

  • 🟡 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]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -19%
  • startupStandardHome/load: -20%
  • startupStandardHome/domContentLoaded: -20%
  • startupStandardHome/domInteractive: -35%
  • startupStandardHome/backgroundConnect: -11%
  • startupStandardHome/loadScripts: -19%
  • startupStandardHome/setupStore: -20%
  • startupStandardHome/numNetworkReqs: -47%
  • startupStandardHome/inp: -10%
  • startupPowerUserHome/uiStartup: -26%
  • startupPowerUserHome/load: -12%
  • startupPowerUserHome/domContentLoaded: -12%
  • startupPowerUserHome/domInteractive: -33%
  • startupPowerUserHome/firstPaint: -20%
  • startupPowerUserHome/backgroundConnect: -51%
  • startupPowerUserHome/firstReactRender: +12%
  • startupPowerUserHome/loadScripts: -12%
  • startupPowerUserHome/numNetworkReqs: -58%
  • startupStandardHome/domInteractive: -37%
  • startupStandardHome/firstReactRender: +15%
  • startupStandardHome/setupStore: -40%
  • startupStandardHome/numNetworkReqs: -22%
  • startupStandardHome/inp: -33%
  • startupPowerUserHome/uiStartup: -31%
  • startupPowerUserHome/domInteractive: -65%
  • startupPowerUserHome/backgroundConnect: -76%
  • startupPowerUserHome/setupStore: -18%
  • startupPowerUserHome/numNetworkReqs: -65%
  • startupPowerUserHome/fcp: -38%
  • startupPowerUserHome/lcp: -13%

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

  • 🔴 startupPowerUserHome/INP: p75 536ms
  • 🟡 startupPowerUserHome/LCP: p75 2.6s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
sendTransactions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -51%
  • onboardingImportWallet/pwFormToMetricsScreen: +130%
  • onboardingImportWallet/metricsToWalletReadyScreen: -26%
  • onboardingImportWallet/doneButtonToHomeScreen: -73%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -71%
  • onboardingImportWallet/longTaskCount: -80%
  • onboardingImportWallet/longTaskTotalDuration: -93%
  • onboardingImportWallet/longTaskMaxDuration: -91%
  • onboardingImportWallet/tbt: -99%
  • onboardingImportWallet/total: -70%
  • onboardingNewWallet/srpButtonToPwForm: -68%
  • onboardingNewWallet/createPwToRecoveryScreen: +155%
  • onboardingNewWallet/skipBackupToMetricsScreen: -55%
  • onboardingNewWallet/doneButtonToAssetList: -16%
  • onboardingNewWallet/longTaskCount: -50%
  • onboardingNewWallet/longTaskTotalDuration: -53%
  • onboardingNewWallet/longTaskMaxDuration: -27%
  • onboardingNewWallet/tbt: -56%
  • onboardingNewWallet/total: -14%
  • assetDetails/assetClickToPriceChart: -37%
  • assetDetails/tbt: +19%
  • assetDetails/total: -37%
  • assetDetails/inp: +14%
  • assetDetails/fcp: +27%
  • solanaAssetDetails/assetClickToPriceChart: -62%
  • solanaAssetDetails/total: -62%
  • solanaAssetDetails/inp: +15%
  • solanaAssetDetails/fcp: +22%
  • importSrpHome/loginToHomeScreen: -36%
  • importSrpHome/homeAfterImportWithNewWallet: -70%
  • importSrpHome/longTaskCount: -31%
  • importSrpHome/longTaskTotalDuration: -42%
  • importSrpHome/longTaskMaxDuration: -26%
  • importSrpHome/tbt: -48%
  • importSrpHome/total: -63%
  • importSrpHome/inp: -45%
  • importSrpHome/lcp: -16%
  • importSrpHome/cls: -74%
  • sendTransactions/openSendPageFromHome: +19%
  • sendTransactions/selectTokenToSendFormLoaded: -41%
  • sendTransactions/reviewTransactionToConfirmationPage: +174%
  • sendTransactions/longTaskCount: +100%
  • sendTransactions/longTaskTotalDuration: +70%
  • sendTransactions/tbt: +42%
  • sendTransactions/total: +172%
  • sendTransactions/inp: -37%

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

  • 🟡 sendTransactions/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.8s
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: +11%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 233 Bytes (0%)
  • ui: 20.26 KiB (0.18%)
  • common: 1.37 KiB (0.01%)

…ps-slippage-config

# Conflicts:
#	jest.integration.config.js
#	test/mocks/metamask-perps-controller.js
#	ui/pages/perps/perps-layout.test.tsx
#	ui/pages/perps/perps-order-entry-page.tsx
@abretonc7s

Copy link
Copy Markdown
Contributor Author

farmslot run summary

Run Duration Model Nudges Grade Cost
efa5e8e7 ? opus / claude 0 ungraded $unknown
Worker report

PR #43357 Comment Triage Report

PR: feat(perps): add configurable slippage controls
Branch: TAT-1043-feat-add-perps-slippage-config

Triage

# Author File:Line Triage Action
1 cursor[bot] ui/hooks/perps/usePerpsOrderForm.ts:411 REAL (resolved prior) Default amount recap — already fixed, thread resolved
2 cursor[bot] ui/components/app/perps/slippage-config/perps-slippage-config-modal.tsx:148 REAL (resolved prior) Modal closes before persist — already fixed, thread resolved
3 cursor[bot] ui/hooks/perps/stream/usePerpsLiveOrderBook.ts:85 REAL (resolved prior) Slippage hook kills order book — already fixed, thread resolved
4 cursor[bot] ui/pages/perps/perps-order-entry-page.tsx:702 REAL (resolved prior) Max slippage defaults while loading — already fixed, thread resolved
5 cursor[bot] ui/hooks/perps/usePerpsOrderForm.ts:421 REAL (resolved prior) Price load resets user amount — already fixed, thread resolved
6 cursor[bot] ui/hooks/perps/usePerpsEstimatedSlippage.ts:108 REAL (resolved prior) Throttled book stale after symbol — already fixed, thread resolved
7 cursor[bot] ui/pages/perps/perps-order-entry-page.tsx:1031 REAL (resolved prior) Stale slippage submit error — already fixed, thread resolved
8 cursor[bot] ui/pages/perps/perps-order-entry-page.tsx:345 REAL (resolved prior) Order book depth not requested — already fixed, thread resolved
9 cursor[bot] ui/pages/perps/perps-order-entry-page.tsx:702 REAL (resolved prior) Stale slippage ignores readiness — already fixed, thread resolved
10 cursor[bot] ui/pages/perps/perps-order-entry-page.tsx:1773 REAL (resolved prior) Clears slippage error too broadly — already fixed, thread resolved
11 cursor[bot] ui/pages/perps/perps-order-entry-page.tsx:713 REAL (resolved prior) Pending slippage max shows incorrectly — already fixed, thread resolved
12 cursor[bot] ui/pages/perps/perps-order-entry-page.tsx:680 REAL (resolved prior) Slippage direction desyncs from form — already fixed, thread resolved
13 cursor[bot] ui/hooks/perps/usePerpsOrderForm.ts:421 REAL (resolved prior) Prefill locks after low balance — already fixed, thread resolved
14 cursor[bot] ui/pages/perps/perps-order-entry-page.tsx:754 REAL (resolved prior) Submit before slippage estimate ready — already fixed, thread resolved
15 cursor[bot] ui/pages/perps/perps-order-entry-page.tsx:1814 REAL (resolved prior) Modal saves before preference loads — already fixed, thread resolved
16 cursor[bot] ui/hooks/perps/usePerpsOrderForm.ts:417 REAL (resolved prior) Leverage ignored in amount recap — already fixed, thread resolved

Summary

  • Inline review comments: 16, all from cursor[bot]. All 16 review threads are already isResolved=true — addressed by prior family runs (latest fix commit 50af04c4d7 on this branch). No new code change required this run.
  • Conversation comments: 11 from abretonc7s, all automated farmslot run summaries — informational, not actionable review feedback.
  • REQUEST_CHANGES reviews: none.
  • No unresolved actionable review comments remain.

This run's primary contribution

Merged latest origin/main (748e345458) into the branch and resolved 4 merge conflicts:

  • jest.integration.config.js — comment-only conflict; kept main's descriptive stub comment.
  • test/mocks/metamask-perps-controller.js — unioned both export sets (slippage config exports + market-category exports).
  • ui/pages/perps/perps-layout.test.tsx — kept branch's ...jest.requireActual mock pattern (resolves through moduleNameMapper to stub, which now exports MARKET_CATEGORIES).
  • ui/pages/perps/perps-order-entry-page.tsx — unioned imports (slippage-config + compliance gate).

Validation (post-merge: branch + origin/main)

  • lint:changed: PASS (no uncommitted changed files)
  • verify-locales: PASS (No invalid entries!)
  • circular-deps:check: PASS
  • Unit tests (conflict-touched files): PASS — perps-layout.test.tsx + perps-order-entry-page.test.tsx (85), usePerpsOrderForm.test.ts + perps-market-detail-page.test.tsx (120)
  • Coverage (changed files): VERDICT PASS — new code 95% (193/203 lines); warnings pre-existing only
  • Recipe re-validation: PASS — inherited recipe ran green against merged state (extension reloaded via CDP first). artifacts/recipe-run/summary.json = pass
  • Merge-main status: conflicts-resolved (4 files)

Finalization

  • Total comments: 16 inline (16 REAL — all already resolved in prior family runs, 0 FALSE POSITIVE, 0 OUT OF SCOPE) + 11 conversation (automated farmslot summaries, non-actionable).
  • Review-fix commit: none required this run (zero unresolved comments).
  • Pushed commit (merge): 93f1ff5ef1Merge remote-tracking branch 'origin/main' into TAT-1043-feat-add-perps-slippage-config.
  • Files changed this run (conflict resolutions only): jest.integration.config.js, test/mocks/metamask-perps-controller.js, ui/pages/perps/perps-layout.test.tsx, ui/pages/perps/perps-order-entry-page.tsx.
  • Recipe re-validation: PASS.
  • CI parity: lint:changed / verify-locales / circular-deps all PASS; unit tests PASS; coverage VERDICT PASS.

@metamaskbotv2

metamaskbotv2 Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor
Builds ready [93f1ff5]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 18 pass · 🟡 6 warn · 🔴 1 fail)

Baseline (latest main): 9f87238 | Date: 6/11/2026 | Pipeline: 27317920730 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]

Regressions (🔴 1 failure)

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
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/load_new_account: -17%
  • loadNewAccount/total: -17%
  • loadNewAccount/lcp: -10%
  • bridgeUserActions/bridge_load_asset_picker: +13%
  • bridgeUserActions/longTaskCount: -29%
  • bridgeUserActions/longTaskTotalDuration: -26%
  • bridgeUserActions/tbt: -29%
  • bridgeUserActions/inp: +27%
  • loadNewAccount/load_new_account: +42%
  • loadNewAccount/total: +42%
  • loadNewAccount/inp: -17%
  • loadNewAccount/fcp: -52%
  • loadNewAccount/lcp: +1063%
  • confirmTx/confirm_tx: +13%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +13%
  • confirmTx/inp: -13%
  • confirmTx/lcp: +1210%
  • bridgeUserActions/bridge_load_page: +157%
  • bridgeUserActions/bridge_load_asset_picker: +43%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +17%
  • bridgeUserActions/inp: -24%
  • bridgeUserActions/fcp: -49%
  • bridgeUserActions/lcp: +1181%
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/inp: +11%
  • startupPowerUserHome/inp: +10%
  • startupStandardHome/domInteractive: +20%
  • startupStandardHome/firstReactRender: -10%
  • startupStandardHome/setupStore: -11%
  • startupStandardHome/inp: -38%
  • startupStandardHome/fcp: +11%
  • startupPowerUserHome/backgroundConnect: -27%
  • startupPowerUserHome/setupStore: -39%

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

  • 🔴 startupPowerUserHome/INP: p75 584ms
  • 🟡 startupPowerUserHome/LCP: p75 2.6s
User Journey Benchmarks · Samples: 5 · mock API 🔴 1
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]
🔴 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -21%
  • onboardingImportWallet/confirmSrpToPwForm: -25%
  • onboardingImportWallet/pwFormToMetricsScreen: -25%
  • onboardingImportWallet/metricsToWalletReadyScreen: -27%
  • onboardingImportWallet/doneButtonToHomeScreen: -89%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -99%
  • onboardingImportWallet/longTaskCount: -79%
  • onboardingImportWallet/longTaskTotalDuration: -95%
  • onboardingImportWallet/longTaskMaxDuration: -93%
  • onboardingImportWallet/tbt: -100%
  • onboardingImportWallet/total: -88%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +19%
  • onboardingNewWallet/doneButtonToAssetList: -31%
  • onboardingNewWallet/longTaskCount: -55%
  • onboardingNewWallet/longTaskTotalDuration: -52%
  • onboardingNewWallet/longTaskMaxDuration: -17%
  • onboardingNewWallet/tbt: -51%
  • onboardingNewWallet/total: -28%
  • assetDetails/assetClickToPriceChart: -35%
  • assetDetails/longTaskCount: -100%
  • assetDetails/longTaskTotalDuration: -100%
  • assetDetails/longTaskMaxDuration: -100%
  • assetDetails/total: -35%
  • assetDetails/inp: -12%
  • assetDetails/cls: -94%
  • solanaAssetDetails/assetClickToPriceChart: -47%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: -47%
  • solanaAssetDetails/cls: -84%
  • importSrpHome/loginToHomeScreen: -10%
  • importSrpHome/openAccountMenuAfterLogin: +38%
  • importSrpHome/homeAfterImportWithNewWallet: -34%
  • importSrpHome/longTaskCount: -24%
  • importSrpHome/longTaskTotalDuration: -24%
  • importSrpHome/tbt: -27%
  • importSrpHome/total: -27%
  • importSrpHome/inp: -34%
  • importSrpHome/cls: -55%
  • sendTransactions/openSendPageFromHome: +11%
  • sendTransactions/selectTokenToSendFormLoaded: +38%
  • sendTransactions/inp: -43%
  • sendTransactions/cls: -86%

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

  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 1.8s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 233 Bytes (0%)
  • ui: 21.22 KiB (0.19%)
  • common: 1.42 KiB (0.01%)

@metamaskbotv2

metamaskbotv2 Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor
Builds ready [eef4891] [reused from 93f1ff5]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 18 pass · 🟡 6 warn · 🔴 1 fail)

Baseline (latest main): 9f87238 | Date: 6/11/2026 | Pipeline: 27320303318 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]

Regressions (🔴 1 failure)

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
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/load_new_account: -17%
  • loadNewAccount/total: -17%
  • loadNewAccount/lcp: -10%
  • bridgeUserActions/bridge_load_asset_picker: +13%
  • bridgeUserActions/longTaskCount: -29%
  • bridgeUserActions/longTaskTotalDuration: -26%
  • bridgeUserActions/tbt: -29%
  • bridgeUserActions/inp: +27%
  • loadNewAccount/load_new_account: +42%
  • loadNewAccount/total: +42%
  • loadNewAccount/inp: -17%
  • loadNewAccount/fcp: -52%
  • loadNewAccount/lcp: +1063%
  • confirmTx/confirm_tx: +13%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +13%
  • confirmTx/inp: -13%
  • confirmTx/lcp: +1210%
  • bridgeUserActions/bridge_load_page: +157%
  • bridgeUserActions/bridge_load_asset_picker: +43%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +17%
  • bridgeUserActions/inp: -24%
  • bridgeUserActions/fcp: -49%
  • bridgeUserActions/lcp: +1181%
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/inp: +11%
  • startupPowerUserHome/inp: +10%
  • startupStandardHome/domInteractive: +20%
  • startupStandardHome/firstReactRender: -10%
  • startupStandardHome/setupStore: -11%
  • startupStandardHome/inp: -38%
  • startupStandardHome/fcp: +11%
  • startupPowerUserHome/backgroundConnect: -27%
  • startupPowerUserHome/setupStore: -39%

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

  • 🔴 startupPowerUserHome/INP: p75 584ms
  • 🟡 startupPowerUserHome/LCP: p75 2.6s
User Journey Benchmarks · Samples: 5 · mock API 🔴 1
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]
🔴 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -21%
  • onboardingImportWallet/confirmSrpToPwForm: -25%
  • onboardingImportWallet/pwFormToMetricsScreen: -25%
  • onboardingImportWallet/metricsToWalletReadyScreen: -27%
  • onboardingImportWallet/doneButtonToHomeScreen: -89%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -99%
  • onboardingImportWallet/longTaskCount: -79%
  • onboardingImportWallet/longTaskTotalDuration: -95%
  • onboardingImportWallet/longTaskMaxDuration: -93%
  • onboardingImportWallet/tbt: -100%
  • onboardingImportWallet/total: -88%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +19%
  • onboardingNewWallet/doneButtonToAssetList: -31%
  • onboardingNewWallet/longTaskCount: -55%
  • onboardingNewWallet/longTaskTotalDuration: -52%
  • onboardingNewWallet/longTaskMaxDuration: -17%
  • onboardingNewWallet/tbt: -51%
  • onboardingNewWallet/total: -28%
  • assetDetails/assetClickToPriceChart: -35%
  • assetDetails/longTaskCount: -100%
  • assetDetails/longTaskTotalDuration: -100%
  • assetDetails/longTaskMaxDuration: -100%
  • assetDetails/total: -35%
  • assetDetails/inp: -12%
  • assetDetails/cls: -94%
  • solanaAssetDetails/assetClickToPriceChart: -47%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: -47%
  • solanaAssetDetails/cls: -84%
  • importSrpHome/loginToHomeScreen: -10%
  • importSrpHome/openAccountMenuAfterLogin: +38%
  • importSrpHome/homeAfterImportWithNewWallet: -34%
  • importSrpHome/longTaskCount: -24%
  • importSrpHome/longTaskTotalDuration: -24%
  • importSrpHome/tbt: -27%
  • importSrpHome/total: -27%
  • importSrpHome/inp: -34%
  • importSrpHome/cls: -55%
  • sendTransactions/openSendPageFromHome: +11%
  • sendTransactions/selectTokenToSendFormLoaded: +38%
  • sendTransactions/inp: -43%
  • sendTransactions/cls: -86%

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

  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 1.8s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 233 Bytes (0%)
  • ui: 21.22 KiB (0.19%)
  • common: 1.42 KiB (0.01%)

Registering perpsSlippageConfig2 (enabled in prod) auto-seeded it into the
shared perps e2e fixture, which gates market-order submit on a live order-book
slippage estimate the lifecycle WS mock never feeds. submit-order-button stayed
disabled, failing perps-position-lifecycle across all e2e shards. Override the
flag off in the fixture (matching the confirmations_pay_post_quote pattern); the
registry entry stays prod-on and the feature keeps unit + recipe coverage.
Comment thread test/e2e/tests/perps/perps-fixture-config.ts
@abretonc7s

Copy link
Copy Markdown
Contributor Author
Run Duration Model Nudges Grade Cost
d8713f0d ? opus / claude 0 ungraded $unknown
Worker report

PR #43357 Comment Triage Report

PR: feat(perps): add configurable slippage controls
Branch: TAT-1043-feat-add-perps-slippage-config

Triage table

# Author File Triage Action
1 cursor[bot] test/e2e/tests/perps/perps-fixture-config.ts:101 REAL Add perpsSlippageConfig2 override to mockEligibleFeatureFlags HTTP mock so the background /v1/flags fetch returns enabled:false, matching the seeded controller state.

Notes

  • 16 other cursor[bot] inline review threads are already RESOLVED by prior family runs (GraphQL isResolved: true). No new action needed this pass. Per SINGLE-PASS rule, not re-triaged.
  • Conversation comments: all non-actionable — CI bots (CLA signature, codeowners, metamaskbotv2 build-ready) and abretonc7s farmslot run-summary reports (automated, not human review feedback). No code changes required.
  • No CHANGES_REQUESTED reviews.

Detail — Comment #1 (REAL)

E2E slippage flag HTTP mismatch (Medium Severity)

Disabling perpsSlippageConfig2 only in PERPS_ELIGIBLE_REMOTE_FEATURE_FLAGS seeds the fixture with slippage off, but mockEligibleFeatureFlags still returns the production default (enabled: true) for that flag. Background updateRemoteFeatureFlags on load/UI open can overwrite seeded state, re-enabling slippage gating and leaving submit disabled without order-book estimates.

Root cause: mockEligibleFeatureFlags (line 260) builds the /v1/flags response from getProductionRemoteFlagApiResponseWithOverrides() without including perpsSlippageConfig2, so production default (enabled:true) leaks through and the background controller overwrites the seeded enabled:false.

Fix: add perpsSlippageConfig2: PERPS_ELIGIBLE_REMOTE_FEATURE_FLAGS.perpsSlippageConfig2 to the overrides map in mockEligibleFeatureFlags, mirroring the seed exactly.

Validation

  • Merge main (step 3): clean — no conflicts (origin/main 1ab4918 merged).
  • CI parity gate: lint:changed ✓, verify-locales ✓, circular-deps ✓.
  • Unit tests (first 5 changed test files): all pass (73/137/24/3/11, 0 failures).
  • Coverage: VERDICT PASS — new code 95% (210/220). Warnings pre-existing only.
  • Recipe re-validation: PASS (CDP health PASS, recipe-run/summary.json status pass). Re-validated post-merge branch state. Note: the only code change this pass is in test/e2e/ (not bundled into dist/chrome), so the live extension behaviour is identical — recipe confirms the merge from main did not regress.

Summary

  • Total comments triaged: 1 actionable (1 REAL, 0 FALSE POSITIVE, 0 OUT OF SCOPE).
  • 16 other cursor[bot] inline threads already RESOLVED by prior runs; conversation comments all non-actionable (CI bots + farmslot run summaries).
  • Commit SHA: 7720371fa8
  • Files changed: test/e2e/tests/perps/perps-fixture-config.ts (+6)
  • Recipe re-validation: PASS
  • Merge-main status (step 3): clean (no conflicts)
  • Replied to comment 3393346780 and resolved its thread.

@metamaskbotv2

metamaskbotv2 Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor
Builds ready [7720371]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 18 pass · 🟡 7 warn · 🔴 0 fail)

Baseline (latest main): 901cd5d | Date: 6/11/2026 | Pipeline: 27327802977 | Baseline logs

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/load_new_account: -14%
  • loadNewAccount/total: -14%
  • loadNewAccount/inp: -32%
  • bridgeUserActions/bridge_load_asset_picker: +20%
  • bridgeUserActions/longTaskCount: -29%
  • bridgeUserActions/longTaskMaxDuration: +13%
  • bridgeUserActions/tbt: +31%
  • bridgeUserActions/inp: +29%
  • loadNewAccount/load_new_account: +299%
  • loadNewAccount/total: +299%
  • loadNewAccount/inp: +1052%
  • loadNewAccount/fcp: -20%
  • loadNewAccount/lcp: +888%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/inp: +12%
  • confirmTx/fcp: -64%
  • confirmTx/lcp: +885%
  • bridgeUserActions/bridge_load_page: +207%
  • bridgeUserActions/bridge_load_asset_picker: +35%
  • bridgeUserActions/bridge_search_token: +19%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +48%
  • bridgeUserActions/inp: -39%
  • bridgeUserActions/fcp: -14%
  • bridgeUserActions/lcp: +892%

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

  • 🔴 loadNewAccount/INP: p75 1.2s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupPowerUserHome/numNetworkReqs: -11%
  • startupStandardHome/inp: -38%
  • startupPowerUserHome/domInteractive: -17%
  • startupPowerUserHome/backgroundConnect: +36%
  • startupPowerUserHome/setupStore: +11%
  • startupPowerUserHome/fcp: -19%

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

  • 🔴 startupPowerUserHome/INP: p75 512ms
  • 🟡 startupPowerUserHome/LCP: p75 2.8s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
importSrpHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
sendTransactions
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/doneButtonToHomeScreen: -91%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -98%
  • onboardingImportWallet/longTaskCount: -76%
  • onboardingImportWallet/longTaskTotalDuration: -93%
  • onboardingImportWallet/longTaskMaxDuration: -90%
  • onboardingImportWallet/tbt: -99%
  • onboardingImportWallet/total: -90%
  • onboardingNewWallet/skipBackupToMetricsScreen: +18%
  • onboardingNewWallet/doneButtonToAssetList: -12%
  • onboardingNewWallet/longTaskCount: -44%
  • onboardingNewWallet/longTaskTotalDuration: -35%
  • onboardingNewWallet/longTaskMaxDuration: +25%
  • onboardingNewWallet/total: -10%
  • assetDetails/assetClickToPriceChart: -32%
  • assetDetails/longTaskCount: -100%
  • assetDetails/longTaskTotalDuration: -100%
  • assetDetails/longTaskMaxDuration: -100%
  • assetDetails/total: -32%
  • assetDetails/inp: -27%
  • assetDetails/cls: -94%
  • solanaAssetDetails/assetClickToPriceChart: -42%
  • solanaAssetDetails/total: -42%
  • solanaAssetDetails/inp: -30%
  • solanaAssetDetails/cls: -89%
  • importSrpHome/loginToHomeScreen: -18%
  • importSrpHome/openAccountMenuAfterLogin: +41%
  • importSrpHome/homeAfterImportWithNewWallet: -38%
  • importSrpHome/longTaskCount: -25%
  • importSrpHome/longTaskTotalDuration: -24%
  • importSrpHome/longTaskMaxDuration: -14%
  • importSrpHome/tbt: -37%
  • importSrpHome/total: -32%
  • importSrpHome/inp: -30%
  • importSrpHome/cls: -40%
  • sendTransactions/openSendPageFromHome: -25%
  • sendTransactions/selectTokenToSendFormLoaded: +15%
  • sendTransactions/reviewTransactionToConfirmationPage: +14%
  • sendTransactions/longTaskCount: +11%
  • sendTransactions/longTaskTotalDuration: +14%
  • sendTransactions/longTaskMaxDuration: -11%
  • sendTransactions/tbt: +22%
  • sendTransactions/total: +15%
  • sendTransactions/inp: -30%
  • sendTransactions/fcp: +16%
  • sendTransactions/lcp: -11%
  • sendTransactions/cls: -90%

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

  • 🟡 sendTransactions/FCP: p75 2.0s
  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 sendTransactions/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 2.1 KiB (0.03%)
  • ui: 20.25 KiB (0.18%)
  • common: 1.38 KiB (0.01%)

@abretonc7s

Copy link
Copy Markdown
Contributor Author

Farmslot run summary

Run Duration Model Nudges Grade Cost
3c10a705 (pr-complete) ? claude / opus 0 ungraded (-) $unknown
Worker report

PR #43357 Comment Triage Report

PR: feat(perps): add configurable slippage controls
Branch: TAT-1043-feat-add-perps-slippage-config
Run: 43357-0611-143949

Summary

  • Inline review comments fetched: 17 (all cursor[bot] / cursor)
  • Inline review threads already RESOLVED by prior family runs: 17 / 17
  • Actionable (unresolved) inline comments this run: 0
  • Conversation comments: 13 — all abretonc7s farmslot run summaries
  • REQUEST_CHANGES reviews: 0 (all reviews are COMMENTED state)

Conclusion: Every cursor[bot] finding on this PR was already fixed and its thread resolved by earlier worker runs in the family. No new code fix was required for review feedback.

The only outstanding merge-readiness change was a prettier compliance fix in test/e2e/tests/perps/perps-fixture-config.ts, committed alongside the origin/main merge.

Merge-readiness actions this run

  • Merged origin/main cleanly.
  • Committed prettier fix for perps-fixture-config.ts line wrap.

Final totals

  • Total comments triaged: 30
    • 17 real — already fixed/resolved by prior family runs
    • 0 false positive
    • 13 out of scope — automated farmslot run summaries
  • Fix commit SHA: 5981254f75fix: address review comments on PR #43357
  • Merge commit: 9ca75f2125Merge remote-tracking branch 'origin/main'
  • Files changed this run: test/e2e/tests/perps/perps-fixture-config.ts + main merge changes
  • Recipe re-validation: PASS — 30/30, family-inherited, post-merge
  • Merge-main status: clean
  • Reviewer-driven fix this run: none

Validation

  • CI parity gate: PASS
    • lint:changed
    • verify-locales
    • circular-deps:check
  • Affected unit tests: PASS — 5 suites / 257 tests
  • Coverage analysis: PASS — new code 94% (242/258 lines)
  • Recipe re-validation: PASS — 30/30 steps, CDP healthy

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

Approve. The branch adds configurable Perps max slippage with controller backed persistence, live order-book estimation, feature-flag gating, and focused unit coverage. The implementation keeps the new behavior scoped to market order entry when the feature flag is enabled, and the controller bridge forwards the new order-book parameters explicitly.

@abretonc7s abretonc7s added this pull request to the merge queue Jun 15, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.37.0 Issue or pull request that will be included in release 13.37.0 risk:medium size-XL team-perps Perps team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants