{
  "prNumber": 45055,
  "prTitle": "release: 13.43.0",
  "generatedAt": "2026-08-10T20:38:54.640Z",
  "modelUsed": "gpt-5",
  "summary": {
    "totalFilesChanged": 1355,
    "totalCommitsInRelease": 167,
    "releaseRiskScore": "48/100",
    "highRiskScenarios": 4,
    "mediumRiskScenarios": 7
  },
  "testScenarios": {
    "cherryPickScenarios": [
      {
        "area": "Smart Transactions - Tx status tracking via updated tx-sentinel (Robinhood URL)",
        "riskLevel": "high",
        "testSteps": [
          "1. Enable Smart Transactions in Settings and ensure you are on a supported network (e.g., Mainnet).",
          "2. Submit a low-value token transfer or swap with Smart Transactions enabled; verify pre-flight details load, then confirm.",
          "3. Observe the transaction status: it should move from submitted/pending to confirmed without getting stuck; activity item should show accurate status and timing.",
          "4. Disable Smart Transactions and perform the same action to ensure the normal transaction path is unaffected."
        ],
        "whyThisMatters": "Cherry-pick 45214 fixes the Smart Transactions controller to use a new tx-sentinel endpoint; endpoint mismatches can break status tracking, leaving transactions stuck or misreported."
      },
      {
        "area": "Perps - Order book on order entry page",
        "riskLevel": "medium",
        "testSteps": [
          "1. Navigate to the Perps order entry page; verify an order book is visible with bids/asks and updates in real time.",
          "2. Click a price level in the order book; confirm the order entry price field populates correctly.",
          "3. Change the trading pair/market; ensure the order book updates to the new market without stale rows.",
          "4. Simulate temporary disconnection or switch networks; verify the order book shows a graceful empty/error state and recovers without a reload."
        ],
        "whyThisMatters": "Cherry-pick 45151 adds a new user-facing order book; integration issues can block order entry, prefill the wrong price, or display stale data during live trading."
      }
    ],
    "initialScenarios": [
      {
        "area": "State Migrations 220/221 - Core wallet state",
        "riskLevel": "high",
        "testSteps": [
          "1. Start with 13.42.x profile: create 2 accounts, connect a dapp to Account 1, add a custom RPC (use an invalid or offline endpoint), add a few ERC-20 tokens, and opt OUT of MetaMetrics.",
          "2. Upgrade to 13.43.0 and open the extension; let migrations run to completion.",
          "3. Verify both accounts, balances, tokens, and address book entries are intact; confirm connected site still lists Account 1 as connected and Account 2 as not connected.",
          "4. Switch to the custom RPC; observe expected invalid network handling (see related alert scenario), then switch back; ensure no crashes or data loss.",
          "5. Lock and unlock the wallet; verify state remains consistent (connected sites, selected account, last used network)."
        ],
        "whyThisMatters": "Migrations can corrupt or drop critical wallet state (accounts, permissions, networks). Two new migrations (220, 221) raise the risk of subtle data loss or incorrect defaults after upgrade."
      },
      {
        "area": "MetaMetrics consent and event gating (MetaMetrics Controller refactor)",
        "riskLevel": "high",
        "testSteps": [
          "1. Pre-upgrade: set MetaMetrics to Opt-In in 13.42.x; upgrade to 13.43.0 and open the extension.",
          "2. Confirm no unexpected consent prompt appears and Settings > Security & privacy shows the Opt-In state preserved.",
          "3. Connect a site and approve a basic permissions request; then initiate a simple send; ensure no duplicate or extraneous prompts appear and UI remains responsive.",
          "4. Toggle MetaMetrics OFF in Settings; repeat a connect and a send; confirm no analytics/consent UI regresses (no unexpected prompts, flows behave normally)."
        ],
        "whyThisMatters": "Substantial MetaMetrics controller changes can cause consent regressions (unexpected prompts), lost preferences, or misfired analytics in critical flows."
      },
      {
        "area": "Connected Sites & Permissions persistence across account switching",
        "riskLevel": "high",
        "testSteps": [
          "1. With a dapp open, connect Account 1 and confirm site permissions list shows the site connected to Account 1 only.",
          "2. Switch the active account in the extension to Account 2 while the site is open.",
          "3. Verify the site shows as not connected for Account 2; the extension should reflect that status in the connected sites panel.",
          "4. Reload the site and the extension; ensure the mapping (Account 1 connected, Account 2 not) persists; disconnect the site and verify both accounts show as disconnected."
        ],
        "whyThisMatters": "Controller and app-state changes can break fine-grained permission mappings per account, leading to privacy and UX issues when switching accounts."
      },
      {
        "area": "Alerts - Invalid Custom Network",
        "riskLevel": "medium",
        "testSteps": [
          "1. Add a custom network with a bad RPC URL (wrong chainId response or an offline endpoint).",
          "2. Switch to this network; verify the 'Invalid custom network' alert appears with correct messaging and does not block navigation.",
          "3. Edit the network to a valid RPC; confirm the alert disappears without requiring an extension reload.",
          "4. Switch between valid/invalid networks repeatedly; verify no stale alerts persist and no crashes occur."
        ],
        "whyThisMatters": "This alert’s logic directly guides users away from misconfigured networks; logic changes can cause false positives/negatives that strand users."
      },
      {
        "area": "Alerts - Unconnected Account (Dapp connection)",
        "riskLevel": "medium",
        "testSteps": [
          "1. Connect a site to Account 1; ensure the site shows connected.",
          "2. Switch the active account to Account 2 within the extension while staying on the same site.",
          "3. Verify the 'Unconnected account' alert appears with a clear CTA to connect Account 2.",
          "4. Use the CTA to connect Account 2; approve the permissions request; verify the alert disappears and both accounts’ connection statuses are accurate."
        ],
        "whyThisMatters": "Recent UI logic changes to this alert can confuse users about which account is connected, impacting security and transaction correctness."
      },
      {
        "area": "Assets List - Network Filter & Control Bar behavior",
        "riskLevel": "medium",
        "testSteps": [
          "1. Open the Assets tab and use the control bar to enable 'Home networks only' (or similar) in the network filter.",
          "2. Switch between Mainnet and a custom network; verify only assets belonging to the selected/home networks are listed and that the toggle state persists when returning to the Assets tab.",
          "3. Use search within the filtered state; verify results respect the network filter; clear the filter and confirm all assets reappear.",
          "4. Close and reopen the extension; confirm the previously chosen filter state is remembered (if intended)."
        ],
        "whyThisMatters": "Multiple UI updates to the control bar and filter can cause state desyncs (wrong assets shown) and persistence bugs that confuse users managing tokens."
      },
      {
        "area": "Account Group Balance - Aggregation and fiat conversion",
        "riskLevel": "medium",
        "testSteps": [
          "1. With multiple accounts holding different tokens, check the group balance summary; note the displayed fiat total.",
          "2. Change fiat currency in Settings; verify the group balance recalculates correctly and consistently across extension reload.",
          "3. Hide/unhide a token in one account; confirm the group total updates immediately and matches the sum of visible assets."
        ],
        "whyThisMatters": "Recent component changes can create mis-aggregation or stale totals, misleading users about their total holdings."
      },
      {
        "area": "Perps streaming bridge - connection resilience",
        "riskLevel": "medium",
        "testSteps": [
          "1. Open the Perps trading module and verify live market data appears (prices or positions as applicable).",
          "2. Briefly go offline (e.g., toggle network off for ~10s) and back online; confirm the stream auto-recovers without needing a page reload and data resumes updating.",
          "3. Switch accounts and networks; ensure subscriptions update and no old account’s data persists or leaks."
        ],
        "whyThisMatters": "Stream bridge logic changes risk stale or missing market data, directly impacting trading UX and decision-making."
      },
      {
        "area": "Account Icon Tour / First-run UI gating",
        "riskLevel": "medium",
        "testSteps": [
          "1. Create a fresh profile and open the extension; verify the account icon tour (or relevant onboarding cue) appears at the appropriate time.",
          "2. Dismiss/complete the tour; lock and unlock the wallet; confirm the tour does not reappear unexpectedly.",
          "3. Reset onboarding state (if supported) and confirm the tour reappears only when intended."
        ],
        "whyThisMatters": "Small logic tweaks to first-run cues can result in repetitive prompts or missed guidance that degrade onboarding UX."
      }
    ]
  }
}