{
  "prNumber": 45055,
  "prTitle": "release: 13.43.0",
  "generatedAt": "2026-08-05T22:04:14.070Z",
  "modelUsed": "gpt-5",
  "summary": {
    "totalFilesChanged": 1354,
    "totalCommitsInRelease": 163,
    "releaseRiskScore": "54/100",
    "highRiskScenarios": 5,
    "mediumRiskScenarios": 9
  },
  "testScenarios": {
    "cherryPickScenarios": [
      {
        "area": "Smart Transactions — Tx Sentinel routing (robinhood URL)",
        "riskLevel": "high",
        "testSteps": [
          "1. Enable Smart Transactions in Settings and initiate a send on a supported network.",
          "2. On the confirmation flow, verify preflight/monitoring calls succeed; if possible, inspect that requests reach the new tx-sentinel robinhood domain.",
          "3. Simulate a failure to the sentinel domain (block or go offline) and confirm the flow either retries or falls back gracefully; then disable Smart Transactions and verify a normal send still works."
        ],
        "whyThisMatters": "Cherry-pick 45214 fixes Smart Transactions routing by adding a new sentinel endpoint; incorrect wiring breaks STX preflight/monitoring and can block transactions."
      },
      {
        "area": "Perps — Order book in order entry page",
        "riskLevel": "medium",
        "testSteps": [
          "1. Open the Perps trading view (ensure the feature is enabled) and verify an order book renders with live bids/asks.",
          "2. Click a price level in the order book and confirm the order entry price/size fields populate accordingly.",
          "3. Switch markets and verify the order book updates instantly without stale rows or UI jitter.",
          "4. Toggle offline/online and ensure the order book gracefully reconnects and re-populates."
        ],
        "whyThisMatters": "Cherry-pick 45151 adds a new order book to trading; bad subscriptions or UI wiring can misprice orders or block order entry."
      }
    ],
    "initialScenarios": [
      {
        "area": "State Migrations (220, 221) — Core data integrity",
        "riskLevel": "high",
        "testSteps": [
          "1. Install the last stable pre-release (e.g., 13.42.x), create a new wallet, add a second account, and import one account via private key.",
          "2. Add a custom network (non-default chainId), add at least one ERC-20 on Mainnet and one on the custom network, and label accounts/networks.",
          "3. Connect Account 1 to a test dapp (Permissions, Accounts) and close the extension.",
          "4. Upgrade to 13.43.0 and open the extension to trigger migrations.",
          "5. Verify all accounts, labels, custom networks, and tokens persist correctly per network; ensure no duplicate or missing assets."
        ],
        "whyThisMatters": "Migrations can corrupt or drop user data (accounts/networks/tokens). Verifying end-to-end persistence prevents loss of funds visibility and broken network setups."
      },
      {
        "area": "State Migrations (220, 221) — Permissions, Connected Sites, Snaps",
        "riskLevel": "high",
        "testSteps": [
          "1. On the older version, connect two different dapps using different active accounts; install one Snap and grant required permissions.",
          "2. Upgrade to 13.43.0 and open Connected Sites to review site-to-account mappings.",
          "3. Verify each dapp retains the correct connected account and permissions; open the Snap and run a simple permitted method.",
          "4. Revoke one permission from a site and from the Snap, then reconnect to ensure permissions can still be granted post-migration."
        ],
        "whyThisMatters": "Permission graphs are sensitive to schema changes; corruption here can cause security/privacy regressions or break dapp/Snap functionality."
      },
      {
        "area": "State Migrations (220, 221) — Pending transactions and Activity log",
        "riskLevel": "high",
        "testSteps": [
          "1. On the older version, submit a low-gas transaction so it remains pending (or queue a safe pending state).",
          "2. Upgrade to 13.43.0 and open the Activity/Transactions list.",
          "3. Verify the pending transaction is still present and can be sped up or canceled without error.",
          "4. Confirm the Activity log shows a single coherent history entry (no duplicates/missing entries) with correct statuses."
        ],
        "whyThisMatters": "Users must not lose visibility or control of pending transactions across migrations; broken histories cause confusion and potential double-spend attempts."
      },
      {
        "area": "Bridge — Route selection, approvals, and execution",
        "riskLevel": "high",
        "testSteps": [
          "1. Open Bridge, select a source token/network and a destination network, and request quotes.",
          "2. Verify routes populate correctly; select a route and proceed to Review.",
          "3. Complete any required token approval and then submit the bridge transaction(s).",
          "4. Verify step statuses update in-line (approval, transfer, confirmations) and final success/failure is surfaced with actionable errors if applicable."
        ],
        "whyThisMatters": "Bridge logic or controller changes can silently break routing or approvals; users risk stalled or failed fund transfers."
      },
      {
        "area": "MetaMetrics (analytics) — Opt-in/out gating and event emission",
        "riskLevel": "medium",
        "testSteps": [
          "1. In Settings > Security & Privacy, opt out of MetaMetrics; then switch networks, open Swap, and reject a send to generate typical UI flows.",
          "2. Confirm no analytics calls are made (e.g., network inspector shows no metrics endpoint hits) and no analytics errors occur.",
          "3. Opt in to MetaMetrics and repeat actions; confirm expected events are sent once per action and session identifiers persist across a browser restart.",
          "4. Ensure onboarding does not re-prompt metrics if the prior choice was set, and toggling the setting takes effect immediately."
        ],
        "whyThisMatters": "A large refactor to the metametrics controller can accidentally over/under-report or re-prompt users, creating privacy and compliance risks."
      },
      {
        "area": "Assets — Network filter and control bar",
        "riskLevel": "medium",
        "testSteps": [
          "1. Open the Assets/Home view; use the control bar to filter by a specific network and verify only assets from that network display with correct counts.",
          "2. Switch the active network using the network picker; ensure the 'Home network' filter/modal updates correctly and the asset list refreshes.",
          "3. Clear filters and verify the default view returns; ensure watchlisted and hidden tokens remain correctly categorized.",
          "4. Use search within the filtered view and verify results remain scoped to the selected network."
        ],
        "whyThisMatters": "Changes in filtering can hide assets, misstate balances, or confuse users switching networks."
      },
      {
        "area": "Balances — Account group balance calculations",
        "riskLevel": "medium",
        "testSteps": [
          "1. Hold different tokens across two or more accounts and at least two networks.",
          "2. Open the group balance component and manually verify total fiat value equals the sum of visible holdings.",
          "3. Change fiat currency in Settings (e.g., USD to EUR) and confirm totals re-calc correctly.",
          "4. Hide one token and verify group totals update immediately and accurately."
        ],
        "whyThisMatters": "Incorrect aggregation or currency conversion misrepresents portfolio value and can drive poor user decisions."
      },
      {
        "area": "Alerts — Unconnected account and invalid custom network",
        "riskLevel": "medium",
        "testSteps": [
          "1. Visit a previously connected dapp and switch the active account in the extension to one that is not connected; verify the Unconnected Account alert appears.",
          "2. Use the alert's action to connect the account and confirm the dapp reflects the new account.",
          "3. Switch to a custom network not supported by the site and verify the Invalid Custom Network alert appears with a switch/recommend action.",
          "4. Use the alert’s action to switch back to a supported network and ensure the alert dismisses automatically.",
          "5. Confirm no alert reappears after navigation or reload once resolved."
        ],
        "whyThisMatters": "Connection and network mismatch alerts guide safe interaction with dapps; regressions can lead to failed transactions or using the wrong account/network."
      },
      {
        "area": "Perps — Market data stream resilience (baseline)",
        "riskLevel": "medium",
        "testSteps": [
          "1. Open the Perps trading view and verify live price/market data updates within the order entry area.",
          "2. Switch markets and confirm updates switch to the selected market without stale data from the previous market.",
          "3. Simulate offline mode, then restore connectivity; verify the stream reconnects and resumes without requiring a manual refresh.",
          "4. Ensure UI does not freeze or duplicate rows during stream transitions."
        ],
        "whyThisMatters": "Real-time data streams must recover from disconnects and market switches; failures degrade trading accuracy and user trust."
      },
      {
        "area": "App State — Lock/unlock and session restoration",
        "riskLevel": "medium",
        "testSteps": [
          "1. With the Home view open and a secondary panel (e.g., Activity or Settings) visible, lock the wallet from the Account menu.",
          "2. Unlock and verify you return to the same view with correct state (no spinner hangs or blank screens).",
          "3. Close the browser, reopen, and confirm the last visited tab/view and network selection are restored."
        ],
        "whyThisMatters": "App-state controller changes can cause lost context or stuck spinners after authentication and restarts."
      },
      {
        "area": "Send — Custom network transaction and activity visibility",
        "riskLevel": "medium",
        "testSteps": [
          "1. On a custom network, send the native token to a known address and review gas details for correct chain parameters.",
          "2. After submission, open Activity and confirm the new transaction appears under the correct network filter.",
          "3. Switch the Assets network filter and verify the transaction visibility changes appropriately (not hidden unexpectedly).",
          "4. Confirm status updates (pending/confirmed) are reflected without requiring manual refresh."
        ],
        "whyThisMatters": "Network-aware UI changes can desync send/confirm flows and activity visibility, leading to user confusion about transaction status."
      },
      {
        "area": "Onboarding UX — Account icon tour",
        "riskLevel": "medium",
        "testSteps": [
          "1. Create a new wallet and land on Home; verify the account icon tour tooltip appears once.",
          "2. Dismiss the tooltip and navigate between tabs (Assets/Activity/Settings).",
          "3. Confirm the tooltip does not reappear after navigation or browser restart."
        ],
        "whyThisMatters": "A misbehaving tour can block key controls or become a recurring annoyance, harming first-run UX."
      }
    ]
  }
}