Skip to content

fix(perps): navigation issue when you tap "add funds" in order screen#43367

Open
abretonc7s wants to merge 4 commits into
mainfrom
TAT-3131-fix-fix-add-funds-nav
Open

fix(perps): navigation issue when you tap "add funds" in order screen#43367
abretonc7s wants to merge 4 commits into
mainfrom
TAT-3131-fix-fix-add-funds-nav

Conversation

@abretonc7s

@abretonc7s abretonc7s commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Description

Tapping Add Funds on the Perps order-entry screen (/perps/trade/:symbol) and returning corrupted the navigation history: the deposit confirmation's back action pushed a new history entry while the entry navigation replaced one, leaving a phantom confirm-transaction entry on the stack. As a result, back navigation from the order screen required two taps (Bug A) and, after visiting Add Funds, executing a trade left the user stuck on the order screen instead of returning to market detail (Bug B).

The fix makes the wallet-initiated confirmation back action return with { replace: true } in useConfirmActions, symmetric with the confirm-context auto-exit. The transient deposit/withdraw/musd-claim confirmation no longer lingers in history, so one tap of back from the order screen returns to the Perps market detail screen and post-trade navigate(-1) reaches market detail.

TAT-3272 — Add Funds did nothing when the Arbitrum network was not added. Hyperliquid deposits settle USDC on Arbitrum, so PerpsController.depositWithConfirmation resolves the deposit transaction against the Arbitrum network client and throws Invalid chain ID "0xa4b1" ("add the network first") when that network is absent from the wallet. The order-entry deposit hook swallowed that error (console.error only), so tapping the Available to trade + icon appeared to do nothing. The extension never ported mobile's usePerpsNetworkManagement.ensureArbitrumNetworkExists, which adds the Arbitrum network before depositing. This PR adds the extension equivalent and calls it from usePerpsDepositConfirmation before creating the deposit transaction, so tapping + adds Arbitrum (from the curated featured-network list) when missing and opens the deposit confirmation.

Changelog

CHANGELOG entry: Fixed Perps order screen back navigation after visiting Add Funds (single back tap now returns to the market detail screen, and trades no longer leave the user on the order screen).

CHANGELOG entry: Fixed Perps "Add Funds" doing nothing when the Arbitrum network was not yet added to the wallet (the deposit network is now added automatically).

Related issues

Fixes: TAT-3131

Fixes: TAT-3272

Manual testing steps

  1. Open the Perps tab and select a market (e.g. ETH) to open market detail (/perps/market/ETH).
  2. Tap Trade to open the order entry screen (/perps/trade/ETH).
  3. Tap the Available to trade Add Funds (+) icon — the deposit screen opens.
  4. Tap the deposit screen back arrow to return to the order entry screen.
  5. Tap the order-entry back arrow once → you land on the market detail screen (no double-tap).
  6. After visiting Add Funds, fill an order and tap Execute → you are navigated to the market detail screen, not left on the order screen.

TAT-3272 (Add Funds with the Arbitrum network not yet added):

  1. Use a wallet that does not have the Arbitrum One network added.
  2. Open the Perps tab → select a market → tap Trade.
  3. Tap the Available to trade + icon.
  4. Verify the Arbitrum One network is added automatically and the deposit confirmation screen opens (previously nothing happened).

Screenshots/Recordings

End-to-end proof of the Add Funds flow: tapping the Available-to-trade + icon opens the deposit confirmation (TAT-3272, Arbitrum network added automatically), and after returning a single tap of the order-entry back button reaches the market detail screen (TAT-3131, no double-tap).

Add Funds opens the deposit confirmation (TAT-3272)
Tapping the + icon now adds the Arbitrum network and opens the deposit screen; previously nothing happened.
Add Funds opens the deposit confirmation (TAT-3272)
One back tap from the order screen returns to market detail (TAT-3131)
After visiting Add Funds and returning, a single tap of the back button reaches market detail (no phantom history entry, no double-tap).
One back tap from the order screen returns to market detail (TAT-3131)

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.

Validation Recipe

recipe.json
{
  "schema_version": 1,
  "title": "TAT-3131 + TAT-3272 — Add Funds deposit opens and one back tap returns to market detail",
  "description": "End-to-end proof of the original bug: from the Perps order-entry screen, tapping the Available-to-trade Add Funds (+) icon opens the deposit confirmation (TAT-3272: the Arbitrum network is added automatically), and after returning from the deposit screen a SINGLE tap of the order-entry back button returns to the Perps market detail screen (TAT-3131: no phantom history entry, no double-tap). Reverting either fix makes this recipe FAIL: revert TAT-3272 and the deposit never opens (ac1-wait-deposit times out); revert TAT-3131 and one back tap lands on the phantom confirmation instead of market detail (ac1-wait-market-detail times out).",
  "pre_conditions": {
    "account": "any unlocked fixture account on a Perps-enabled wallet",
    "network": "Arbitrum may be absent; TAT-3272 adds it on Add Funds"
  },
  "validate": {
    "workflow": {
      "entry": "setup-unlock",
      "nodes": {
        "setup-unlock": {
          "action": "metamask.wallet.ensure_unlocked",
          "next": "setup-nav-perps",
          "intent": "Ensure the wallet is unlocked",
          "flow": "setup"
        },
        "setup-nav-perps": {
          "action": "ui.navigate",
          "hash": "#/?tab=perps",
          "next": "setup-nav-market",
          "intent": "Open the Perps tab (pushes a history entry)",
          "flow": "setup"
        },
        "setup-nav-market": {
          "action": "ui.navigate",
          "hash": "#/perps/market/BTC",
          "next": "setup-wait-market",
          "intent": "Open the BTC market detail screen (pushes a history entry)",
          "flow": "setup"
        },
        "setup-wait-market": {
          "action": "ui.wait_for",
          "selector": "[data-testid=perps-market-detail-page]",
          "visible": true,
          "timeout_ms": 15000,
          "next": "setup-nav-order",
          "intent": "Wait for market detail before opening order entry",
          "flow": "setup"
        },
        "setup-nav-order": {
          "action": "ui.navigate",
          "hash": "#/perps/trade/BTC?direction=long&mode=new",
          "next": "ac1-wait-order-entry",
          "intent": "Open the order entry screen (pushes a history entry on top of market detail)",
          "flow": "setup"
        },
        "ac1-wait-order-entry": {
          "action": "ui.wait_for",
          "selector": "[data-testid=perps-order-entry-page]",
          "visible": true,
          "timeout_ms": 15000,
          "next": "ac1-press-add-funds",
          "intent": "AC1: order entry screen is rendered with the Add Funds entry point",
          "flow": "ac1"
        },
        "ac1-press-add-funds": {
          "action": "ui.press",
          "selector": "[data-testid=amount-input-add-funds]",
          "next": "ac1-wait-deposit",
          "intent": "AC1/TAT-3272: tap the Available-to-trade Add Funds (+) icon",
          "flow": "ac1"
        },
        "ac1-wait-deposit": {
          "action": "ui.wait_for",
          "selector": "[data-testid=wallet-initiated-header-back-button]",
          "visible": true,
          "timeout_ms": 15000,
          "next": "ac1-screenshot-deposit",
          "intent": "TAT-3272: the deposit confirmation opens (Arbitrum network added automatically). Before the fix this never appeared.",
          "flow": "ac1"
        },
        "ac1-screenshot-deposit": {
          "action": "ui.screenshot",

          "timeout_ms": 10000,
          "note": "TAT-3272: deposit confirmation screen opened after tapping Add Funds",
          "claims": {
            "must_show": ["deposit / Add Funds confirmation screen", "back arrow"],
            "must_not_show": ["unchanged order entry screen"]
          },
          "next": "ac1-press-deposit-back",
          "intent": "Capture the opened deposit confirmation",
          "flow": "ac1"
        },
        "ac1-press-deposit-back": {
          "action": "ui.press",
          "selector": "[data-testid=wallet-initiated-header-back-button]",
          "next": "ac1-wait-back-order-entry",
          "intent": "Return from the deposit screen to the order entry screen",
          "flow": "ac1"
        },
        "ac1-wait-back-order-entry": {
          "action": "ui.wait_for",
          "selector": "[data-testid=perps-order-entry-page]",
          "visible": true,
          "timeout_ms": 15000,
          "next": "ac1-press-order-back",
          "intent": "Back on the order entry screen after the deposit round-trip",
          "flow": "ac1"
        },
        "ac1-press-order-back": {
          "action": "ui.press",
          "selector": "[data-testid=perps-order-entry-back-button]",
          "next": "ac1-wait-market-detail",
          "intent": "AC1/TAT-3131: tap the order-entry back button ONCE",
          "flow": "ac1"
        },
        "ac1-wait-market-detail": {
          "action": "ui.wait_for",
          "selector": "[data-testid=perps-market-detail-page]",
          "visible": true,
          "timeout_ms": 15000,
          "next": "ac1-assert-market-detail-control",
          "intent": "TAT-3131: a SINGLE back tap returns to the market detail screen (no phantom, no double-tap). Before the fix one tap landed on the phantom confirmation.",
          "flow": "ac1"
        },
        "ac1-assert-market-detail-control": {
          "action": "ui.wait_for",
          "selector": "[data-testid=perps-market-detail-back-button]",
          "visible": true,
          "timeout_ms": 8000,
          "next": "ac1-screenshot-market-detail",
          "intent": "Confirm a market-detail-specific control is present after the single back tap",
          "flow": "ac1"
        },
        "ac1-screenshot-market-detail": {
          "action": "ui.screenshot",

          "timeout_ms": 10000,
          "note": "TAT-3131: one tap of the order-entry back button (after visiting Add Funds) lands on the Perps market detail screen",
          "claims": {
            "must_show": ["perps market detail screen for BTC"],
            "must_not_show": ["order entry screen", "deposit / Add Funds confirmation"]
          },
          "next": "done",
          "intent": "Capture market detail reached in a single back tap after the deposit round-trip",
          "flow": "ac1"
        },
        "done": {
          "action": "end",
          "status": "pass",
          "intent": "Finish: Add Funds opens and one back tap returns to market detail"
        }
      }
    }
  }
}

Recipe Workflow

workflow.mmd
flowchart TD
    setup-unlock[setup-unlock: ensure wallet unlocked] --> setup-nav-perps[setup-nav-perps: open Perps tab]
    setup-nav-perps --> setup-nav-market[setup-nav-market: open BTC market detail]
    setup-nav-market --> setup-wait-market[setup-wait-market: wait perps-market-detail-page]
    setup-wait-market --> setup-nav-order[setup-nav-order: open order entry]
    setup-nav-order --> ac1-wait-order-entry[ac1-wait-order-entry: wait perps-order-entry-page]
    ac1-wait-order-entry --> ac1-press-add-funds[ac1-press-add-funds: tap amount-input-add-funds]
    ac1-press-add-funds --> ac1-wait-deposit[ac1-wait-deposit: wait wallet-initiated-header-back-button TAT-3272]
    ac1-wait-deposit --> ac1-screenshot-deposit[ac1-screenshot-deposit]
    ac1-screenshot-deposit --> ac1-press-deposit-back[ac1-press-deposit-back: tap deposit back]
    ac1-press-deposit-back --> ac1-wait-back-order-entry[ac1-wait-back-order-entry: wait perps-order-entry-page]
    ac1-wait-back-order-entry --> ac1-press-order-back[ac1-press-order-back: tap perps-order-entry-back-button ONCE]
    ac1-press-order-back --> ac1-wait-market-detail[ac1-wait-market-detail: wait perps-market-detail-page TAT-3131]
    ac1-wait-market-detail --> ac1-assert-market-detail-control[ac1-assert-market-detail-control: wait perps-market-detail-back-button]
    ac1-assert-market-detail-control --> ac1-screenshot-market-detail[ac1-screenshot-market-detail]
    ac1-screenshot-market-detail --> done([done: pass])
Loading

Note

Medium Risk
Changes wallet network auto-add and confirmation cancel navigation for perps deposit/withdraw flows; limited to curated featured RPCs and replace-only back navigation when goBackTo is set.

Overview
Fixes Perps Add Funds and back navigation after visiting the deposit confirmation from the order screen.

History (TAT-3131): When canceling a wallet-initiated confirmation with goBackTo, useConfirmActions now navigates with { replace: true } instead of pushing. That removes the extra confirm-transaction history entry so a single back from the order screen returns to market detail and post-trade navigation is not stuck.

Deposit (TAT-3272): Adds usePerpsNetworkManagement with ensureArbitrumNetworkExists, which dispatches addNetwork from FEATURED_RPCS when Arbitrum (or testnet chain when configured) is missing. usePerpsDepositConfirmation awaits that step before creating the deposit transaction so the controller no longer fails with invalid chain ID when Arbitrum was never added.

Tests cover replace navigation, network add/skip paths, and call order (ensure network before deposit tx).

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

Hyperliquid deposits settle USDC on Arbitrum, so PerpsController.depositWithConfirmation resolves the deposit transaction against the Arbitrum network client and throws "Invalid chain ID" when that network is not added to the wallet. The order-entry deposit hook swallowed that error, so tapping the "Available to trade" + icon did nothing.

Port mobile's usePerpsNetworkManagement.ensureArbitrumNetworkExists: add the Arbitrum network (from the featured network list) before creating the deposit transaction, and call it from usePerpsDepositConfirmation.
@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/confirmations (2 files, +19 -5)
  • 📁 ui/
    • 📁 pages/
      • 📁 confirmations/
        • 📁 hooks/
          • 📄 useConfirmActions.test.ts +11 -4
          • 📄 useConfirmActions.ts +8 -1

👨‍🔧 @MetaMask/perps (4 files, +165 -0)
  • 📁 ui/
    • 📁 components/
      • 📁 app/
        • 📁 perps/
          • 📁 hooks/
            • 📄 usePerpsDepositConfirmation.test.ts +32 -0
            • 📄 usePerpsDepositConfirmation.ts +8 -0
            • 📄 usePerpsNetworkManagement.test.ts +78 -0
            • 📄 usePerpsNetworkManagement.ts +47 -0

@abretonc7s

Copy link
Copy Markdown
Contributor Author
Run Duration Model / Runner Nudges Grade Cost
d964d349 (fix-bug, TAT-3131) ? opus / claude 0 high — 6/10 unknown
Worker report

TAT-3131 — Navigation issue when tapping "Add Funds" on the Perps order screen

Summary

Visiting Add Funds from the Perps order-entry screen and pressing back left a phantom
confirm-transaction entry on the history stack, so back navigation needed two taps (Bug A)
and post-trade navigation left the user stuck on the order screen (Bug B). The fix makes the
wallet-initiated confirmation's back action replace (instead of push) the history entry, so
the transient deposit/withdraw confirmation no longer lingers in history.

Root cause

ui/pages/confirmations/hooks/useConfirmActions.ts:68 — the navigateBackToPreviousPage branch
returned with navigate(goBackTo) (a push), while the Perps "Add Funds" entry navigates into
the confirmation with { replace: true } (usePerpsDepositConfirmation.ts:76) and the
confirm-context auto-exit already returns with { replace: true }
(ui/pages/confirmations/context/confirm/index.tsx:78).

Changes

  • ui/pages/confirmations/hooks/useConfirmActions.tsnavigateBackToPreviousPage now returns
    with navigate(goBackTo ?? DEFAULT_ROUTE, { replace: true }).
  • ui/pages/confirmations/hooks/useConfirmActions.test.ts — updated assertions for { replace: true }.

Validation recipe

Included sub-flows/artifacts:

  • recipe.json, recipe-baseline.json, recipe-run/
  • AC4 regression guard: order entry → one tap back → market detail
  • Revert-sensitive unit-test proof for useConfirmActions

Automated:

  • yarn jest ui/pages/confirmations/hooks/useConfirmActions.test.ts ui/pages/confirmations/components/confirm/header/wallet-initiated-header.test.tsx --no-coverage17/17 pass
  • Revert-sensitivity verified: tests fail with source fix reverted and pass with fix
  • yarn lint:changed && yarn verify-locales --quiet && yarn circular-deps:check → green
  • useConfirmActions.ts coverage: 100%
  • Recipe trace: 13/13 nodes passed

Manual:

  • Add Funds → deposit back → order entry back once → market detail
  • Add Funds visited → execute trade → market detail

TAT-3272 — Add Funds did nothing

Bundled into this branch as the same Add Funds flow.

Root cause: Arbitrum was absent from a clean wallet, causing PerpsController.depositWithConfirmation
to reject with Invalid chain ID "0xa4b1". The deposit hook swallowed the error, so tapping +
appeared to do nothing.

Fix:

  • Added ui/components/app/perps/hooks/usePerpsNetworkManagement.ts
  • usePerpsDepositConfirmation.ts now ensures Arbitrum exists before creating the deposit transaction

Verification:

  • Unit tests: 10/10 pass
  • Lint/locales/circular deps: pass
  • Live e2e on clean ["0x1"] wallet:
    • before: tap left networks unchanged and logged Invalid chain ID "0xa4b1"
    • after: tap auto-added 0xa4b1, opened #/confirm-transaction/..., showed wallet-initiated back button, no console errors

Commit status

Committed as:

58604d1291 fix(perps): replace transient confirmation history entry (TAT-3131)

Branch:

TAT-3131-fix-fix-add-funds-nav

@abretonc7s abretonc7s changed the title chore: prepare farmslot publication pkg-d964d349-mq6m0wx8 fix(perps): navigation issue when you tap "add funds" in order screen Jun 9, 2026
@abretonc7s abretonc7s marked this pull request as ready for review June 9, 2026 12:29
@abretonc7s abretonc7s requested review from a team as code owners June 9, 2026 12:29
@metamaskbotv2

metamaskbotv2 Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor
Builds ready [2875c78]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 20 pass · 🟡 5 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 27206133314 | 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: -67%
  • loadNewAccount/total: -67%
  • bridgeUserActions/bridge_load_page: -73%
  • bridgeUserActions/bridge_load_asset_picker: -57%
  • bridgeUserActions/bridge_search_token: -32%
  • bridgeUserActions/total: -44%
  • loadNewAccount/load_new_account: -50%
  • loadNewAccount/total: -50%
  • bridgeUserActions/bridge_load_asset_picker: -49%
  • bridgeUserActions/bridge_search_token: -32%
  • bridgeUserActions/total: -35%
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: -21%
  • startupStandardHome/domContentLoaded: -21%
  • startupStandardHome/domInteractive: -38%
  • startupStandardHome/backgroundConnect: -12%
  • startupStandardHome/loadScripts: -21%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -67%
  • startupPowerUserHome/uiStartup: -30%
  • startupPowerUserHome/load: -12%
  • startupPowerUserHome/domContentLoaded: -12%
  • startupPowerUserHome/domInteractive: -36%
  • startupPowerUserHome/firstPaint: -22%
  • startupPowerUserHome/backgroundConnect: -60%
  • startupPowerUserHome/firstReactRender: +40%
  • startupPowerUserHome/loadScripts: -12%
  • startupPowerUserHome/setupStore: +32%
  • startupPowerUserHome/numNetworkReqs: -74%
  • startupStandardHome/uiStartup: +14%
  • startupStandardHome/load: +14%
  • startupStandardHome/domContentLoaded: +14%
  • startupStandardHome/domInteractive: -47%
  • startupStandardHome/backgroundConnect: +22%
  • startupStandardHome/firstReactRender: +44%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/loadScripts: +14%
  • startupStandardHome/setupStore: -47%
  • startupStandardHome/numNetworkReqs: -39%
  • startupPowerUserHome/uiStartup: -31%
  • startupPowerUserHome/domInteractive: -58%
  • startupPowerUserHome/backgroundConnect: -76%
  • startupPowerUserHome/firstReactRender: +24%
  • startupPowerUserHome/setupStore: -35%
  • startupPowerUserHome/numNetworkReqs: -76%

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

  • 🔴 startupPowerUserHome/INP: p75 536ms
  • 🟡 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/srpButtonToSrpForm: -62%
  • onboardingImportWallet/pwFormToMetricsScreen: +561%
  • onboardingImportWallet/metricsToWalletReadyScreen: -24%
  • onboardingImportWallet/doneButtonToHomeScreen: -28%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -71%
  • onboardingImportWallet/total: -40%
  • onboardingNewWallet/srpButtonToPwForm: -76%
  • onboardingNewWallet/createPwToRecoveryScreen: +1075%
  • onboardingNewWallet/skipBackupToMetricsScreen: -67%
  • assetDetails/assetClickToPriceChart: -60%
  • assetDetails/total: -60%
  • solanaAssetDetails/assetClickToPriceChart: -73%
  • solanaAssetDetails/total: -73%
  • importSrpHome/loginToHomeScreen: -32%
  • importSrpHome/openAccountMenuAfterLogin: -80%
  • importSrpHome/homeAfterImportWithNewWallet: -75%
  • importSrpHome/total: -69%

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

  • 🟡 importSrpHome/INP: p75 216ms
  • 🟡 importSrpHome/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: +26%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.27 MiB (23.83%)
  • ui: 118.26 KiB (1.06%)
  • common: 982.58 KiB (8.09%)

@abretonc7s

Copy link
Copy Markdown
Contributor Author

farmslot run summary

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

PR #43367 — Comments Report

PR: fix(perps): navigation issue when you tap "add funds" in order screen
Branch: TAT-3131-fix-fix-add-funds-nav
Base: main (merged origin/main @ 3c83fc8d86 into branch — clean, no conflicts)

Triage

# Author Type File Triage Action
1 github-actions[bot] Bot — (conversation) N/A — informational CLA signature notice. No action.
2 mm-token-exchange-service[bot] Bot — (conversation) N/A — informational CODEOWNERS review listing. No action.
3 abretonc7s User — (conversation) N/A — not review feedback farmslot worker report posted by orchestrator. No action.
4 metamaskbotv2[bot] Bot — (conversation) N/A — informational "Builds ready" CI artifact links. No action.

Summary

  • Inline review comments: 0
  • CHANGES_REQUESTED reviews: 0
  • Conversation comments: 4, all informational bot/CI noise or the orchestrator's own worker-report post. None are actionable review feedback.

Actionable comments requiring a code fix: 0.

No review-fix commit was made — there is nothing to fix. The branch was brought up to date with origin/main (merge commit da77714ea3) and re-validated through the CI parity gate + recipe.

CI parity gate

  • yarn lint:changed — PASS
  • yarn verify-locales --quiet — PASS
  • yarn circular-deps:check — PASS
  • Unit tests (PR delta): usePerpsDepositConfirmation.test.ts, usePerpsNetworkManagement.test.ts, useConfirmActions.test.ts — 17/17 PASS
  • Coverage: PASS — new code 100% (8/8 lines), all 3 source files ≥80%.

Recipe re-validation — post-merge state

  • RECIPE_SOURCE: family-inherited (trusted). Recipe reviewed: pure UI/navigation flow, no expression/eval/shell/exec primitives.
  • Reloaded extension to load freshly-built dist, then ran recipe against branch + origin/main merged.
  • Result: PASS. Proves TAT-3272 (Add Funds opens deposit; Arbitrum auto-added) + TAT-3131 (single back tap returns to market detail, no phantom history entry).
  • Evidence screenshots: evidence-ac1-deposit-open.png, evidence-ac1-one-tap-back-to-market.png.
  • No console errors/exceptions captured.

Merge-main status

Clean — no conflicts. yarn.lock changed during merge → yarn install --immutable re-run successfully.

Final summary

  • Total comments: 4 (0 REAL, 0 FALSE POSITIVE, 4 OUT OF SCOPE — all bot/CI/worker-report noise, no review feedback)
  • Commit SHA (review fixes): 628ded2d41style(perps): apply prettier formatting to add-funds nav hooks
  • Merge commit: da77714ea3 (origin/main @ 3c83fc8d86 → branch)
  • Files changed (this run):
    • ui/components/app/perps/hooks/usePerpsDepositConfirmation.test.ts
    • ui/components/app/perps/hooks/usePerpsNetworkManagement.test.ts
    • ui/components/app/perps/hooks/usePerpsNetworkManagement.ts
  • Recipe re-validation: PASS
  • Merge-main status: clean / conflicts-resolved → clean
  • PR mergeable state at start: blocked (pending required checks/reviews, not a conflict)

@metamaskbotv2

metamaskbotv2 Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor
Builds ready [628ded2]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 19 pass · 🟡 6 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 27209641718 | 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: -67%
  • loadNewAccount/total: -67%
  • bridgeUserActions/bridge_load_page: -73%
  • bridgeUserActions/bridge_load_asset_picker: -61%
  • bridgeUserActions/bridge_search_token: -31%
  • bridgeUserActions/total: -45%
  • loadNewAccount/load_new_account: -54%
  • loadNewAccount/total: -54%
  • bridgeUserActions/bridge_load_asset_picker: -35%
  • bridgeUserActions/bridge_search_token: -31%
  • bridgeUserActions/total: -30%

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

  • 🟡 confirmTx/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: -26%
  • startupStandardHome/load: -29%
  • startupStandardHome/domContentLoaded: -28%
  • startupStandardHome/domInteractive: -42%
  • startupStandardHome/firstPaint: -20%
  • startupStandardHome/backgroundConnect: -25%
  • startupStandardHome/loadScripts: -28%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -67%
  • startupPowerUserHome/uiStartup: -29%
  • startupPowerUserHome/domInteractive: -35%
  • startupPowerUserHome/firstPaint: -22%
  • startupPowerUserHome/backgroundConnect: -58%
  • startupPowerUserHome/firstReactRender: +36%
  • startupPowerUserHome/setupStore: +32%
  • startupPowerUserHome/numNetworkReqs: -73%
  • startupStandardHome/domInteractive: -51%
  • startupStandardHome/backgroundConnect: +18%
  • startupStandardHome/firstReactRender: +39%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/setupStore: -51%
  • startupStandardHome/numNetworkReqs: -39%
  • startupPowerUserHome/uiStartup: -30%
  • startupPowerUserHome/domInteractive: -61%
  • startupPowerUserHome/backgroundConnect: -65%
  • startupPowerUserHome/firstReactRender: +37%
  • startupPowerUserHome/setupStore: -37%
  • startupPowerUserHome/numNetworkReqs: -75%

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

  • 🔴 startupPowerUserHome/INP: p75 576ms
  • 🟡 startupPowerUserHome/LCP: p75 2.9s
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: -61%
  • onboardingImportWallet/pwFormToMetricsScreen: +572%
  • onboardingImportWallet/metricsToWalletReadyScreen: -26%
  • onboardingImportWallet/doneButtonToHomeScreen: -34%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -98%
  • onboardingImportWallet/total: -48%
  • onboardingNewWallet/createWalletToSocialScreen: +11%
  • onboardingNewWallet/srpButtonToPwForm: -76%
  • onboardingNewWallet/createPwToRecoveryScreen: +1112%
  • onboardingNewWallet/skipBackupToMetricsScreen: -64%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -20%
  • assetDetails/assetClickToPriceChart: -60%
  • assetDetails/total: -60%
  • solanaAssetDetails/assetClickToPriceChart: -72%
  • solanaAssetDetails/total: -72%
  • importSrpHome/loginToHomeScreen: -22%
  • importSrpHome/openAccountMenuAfterLogin: -73%
  • importSrpHome/homeAfterImportWithNewWallet: -73%
  • importSrpHome/total: -65%

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

  • 🟡 importSrpHome/INP: p75 216ms
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 importSrpHome/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/pageLoadTime: +26%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 1.4 KiB (0.01%)
  • common: 17 Bytes (0%)

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant