{
  "prNumber": 45055,
  "prTitle": "release: 13.43.0",
  "generatedAt": "2026-08-11T08:22:03.538Z",
  "modelUsed": "gpt-5",
  "summary": {
    "totalFilesChanged": 1356,
    "totalCommitsInRelease": 168,
    "releaseRiskScore": "55/100",
    "highRiskScenarios": 6,
    "mediumRiskScenarios": 6
  },
  "testScenarios": {
    "cherryPickScenarios": [
      {
        "area": "Smart Transactions – tx-sentinel routing (Robinhood)",
        "riskLevel": "high",
        "testSteps": [
          "1. Enable Smart Transactions (if gated) and prepare a simple ETH transfer on supported network.",
          "2. Proceed to the confirmation screen and send; in background DevTools, verify preflight/monitoring calls are routed to the new tx-sentinel Robinhood URL without errors.",
          "3. Confirm the transaction status updates (queued/mined) are received and displayed; ensure non-Smart-Transaction sends still function normally."
        ],
        "whyThisMatters": "Cherry-pick #45214 fixes Smart Transactions controller routing; incorrect sentinel URL would break preflight/monitoring, stalling or misreporting transactions."
      },
      {
        "area": "Perps – Order Book on Order Entry page",
        "riskLevel": "medium",
        "testSteps": [
          "1. Open the Perps order entry page and verify the Order Book renders with bids/asks and updates live.",
          "2. Switch accounts/networks and confirm the Order Book refreshes appropriately without stale data.",
          "3. Interact with the order size/price inputs and ensure the Order Book does not freeze or desync while you edit."
        ],
        "whyThisMatters": "Cherry-pick #45151 adds a new live Order Book to a trading surface; rendering or streaming regressions mislead users at the point of order placement."
      }
    ],
    "initialScenarios": [
      {
        "area": "State Migrations 220/221 – data integrity on upgrade",
        "riskLevel": "high",
        "testSteps": [
          "1. Start from a profile on 13.42.x with: two imported accounts (one seed-derived, one private-key import), at least one custom network (custom RPC), and one connected site permission.",
          "2. Upgrade to 13.43.0 and unlock the wallet.",
          "3. Verify all accounts appear with correct names/addresses and balances; switch networks and confirm balances load without errors.",
          "4. Open Settings > Networks and confirm custom network(s) persist with correct chainId, RPC, and currency symbol.",
          "5. Open Connected sites for the active account and confirm existing site permissions remain intact and functional."
        ],
        "whyThisMatters": "Migrations can corrupt or drop persisted data; ensuring accounts, networks, and permissions survive the upgrade is critical to prevent user lockout or fund visibility issues."
      },
      {
        "area": "State Migrations 220/221 – stability and idempotency",
        "riskLevel": "high",
        "testSteps": [
          "1. On 13.43.0, create a fresh wallet and confirm onboarding completes without migration errors.",
          "2. Lock the wallet, close the extension, reopen and unlock to re-trigger state initialization paths.",
          "3. Confirm no migration error banners appear and state (accounts, networks, settings) is unchanged after repeated loads.",
          "4. Toggle between multiple browser windows and ensure no duplicate or conflicting state is produced (e.g., duplicated accounts/networks)."
        ],
        "whyThisMatters": "Migrations must be no-op after the first run and must not break new installs; repeated initialization can surface race conditions that corrupt storage."
      },
      {
        "area": "MetaMetrics – consent gating and event suppression",
        "riskLevel": "high",
        "testSteps": [
          "1. In Settings > Advanced, toggle MetaMetrics OFF.",
          "2. Perform common actions: switch networks, view account details, and initiate (but cancel) a send to a known address.",
          "3. In the extension background DevTools Network tab, observe that no telemetry requests are sent to analytics endpoints during these actions.",
          "4. Toggle MetaMetrics ON and repeat the actions; verify events resume and include basic context (e.g., network) without leaking addresses."
        ],
        "whyThisMatters": "Large changes in metametrics-controller can unintentionally send events when consent is off or include sensitive data, violating user privacy expectations."
      },
      {
        "area": "MetaMetrics – event context accuracy",
        "riskLevel": "high",
        "testSteps": [
          "1. With MetaMetrics ON, switch between two networks (e.g., Ethereum Mainnet and a testnet).",
          "2. Open a dapp and connect the active account; then switch to a different account in the extension while the site remains connected to the first.",
          "3. Trigger common events (open extension, open activity tab, view asset) and monitor analytics payloads via background DevTools.",
          "4. Verify event payloads include correct chainId and reflect the actual active account state but do not include full addresses or PII."
        ],
        "whyThisMatters": "Incorrect or missing event context (e.g., wrong chainId/account state) undermines product analytics and can cause misrouted experiments or support issues."
      },
      {
        "area": "App State – lock/unlock and UI restoration",
        "riskLevel": "high",
        "testSteps": [
          "1. Navigate to Home > Assets > toggle views (e.g., open Network filter modal) and leave the extension on this screen.",
          "2. Lock the wallet, reload the extension (service worker restart), then unlock.",
          "3. Verify you return to a stable Home state without blank screens or stuck modals, and navigation works.",
          "4. Confirm recent UI state (e.g., last selected tab) is consistent or gracefully reset, without losing core settings."
        ],
        "whyThisMatters": "App-state-controller changes risk UI dead-ends or inconsistent state after lifecycle events, which directly impacts usability and support burden."
      },
      {
        "area": "Custom Network validation – invalid custom network alert",
        "riskLevel": "medium",
        "testSteps": [
          "1. Add a custom network where the RPC endpoint returns a different chainId than configured.",
          "2. Open Home and switch to this custom network; interact with a dapp to trigger network use.",
          "3. Verify an 'Invalid custom network' alert appears; inspect details and CTA (e.g., to edit network).",
          "4. Correct the chainId/RPC configuration and confirm the alert disappears and transactions/requests work normally."
        ],
        "whyThisMatters": "Network misconfiguration can silently break transactions; the alert must be timely, accurate, and recoverable via clear actions."
      },
      {
        "area": "Connected sites – unconnected account alert",
        "riskLevel": "medium",
        "testSteps": [
          "1. Connect Account A to a test dapp (site permissions).",
          "2. In the extension, switch the active account to Account B and return to the dapp tab.",
          "3. Verify the 'Unconnected account' alert appears in the extension UI and provides a clear way to connect Account B.",
          "4. Connect Account B from the prompt and confirm the alert clears and the dapp reflects the new account."
        ],
        "whyThisMatters": "Prevents users from signing with unintended accounts and clarifies site connection state, reducing signing mistakes."
      },
      {
        "area": "Assets – network filter in Asset List and total balance accuracy",
        "riskLevel": "medium",
        "testSteps": [
          "1. On Home > Assets, open the control bar and use the Network Filter to select a single network (e.g., Mainnet).",
          "2. Verify only assets from the selected network are shown and the account-group total updates accordingly.",
          "3. Switch the filter to 'All networks' and confirm hidden assets reappear and the total reflects the sum across networks.",
          "4. Quickly toggle between networks to check for UI flicker or stale totals."
        ],
        "whyThisMatters": "Filtering errors or stale balance aggregation mislead users about holdings, potentially causing incorrect decisions."
      },
      {
        "area": "Perps – live data stream stability (order entry/market data)",
        "riskLevel": "medium",
        "testSteps": [
          "1. Open the Perps view (order entry) from within the extension’s portfolio/trading section.",
          "2. Observe live market data updates (prices, positions) for at least 60 seconds.",
          "3. Background the extension tab/window for ~15 seconds, then return and confirm data resumes without manual refresh.",
          "4. Switch networks or accounts while viewing and verify the stream reconnects appropriately without stale or cross-account data."
        ],
        "whyThisMatters": "Perps stream bridge/controller changes can cause silent data stalls or cross-context leaks, directly affecting trading accuracy."
      },
      {
        "area": "Onboarding/UI tours – Account Icon Tour gating",
        "riskLevel": "medium",
        "testSteps": [
          "1. Update an existing profile to 13.43.0 and open the extension; verify the Account Icon Tour does not re-trigger if previously dismissed.",
          "2. Create a new wallet and open the extension for the first time; verify the tour appears once and can be dismissed.",
          "3. Lock/unlock and confirm the tour remains dismissed if it was previously completed."
        ],
        "whyThisMatters": "Tour gating interacts with persisted app state; regressions cause repetitive prompts or missing guidance for new users."
      }
    ]
  }
}